You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Claus Ibsen <cl...@gmail.com> on 2013/02/13 14:50:16 UTC

Re: svn commit: r1445263 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/support/ServiceSupport.java test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java

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,  <ra...@apache.org> 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: cibsen@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Re: svn commit: r1445263 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/support/ServiceSupport.java test/java/org/apache/camel/component/vm/VmMultipleContextsStartStopTest.java

Posted by Raul Kripalani <ra...@evosent.com>.
Thanks for the heads-up. I'll check it later.

Regards,
Raúl.

On Wed, Feb 13, 2013 at 1:50 PM, Claus Ibsen <cl...@gmail.com> 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,  <ra...@apache.org> 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: cibsen@redhat.com
> Web: http://fusesource.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
>