Interceptor
Hi all, Is somebody already using its own interceptor in a xml spring configuration file? In fact, I want to know if in the following definition of intercept, the stop really stops route execution. Cause for me; all other routes are executed. intercept interceptor id=intercept1 ref=MyInterceptor/ to uri=mock:test/ stop/ /intercept Best regards, Mta38 -- View this message in context: http://www.nabble.com/Interceptor-tp22178768p22178768.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: Is Mina custom codec overriding text line codec
Having delved into MinaComponent.java, I see that a configuration is copied on the creation of an endpoint i.e. MinaConfiguration config = configuration.copy(); on line 81. This configuration is created on instantiating the mina component (that should be just once right?). I'm guessing that for every Mina endpoint expressed as: from(mina:...)... there's a corresponding Endpoint instance created from that one component. Of course with Mina, one instance of an acceptor can host many socket connections. Perhaps with other transports this is not the case and that copying the configuration makes sense. However with Mina I am not sure that copying the configuration buys you much... perhaps we should instantiate the configuration each time instead of copying. That way, we're not going to carry forward previous configurations that are not applicable. Maybe I have this wrong and apologies if so. 'hope that my investigations help. Kind regards, Christopher -- View this message in context: http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22178853.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: Interceptor
Hi You should not use the interceptor tag, only the intercept. For example: camelContext id=camel xmlns=http://camel.apache.org/schema/spring; intercept to uri=mock:middle1/ stop/ /intercept route from uri=direct:start/ to uri=mock:end/ /route /camelContext On Tue, Feb 24, 2009 at 10:33 AM, mta38 mtaraud@orange-ftgroup.com wrote: Hi all, Is somebody already using its own interceptor in a xml spring configuration file? In fact, I want to know if in the following definition of intercept, the stop really stops route execution. Cause for me; all other routes are executed. intercept interceptor id=intercept1 ref=MyInterceptor/ to uri=mock:test/ stop/ /intercept Best regards, Mta38 -- View this message in context: http://www.nabble.com/Interceptor-tp22178768p22178768.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com. -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
Re: Is Mina custom codec overriding text line codec
Which version are you using? This is the code from the 1.x branch as I see it: protected EndpointMinaExchange createEndpoint(String uri, String remaining, Map parameters) throws Exception { if (LOG.isDebugEnabled()) { LOG.debug(Creating MinaEndpoint from uri: + uri); } setProperties(this, parameters); URI u = new URI(remaining); String protocol = u.getScheme(); // if mistyped uri then protocol can be null if (protocol != null) { if (protocol.equals(tcp)) { return createSocketEndpoint(uri, u, parameters); } else if (protocol.equals(udp) || protocol.equals(mcast) || protocol.equals(multicast)) { return createDatagramEndpoint(uri, u, parameters); } else if (protocol.equals(vm)) { return createVmEndpoint(uri, u); } } // protocol not resolved so error throw new IllegalArgumentException(Unrecognised MINA protocol: + protocol + for uri: + uri); } On Tue, Feb 24, 2009 at 10:39 AM, huntc hu...@mac.com wrote: Having delved into MinaComponent.java, I see that a configuration is copied on the creation of an endpoint i.e. MinaConfiguration config = configuration.copy(); on line 81. This configuration is created on instantiating the mina component (that should be just once right?). I'm guessing that for every Mina endpoint expressed as: from(mina:...)... there's a corresponding Endpoint instance created from that one component. Of course with Mina, one instance of an acceptor can host many socket connections. Perhaps with other transports this is not the case and that copying the configuration makes sense. However with Mina I am not sure that copying the configuration buys you much... perhaps we should instantiate the configuration each time instead of copying. That way, we're not going to carry forward previous configurations that are not applicable. Maybe I have this wrong and apologies if so. 'hope that my investigations help. Kind regards, Christopher -- View this message in context: http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22178853.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com. -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
Re: Is Mina custom codec overriding text line codec
One more contribution, and then I'll let someone else have a turn... As a work-around, if I specify the codec parameter with no value then all is well e.g.: mina:tcp://0.0.0.0:8201?codectextline=truetextlineDelimiter=WINDOWSsync=falseminaLogger=true -- View this message in context: http://www.nabble.com/Is-Mina-custom-codec-overriding-text-line-codec-tp22176938p22178979.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
Re: Camel + ActiveMQ in Tomcat6
Hi Have you tried NOT having camel-core.jar in /lib/ext, but putting all the camel jars in the WEB-INF/lib On Tue, Feb 24, 2009 at 2:34 PM, Markus Wolf markus.w...@nmmn.com wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi, I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. We have the following setup: CATALINA_HOME /lib/ext/activemq.jar /lib/ext/camel-core.jar /webapp/ROOT/WEB-INF/lib/camel-jms.jar /webapp/ROOT/WEB-INF/lib/camel-spring.jar /webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar When we start our tomcat we get a ClassNotFoundException for the org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to deploy the whole thing 'the right way'. When we put activemq with camel-core into our webapp we have classloader leaks and cannot undeploy our application. When we put camel-jms into the lib/ext folder of tomcat we are forced to place the whole spring and dependencies there also. That seems wrong to me also. Can anyone give me a hint about the deployment? Thanks Markus Wolf - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmj91gACgkQDBHISU1oEKFSYACfUsgx01wj1UcLbQr2trc8m/Gv gVUAn22zloCis2pjVjSlLPz6fBLyqghs =7swM -END PGP SIGNATURE- -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
Re: Camel + ActiveMQ in Tomcat6
2009/2/24 Markus Wolf markus.w...@nmmn.com: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi James, this approach does not help me, since when the ActiveMQ is created by tomcats webapplication classloader it cannot be undeployed. You don't have to create the broker in the WAR (or you could put it in another WAR). This approach works totally fine if you are using the ActiveMQ JMS client with Camel. -- James --- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Claus, we tried this but it throws this Exception during creation of the ActiveMQConnectionFactory: Caused by: java.lang.NoClassDefFoundError: org/apache/activemq/management/JMSStatsImpl at org.apache.activemq.ActiveMQConnectionFactory.init(ActiveMQConnectionFactory.java:83) at org.apache.activemq.ActiveMQConnectionFactory.init(ActiveMQConnectionFactory.java:123) at org.apache.activemq.ActiveMQConnectionFactory.init(ActiveMQConnectionFactory.java:119) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.activemq.jndi.JNDIReferenceFactory.getObjectInstance(JNDIReferenceFactory.java:65) at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304) at org.apache.naming.NamingContext.lookup(NamingContext.java:793) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContext.lookup(NamingContext.java:781) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContext.lookup(NamingContext.java:781) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContext.lookup(NamingContext.java:781) at org.apache.naming.NamingContext.lookup(NamingContext.java:153) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137) at javax.naming.InitialContext.lookup(InitialContext.java:392) at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155) at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:88) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:153) at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178) at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95) at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105) at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:200) at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:186) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) ... 44 common frames omitted I guess there is currently no way to use ActiveMQ in an embedded way which does not have classloader leaks. It's a pitty, since we only need the activemq dependency to create a connection factory to a remove broker. There is no configuration of activemq involved (i guess that would make it even harder)... But thanks for your help. If you have any other idea I would be glad to hear. Markus Hi Have you tried NOT having camel-core.jar in /lib/ext, but putting all the camel jars in the WEB-INF/lib On Tue, Feb 24, 2009 at 2:34 PM, Markus Wolf markus.w...@nmmn.com wrote: Hi, I try to deploy a camel context using spring inside Tomcat6 with ActiveMQ. We have the following setup: CATALINA_HOME /lib/ext/activemq.jar /lib/ext/camel-core.jar /webapp/ROOT/WEB-INF/lib/camel-jms.jar /webapp/ROOT/WEB-INF/lib/camel-spring.jar /webapp/ROOT/WEB-INF/lib/spring-and-dependencies.jar When we start our tomcat we get a ClassNotFoundException for the org.apache.camel.component.jms.JmsComponent. And now I'm unsure how to deploy the whole thing 'the right way'. When we put activemq with camel-core into our webapp we have classloader leaks and cannot undeploy our application. When we put camel-jms into the lib/ext folder of tomcat we are forced to place the whole spring and dependencies there also. That seems wrong to me also. Can anyone give me a hint about the deployment? Thanks Markus Wolf - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 this approach does not help me, since when the ActiveMQ is created by tomcats webapplication classloader it cannot be undeployed. You don't have to create the broker in the WAR (or you could put it in another WAR). This approach works totally fine if you are using the ActiveMQ JMS client with Camel. But it requires to put the activemq-core dependency to the webapp for creating the ConnectionFactory for ActiveMQ, doesn't it? Or am I missing something here. Even starting the ConnectionFactory produce memory leaks in the webapp classloader. Markus - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkAM4ACgkQDBHISU1oEKHziwCcC22oLbH6eesbfC6tKvefB8yh bo4AoILeSJp1v/k99vKAWl/g7Ut8O0Wz =fmv8 -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 we tried this but it throws this Exception during creation of the ActiveMQConnectionFactory: Tried what exactly? Running the camel-activemq-web war works fine for me. I've tried to put only the activemq libraries into my tomcat common classpath and all camel dependencies including camel-core into my webapp. That caused the exeception I mentioned. Caused by: java.lang.NoClassDefFoundError: org/apache/activemq/management/JMSStatsImpl Looks like missing dependencies. Are you using maven to resolve the dependencies? That file resides in the activemq-core.jar. I've checked that. And that file is inside the tomcat common classpath. Maybe I missconfigured something here... :/ [snip] I guess there is currently no way to use ActiveMQ in an embedded way which does not have classloader leaks. I don't see any evidence of a class loader leak? Ok, let me explain it a bit more in detail. The ActiveMQConnectionFactory and the TcpTransport (some other classes also) create ThreadPools (to be excact ScheduledThreadPools from Java Concurrent). That thread pools are configured with custom ThreadFactories to set the created Threads to daemon behaviour. When we undeploy our application then the ThreadPool classes keep a reference to the ThreadFactories. This factories are loaded by tomcats webapp classloader whereas the ThreadPool classes are loaded by the bootstrap classloader of the JDK. Therefore the webapp classloader could not be unloaded. I'm not a classloader expert but I check this with the eclipse memory analyzer tool (http://www.eclipse.org/mat), because I wanted to see which part of our application keeps the PermGen. Markus - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkAksACgkQDBHISU1oEKHELACfcKfNvdgRQ4WguvQmX1V9DZJE IjAAoJpO6qGDd43epV9UsnZ30z7V7AaK =a7vE -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
Markus, What does the path to the GC root look like for the classloader object that couldn't be unloaded in Eclipse MAT? Regards, Gert Markus Wolf wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 we tried this but it throws this Exception during creation of the ActiveMQConnectionFactory: Tried what exactly? Running the camel-activemq-web war works fine for me. I've tried to put only the activemq libraries into my tomcat common classpath and all camel dependencies including camel-core into my webapp. That caused the exeception I mentioned. Caused by: java.lang.NoClassDefFoundError: org/apache/activemq/management/JMSStatsImpl Looks like missing dependencies. Are you using maven to resolve the dependencies? That file resides in the activemq-core.jar. I've checked that. And that file is inside the tomcat common classpath. Maybe I missconfigured something here... :/ [snip] I guess there is currently no way to use ActiveMQ in an embedded way which does not have classloader leaks. I don't see any evidence of a class loader leak? Ok, let me explain it a bit more in detail. The ActiveMQConnectionFactory and the TcpTransport (some other classes also) create ThreadPools (to be excact ScheduledThreadPools from Java Concurrent). That thread pools are configured with custom ThreadFactories to set the created Threads to daemon behaviour. When we undeploy our application then the ThreadPool classes keep a reference to the ThreadFactories. This factories are loaded by tomcats webapp classloader whereas the ThreadPool classes are loaded by the bootstrap classloader of the JDK. Therefore the webapp classloader could not be unloaded. I'm not a classloader expert but I check this with the eclipse memory analyzer tool (http://www.eclipse.org/mat), because I wanted to see which part of our application keeps the PermGen. Markus - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkAksACgkQDBHISU1oEKHELACfcKfNvdgRQ4WguvQmX1V9DZJE IjAAoJpO6qGDd43epV9UsnZ30z7V7AaK =a7vE -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 this approach does not help me, since when the ActiveMQ is created by tomcats webapplication classloader it cannot be undeployed. You don't have to create the broker in the WAR (or you could put it in another WAR). This approach works totally fine if you are using the ActiveMQ JMS client with Camel. But it requires to put the activemq-core dependency to the webapp for creating the ConnectionFactory for ActiveMQ, doesn't it? Or am I missing something here. Yes. How else could you use ActiveMQ from a web app? Ok, then at least I do not have missunderstood ActiveMQ. :-) Even starting the ConnectionFactory produce memory leaks in the webapp classloader. Not sure what you mean by memory leak in the web app class loader. Do you consider adding a class to a class loader a leak? :) As I described earlier the thread pool usage of ActiveMQ (the ActiveMQConnectionFactory and TcpTransport use them) keep references which cause the webapp classloader not to get garbage collected at undeployment of the webapp. It is the following way when look at a memory dump: ActiveMQConnectionFactory creates java.util.concurrent.ScheduledThreadPoolExecutor with a custom ThreadFactory. When the webapp is undeployed the ActiveMQConnectionFactory could not be garbage collected because the ThreadPool keeps a reference to the ThreadFactory. This is caused by the following classloader dependencies: * The ThreadPool is loaded by the bootstrap classloder * The ThreadFactory is loaded by the webapp classloader The reference in the ThreadPool (to the ThreadFactory) is not reset to null (or a class loaded by the bootstrap classloader). So the ThreadPool held by the bootstrap classloader references the thread factory which references the webapp classloader. Thats the leak. Markus - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkA/AACgkQDBHISU1oEKGRfACgzCuKooGJ2NcHVgBiJeXqb2oO x+YAoIS9JDpOWA5wMhIpdk/sq9gFpukn =JamU -END PGP SIGNATURE-
Re: Camel + ActiveMQ in Tomcat6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi Willem, Which version of activemq are you using ? We take out the activemq component from activemq-core in Activemq 5.2. we are currently using ActiveMQ 5.1.0. Maybe we should consider an upgrade if the camel component is better separated in the 5.2 version. We will try that. :-) Markus - -- NMMN - New Media Markets Networks GmbH Geschäftsführung: Kfm. Michael Schütt Finanzamt HH-Altona UStID DE 812 699 852 HRB 71102 Hamburg HypoVereinsbank - BLZ 200 300 00 - Konto-Nr. 156 29 82 http://www.nmmn.com Tel.: +49 40 284 118 -0 Langbehnstrasse 6 Entwicklung: -720 22761 Hamburg Fax: -999 Rufen Sie uns kostenlos an: http://www.nmmn.com/call/software -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmkBMoACgkQDBHISU1oEKEsHACfcNzsWsaSMGtIY1wBE7AIW/OJ xcAAoMfOuUj8v7QgikrjgZg4PCOAIzyK =gO+8 -END PGP SIGNATURE-
Re: FileConsumer ERROR,RejectedExecutionException (from file to jms)
Can anybody help me?:) -- View this message in context: http://www.nabble.com/FileConsumer-ERROR%2CRejectedExecutionException-%28from-file-to-jms%29-tp22119097p22181066.html Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.