Thank you Isuru P. and Isuru H. for the additional clarifications. What you said makes sense. We'll exclude the wso2 version of slf4j from cartridge agent. Should I also push this change upstream to 4.0.0 branch?
Thanks, -Jeffrey From: Isuru Haththotuwa <isu...@apache.org<mailto:isu...@apache.org>> Reply-To: "dev@stratos.apache.org<mailto:dev@stratos.apache.org>" <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Date: Thursday, July 17, 2014 11:19 PM To: dev <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Subject: Re: Multiple versions of slf4j used in Stratos On Fri, Jul 18, 2014 at 2:51 AM, Isuru Perera <isu...@wso2.com<mailto:isu...@wso2.com>> wrote: WSO2 maintains a separate version for slf4j to make it an OSGi bundle. See [1]. Since Carbon runs on OSGi container, all JARs need to be OSGi bundles. Cartridge Agent is just a simple Java program and it's okay to exclude the wso2 version of slf4j. Exactly. So this should be fine. I hope this helps. Thanks! [1] http://maven.wso2.org/nexus/content/repositories/wso2maven2/slf4j/wso2/slf4j/1.5.10.wso2v1/slf4j-1.5.10.wso2v1.pom On Thu, Jul 17, 2014 at 10:52 AM, Jeffrey Nguyen (jeffrngu) <jeffr...@cisco.com<mailto:jeffr...@cisco.com>> wrote: Thank you Isuru for the pointer. I was able to modify the file you mentioned and confirmed cartridge agent zip file doesn't have the wso2 version of slf4j. When we removed this jar file, we fixed the issue of spawned VM not converging to active. However, logging for cartridge agent stopped working. Martin in our team seems to have found a work-around to get logging working again. However, given you mentioned this jar file is part of core carbon components, is it safe to remove it from cartridge agent? I suppose the wso2 version of slf4j was customized for some good reason right? We just want to make sure nothing within cartridge agent depends on wso2 slf4j. -Jeffrey From: Isuru Haththotuwa <isu...@apache.org<mailto:isu...@apache.org>> Reply-To: "dev@stratos.apache.org<mailto:dev@stratos.apache.org>" <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Date: Wednesday, July 16, 2014 9:27 PM To: dev <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Subject: Re: Multiple versions of slf4j used in Stratos Hi Jeffrey, The slf4j 1.5.10.wso2v1 jar seems to be coming from the core carbon kernel components. Therefore, its not possible to remove it from the build. Since you have mentioned that manually removing it resolved the issue, you can exclude it from the cartridge agent build and test if the issue is resolved. To do this, please add an exclusion condition to [1], in the dependencySets element in your local build. There are some existing exclusions that you can refer to. [1]. products/cartridge-agent/modules/distribution/src/main/assembly/bin.xml On Tue, Jul 15, 2014 at 8:51 PM, Jeffrey Nguyen (jeffrngu) <jeffr...@cisco.com<mailto:jeffr...@cisco.com>> wrote: Changed subject… Hi Devs, Anybody has any pointers/suggestions on how to fix this issue with multiple versions of slf4j library? We found this dependency problem in cartridge agent. Not sure if this affects any other components in Stratos. Thanks, -Jeffrey From: jeffrngu <jeffr...@cisco.com<mailto:jeffr...@cisco.com>> Reply-To: "dev@stratos.apache.org<mailto:dev@stratos.apache.org>" <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Date: Monday, July 14, 2014 7:21 PM To: "dev@stratos.apache.org<mailto:dev@stratos.apache.org>" <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Subject: Re: cartridge agent startup error (4.0.0 based source, local build) Hi Devs, Just wanted to follow up on this issue. We've confirmed that removing apache-stratos-cartridge-agent-4.0.0/lib/slf4j-1.5.10.wso2v1.jar fixed this issue. We're trying to see where this dependency is configured. I found the references to slf4j in [1], [2], and [3] in our code base. I assume [1] and [2] are auto-generated during maven build. Any idea which config file controls contents of [1] and [2]? I also see that Stratos CLI code uses slf4j version 1.7.6 while cloud controller, load balancer and the rest uses version 1.6.4. Should we try to ensure all Stratos components references the same version of sl4j? If so, how? 1/- products/stratos/modules/p2-profile-gen/target/wso2carbon-core-4.2.0/repository/components/default/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info<http://bundles.info> slf4j,1.5.10.wso2v1,../plugins/slf4j_1.5.10.wso2v1.jar,4,true 2/- components/org.apache.stratos.cartridge.agent/target/maven-shared-archive-resources/META-INF/DEPENDENCIES - slf4j.wso2 (http://wso2.org) slf4j.wso2:slf4j:bundle:1.5.10.wso2v1 3/- components/org.apache.stratos.cartridge.agent/pom.xml <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.5</version> </dependency> Thanks, -Jeffrey From: "Martin Eppel (meppel)" <mep...@cisco.com<mailto:mep...@cisco.com>> Reply-To: "dev@stratos.apache.org<mailto:dev@stratos.apache.org>" <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Date: Sunday, July 13, 2014 12:03 PM To: "dev@stratos.apache.org<mailto:dev@stratos.apache.org>" <dev@stratos.apache.org<mailto:dev@stratos.apache.org>> Cc: "d...@stratos.incubator.apache.org<mailto:d...@stratos.incubator.apache.org>" <d...@stratos.incubator.apache.org<mailto:d...@stratos.incubator.apache.org>> Subject: RE: cartridge agent startup error (4.0.0 based source, local build) We merged our local changes which (were working and based on rc4), with 4.0.0 and now we are seeing this issue. Did we change library versions (used by cartridge agent) between rc4 and 4.0.0 ? Which pom files define all the cartridge agent dependencies ? Thanks Martin From:isu...@wso2.com<mailto:isu...@wso2.com> [mailto:isu...@wso2.com] On Behalf Of Isuru Haththotuwa Sent: Sunday, July 13, 2014 7:21 AM To: dev Cc: d...@stratos.incubator.apache.org<mailto:d...@stratos.incubator.apache.org> Subject: Re: cartridge agent startup error (4.0.0 based source, local build) Hi Martin, I have not seen this, but a Google search tells me what you thought is correct. There are different versions of API and Integration libraries. Do you have any local changes? If so, please check in those classes if there are any imports related to a different version of SL4J. On Sun, Jul 13, 2014 at 3:46 PM, Martin Eppel (meppel) <mep...@cisco.com<mailto:mep...@cisco.com>> wrote: We are getting an error when the cartridge agent is starting, looks like the (local) build it is pulling 2 different versions of SLF4J (see exception below) when the cartridge zip file is generated which causes an incompatibility, has anyone else seen this ? Any idea what's causing it and how to resolve it ? Thanks Martin log4j:WARN Please initialize the log4j system properly. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/apache-stratos-cartridge-agent-4.0.0/lib/slf4j-1.5.10.wso2v1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/apache-stratos-cartridge-agent-4.0.0/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. log4j:WARN Please initialize the log4j system properly. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/apache-stratos-cartridge-agent-4.0.0/lib/slf4j-1.5.10.wso2v1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/apache-stratos-cartridge-agent-4.0.0/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. "/var/log/apache-stratos/cartridge-agent.log" 48L, 5449C 1,1 Top at org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:310) at org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:96) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:200) at java.lang.Thread.run(Thread.java:745) Exception in thread "Thread-3" java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String; at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:246) at org.apache.activemq.thread.TaskRunnerFactory.init(TaskRunnerFactory.java:91) at org.apache.activemq.thread.TaskRunnerFactory.execute(TaskRunnerFactory.java:149) at org.apache.activemq.thread.TaskRunnerFactory.execute(TaskRunnerFactory.java:145) at org.apache.activemq.transport.tcp.TcpTransport.doStop(TcpTransport.java:538) at org.apache.activemq.util.ServiceSupport.stop(ServiceSupport.java:71) at org.apache.activemq.transport.tcp.TcpTransport.stop(TcpTransport.java:582) at org.apache.activemq.transport.AbstractInactivityMonitor.stop(AbstractInactivityMonitor.java:145) at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.stop(WireFormatNegotiator.java:91) at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65) at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:65) at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132) at org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:43) at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:725) at org.apache.stratos.messaging.broker.connect.TopicConnector.close(TopicConnector.java:86) at org.apache.stratos.messaging.broker.subscribe.TopicSubscriber.run(TopicSubscriber.java:157) at java.lang.Thread.run(Thread.java:745) -- Thanks and Regards, Isuru H. +94 716 358 048 -- <tel:%2B94%20716%20358%20048> <tel:%2B94%20716%20358%20048> <tel:%2B94%20716%20358%20048> Thanks and Regards, Isuru H. +94 716 358 048<tel:%2B94%20716%20358%20048><http://wso2.com/> <http://wso2.com/> -- Isuru Perera Senior Software Engineer | WSO2, Inc. | http://wso2.com/ Lean . Enterprise . Middleware about.me/chrishantha -- <http://about.me/chrishantha> <http://about.me/chrishantha> Thanks and Regards, Isuru H. +94 716 358 048<http://about.me/chrishantha><http://wso2.com/> <http://wso2.com/>