Hi JB, have you already had a change to fix it? I did not realize any new commit (is this the correct repository): https://github.com/apache/servicemix-bundles/commits/master
Best regards, Markus Am Do., 13. Juni 2019 um 10:32 Uhr schrieb Jean-Baptiste Onofré <[email protected]>: > > Good catch, I missed this one. Let me fix that. > > Thanks > > Regards > JB > > On 13/06/2019 10:10, Markus Rathgeb wrote: > > Hi, > > > > in some product we are using Spring by the Karaf provided features. > > We tried to bump from Spring 5.0 to 5.1 (both provided by the Karaf > > Spring feature repository). > > > > The current feature repo > > (https://repo1.maven.org/maven2/org/apache/karaf/features/spring/4.2.6/spring-4.2.6-features.xml) > > provided the Spring versions 5.0.14.RELEASE and 5.1.7.RELEASE. > > > > With respect to the error I would like to report, let's have a look at > > the changed of a specific class of "spring-messaging": > > > > git diff v5.0.14.RELEASE...v5.1.7.RELEASE -- > > spring-messaging/src/main/java/org/springframework/messaging/simp/user/DefaultUserDestinationResolver.java > > > > ``` > > * you may not use this file except in compliance with the License. > > * You may obtain a copy of the License at > > * > > - * http://www.apache.org/licenses/LICENSE-2.0 > > + * https://www.apache.org/licenses/LICENSE-2.0 > > * > > * Unless required by applicable law or agreed to in writing, software > > * distributed under the License is distributed on an "AS IS" BASIS, > > @@ -22,11 +22,11 @@ import java.util.HashSet; > > import java.util.Set; > > > > import org.apache.commons.logging.Log; > > -import org.apache.commons.logging.LogFactory; > > > > import org.springframework.lang.Nullable; > > import org.springframework.messaging.Message; > > import org.springframework.messaging.MessageHeaders; > > +import org.springframework.messaging.simp.SimpLogging; > > import org.springframework.messaging.simp.SimpMessageHeaderAccessor; > > import org.springframework.messaging.simp.SimpMessageType; > > import org.springframework.util.Assert; > > @@ -52,7 +52,7 @@ import org.springframework.util.StringUtils; > > */ > > public class DefaultUserDestinationResolver implements > > UserDestinationResolver { > > > > - private static final Log logger = > > LogFactory.getLog(DefaultUserDestinationResolver.class); > > + private static final Log logger = > > SimpLogging.forLogName(DefaultUserDestinationResolver.class); > > > > > > private final SimpUserRegistry userRegistry; > > ``` > > > > Instead of "org.apache.commons.logging.LogFactory" the newly > > introduced class "org.springframework.messaging.simp.SimpLogging" is > > used. > > > > That class is using the class > > "org.springframework.core.log.LogDelegateFactory". > > > > The package "org.springframework.core.log" is not added to the > > "Package-Imports". > > > > This leads to the following error: > > > > ``` > > Caused by: java.lang.ClassNotFoundException: > > org.springframework.core.log.LogDelegateFactory not found by > > org.apache.servicemix.bundles.spring-messaging [119] > > at > > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639) > > ~[?:?] > > at > > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > > ~[?:?] > > at > > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > > ~[?:?] > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?] > > at > > org.springframework.messaging.simp.SimpLogging.forLog(SimpLogging.java:67) > > ~[?:?] > > at > > org.springframework.messaging.simp.SimpLogging.forLogName(SimpLogging.java:56) > > ~[?:?] > > at > > org.springframework.messaging.simp.user.DefaultUserDestinationResolver.<clinit>(DefaultUserDestinationResolver.java:55) > > ~[?:?] > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > > Method) ~[?:?] > > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > > ~[?:?] > > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > > ~[?:?] > > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > > ~[?:?] > > at > > org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172) > > ~[?:?] > > at > > org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117) > > ~[?:?] > > at > > org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:300) > > ~[?:?] > > at > > org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:285) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1325) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1171) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) > > ~[?:?] > > at > > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) > > ~[?:?] > > at > > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) > > ~[?:?] > > at > > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:849) > > ~[?:?] > > at > > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) > > ~[?:?] > > at > > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) > > ~[?:?] > > at > > org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:701) > > ~[?:?] > > at > > org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:667) > > ~[?:?] > > at > > org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:715) > > ~[?:?] > > at > > org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:590) > > ~[?:?] > > at > > org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:529) > > ~[?:?] > > at > > org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:169) > > ~[?:?] > > at javax.servlet.GenericServlet.init(GenericServlet.java:244) ~[?:?] > > at > > org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:670) > > ~[?:?] > > ... 34 more > > ``` > > > > After adding "org.springframework.core.log" to the "Import-Package" > > manifest entry of "org.apache.servicemix.bundles.spring-messaging" the > > error is gone and spring-messaging 5.1 works as expected (similar to > > 5.0) in OSGi. > > > > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com
