Thanks for the heads-up. I'll check it later. Regards, Raúl.
On Wed, Feb 13, 2013 at 1:50 PM, Claus Ibsen <[email protected]> wrote: > Hi > > I suspect this change causes the vm component to fail now > > https://builds.apache.org/job/Camel.trunk.fulltest/org.apache.camel$camel-core/1235/testReport/ > > > > On Tue, Feb 12, 2013 at 5:54 PM, <[email protected]> wrote: > > Author: raulk > > Date: Tue Feb 12 16:54:43 2013 > > New Revision: 1445263 > > > > URL: http://svn.apache.org/r1445263 > > Log: > > CAMEL-6072 Service Shutdown logic may execute N times // CAMEL-6073 > Pairs of VM producer-consumer disconnect when OSGi bundle is restarted > > > > Added: > > > camel/trunk/camel-core/src/test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java > > Modified: > > > camel/trunk/camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java > > > > Modified: > camel/trunk/camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java > > URL: > http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java?rev=1445263&r1=1445262&r2=1445263&view=diff > > > ============================================================================== > > --- > camel/trunk/camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java > (original) > > +++ > camel/trunk/camel-core/src/main/java/org/apache/camel/support/ServiceSupport.java > Tue Feb 12 16:54:43 2013 > > @@ -145,6 +145,10 @@ public abstract class ServiceSupport imp > > > > @Override > > public void shutdown() throws Exception { > > + if (shutdown.get()) { > > + LOG.trace("Service already shut down"); > > + return; > > + } > > // ensure we are stopped first > > stop(); > > > > > > Added: > camel/trunk/camel-core/src/test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java > > URL: > http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java?rev=1445263&view=auto > > > ============================================================================== > > --- > camel/trunk/camel-core/src/test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java > (added) > > +++ > camel/trunk/camel-core/src/test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java > Tue Feb 12 16:54:43 2013 > > @@ -0,0 +1,78 @@ > > +/** > > + * Licensed to the Apache Software Foundation (ASF) under one or more > > + * contributor license agreements. See the NOTICE file distributed with > > + * this work for additional information regarding copyright ownership. > > + * The ASF licenses this file to You under the Apache License, Version > 2.0 > > + * (the "License"); 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 > > + * > > + * Unless required by applicable law or agreed to in writing, software > > + * distributed under the License is distributed on an "AS IS" BASIS, > > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > > + * See the License for the specific language governing permissions and > > + * limitations under the License. > > + */ > > +package org.apache.camel.component.vm; > > + > > +import org.apache.camel.ContextTestSupport; > > +import org.apache.camel.ProducerTemplate; > > +import org.apache.camel.builder.RouteBuilder; > > +import org.apache.camel.component.mock.MockEndpoint; > > +import org.apache.camel.impl.DefaultCamelContext; > > + > > +/** > > + * @version > > + */ > > +public class VmMultipleContextsStartStopTest extends ContextTestSupport > { > > + > > + public void testStartStop() throws Exception { > > + DefaultCamelContext c1 = new DefaultCamelContext(); > > + c1.addRoutes(new RouteBuilder() { > > + @Override > > + public void configure() throws Exception { > > + from("direct:test") > > + .to("vm:foo"); > > + } > > + }); > > + c1.start(); > > + ProducerTemplate template = c1.createProducerTemplate(); > > + > > + DefaultCamelContext c2 = new DefaultCamelContext(); > > + c2.addRoutes(new RouteBuilder() { > > + @Override > > + public void configure() throws Exception { > > + from("vm:foo") > > + .to("mock:result"); > > + } > > + }); > > + c2.start(); > > + > > + /* Check that contexts are communicated */ > > + MockEndpoint mock = c2.getEndpoint("mock:result", > MockEndpoint.class); > > + mock.expectedMessageCount(1); > > + template.requestBody("direct:test", "Hello world!"); > > + mock.assertIsSatisfied(); > > + mock.reset(); > > + > > + /* Restart the consumer Camel Context */ > > + c2.stop(); > > + c2.start(); > > + > > + /* Send a message again and assert that it's received */ > > + template.requestBody("direct:test", "Hello world!"); > > + mock.assertIsSatisfied(); > > + > > + } > > + > > + @Override > > + protected RouteBuilder createRouteBuilder() throws Exception { > > + return new RouteBuilder() { > > + @Override > > + public void configure() throws Exception { > > + > > + } > > + }; > > + } > > +} > > \ No newline at end of file > > > > > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > FuseSource is now part of Red Hat > Email: [email protected] > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen >
