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
>

Reply via email to