You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by Willem Jiang <wi...@gmail.com> on 2008/11/07 02:17:05 UTC

Re: svn commit: r711212 - in /servicemix/smx3/branches/servicemix-3.2: ./ archetypes/servicemix-cxf-se-wsdl-first-service-unit/ deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/ deployables/serviceengines/servicemix-cam...

Hi Gert,

Can you remove the JbiProducerTest.java.rej from the repository ?
I think you did not mean to commit it.

Willem

gertv@apache.org wrote:
> Author: gertv
> Date: Tue Nov  4 00:55:42 2008
> New Revision: 711212
> 
> URL: http://svn.apache.org/viewvc?rev=711212&view=rev
> Log:
> SM-1673: improve error handling in servicemix-camel
> 
> Added:

>     servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiProducerTest.java.rej


> Added: servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiProducerTest.java.rej
> URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiProducerTest.java.rej?rev=711212&view=auto
> ==============================================================================
> --- servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiProducerTest.java.rej (added)
> +++ servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiProducerTest.java.rej Tue Nov  4 00:55:42 2008
> @@ -0,0 +1,54 @@
> +***************
> +*** 16,29 ****
> +   */
> +  package org.apache.servicemix.camel;
> +  
> +  import javax.jbi.management.DeploymentException;
> +  
> +  import org.apache.camel.builder.RouteBuilder;
> +  
> +  /**
> +   * Test for {@link JbiEndpoint.JbiProducer}  
> +   */
> +- public class JbiProducerTest extends JbiCamelErrorHandlingTestSupport {
> +    
> +      /*
> +       * Ensure that no exceptions get thrown when shutting down the routes
> +--- 16,32 ----
> +   */
> +  package org.apache.servicemix.camel;
> +  
> ++ import java.util.List;
> ++ 
> +  import javax.jbi.management.DeploymentException;
> +  
> +  import org.apache.camel.builder.RouteBuilder;
> ++ import org.apache.servicemix.jbi.container.ActivationSpec;
> +  
> +  /**
> +   * Test for {@link JbiEndpoint.JbiProducer}  
> +   */
> ++ public class JbiProducerTest extends JbiTestSupport {
> +    
> +      /*
> +       * Ensure that no exceptions get thrown when shutting down the routes
> +***************
> +*** 41,46 ****
> +      protected void tearDown() throws Exception {
> +          // testing shutdown, so will do this manually
> +      }
> +    
> +      @Override
> +      protected RouteBuilder createRoutes() {
> +--- 44,54 ----
> +      protected void tearDown() throws Exception {
> +          // testing shutdown, so will do this manually
> +      }
> ++     
> ++     @Override
> ++     protected void appendJbiActivationSpecs(List<ActivationSpec> activationSpecList) {
> ++         // no additional activation specs required
> ++     }
> +    
> +      @Override
> +      protected RouteBuilder createRoutes() {
> 
> Modified: servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java
> URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java?rev=711212&r1=711211&r2=711212&view=diff
> ==============================================================================
> --- servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java (original)
> +++ servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java Tue Nov  4 00:55:42 2008
> @@ -22,6 +22,7 @@
>  import java.util.concurrent.TimeUnit;
>  import java.util.concurrent.atomic.AtomicBoolean;
>  
> +import javax.jbi.JBIException;
>  import javax.xml.namespace.QName;
>  
>  import org.apache.camel.AsyncCallback;
> @@ -35,7 +36,10 @@
>  import org.apache.camel.builder.RouteBuilder;
>  import org.apache.camel.component.mock.MockEndpoint;
>  import org.apache.camel.impl.DefaultCamelContext;
> +import org.apache.servicemix.client.DefaultServiceMixClient;
> +import org.apache.servicemix.client.ServiceMixClient;
>  import org.apache.servicemix.jbi.container.ActivationSpec;
> +import org.apache.servicemix.jbi.container.JBIContainer;
>  import org.apache.servicemix.jbi.container.SpringJBIContainer;
>  import org.apache.servicemix.tck.ExchangeCompletedListener;
>  
> @@ -43,6 +47,7 @@
>   * @version $Revision: 563665 $
>   */
>  public abstract class JbiTestSupport extends TestSupport {
> +    
>      protected Exchange receivedExchange;
>  
>      protected CamelContext camelContext = new DefaultCamelContext();
> @@ -58,6 +63,8 @@
>      protected String startEndpointUri = "jbi:endpoint:serviceNamespace:serviceA:endpointA";
>  
>      protected ProducerTemplate<Exchange> client = camelContext.createProducerTemplate();
> +    
> +    protected ServiceMixClient servicemixClient;
>  
>      /**
>       * Sends an exchange to the endpoint
> @@ -108,42 +115,65 @@
>  
>      @Override
>      protected void setUp() throws Exception {
> -        jbiContainer.setEmbedded(true);
> -        exchangeCompletedListener = new ExchangeCompletedListener();
> -
> -        CamelJbiComponent component = new CamelJbiComponent();
> -
> +        configureContainer(jbiContainer);
>          List<ActivationSpec> activationSpecList = new ArrayList<ActivationSpec>();
> -
> +        
>          // lets add the Camel endpoint
> -        ActivationSpec activationSpec = new ActivationSpec();
> -        activationSpec.setId("camel");
> -        activationSpec.setService(new QName("camel", "camel"));
> -        activationSpec.setEndpoint("camelEndpoint");
> -        activationSpec.setComponent(component);
> -        activationSpecList.add(activationSpec);
> +        CamelJbiComponent component = new CamelJbiComponent();
> +        activationSpecList.add(createActivationSpec(component, new QName("camel", "camel"), "camelEndpoint"));
>  
> +        // and provide a callback method for adding more services
>          appendJbiActivationSpecs(activationSpecList);
> -
> -        ActivationSpec[] activationSpecs = activationSpecList
> -                .toArray(new ActivationSpec[activationSpecList.size()]);
> -        jbiContainer.setActivationSpecs(activationSpecs);
> +        jbiContainer.setActivationSpecs(activationSpecList.toArray(new ActivationSpec[activationSpecList.size()]));
> +        
>          jbiContainer.afterPropertiesSet();
> +        
> +        exchangeCompletedListener = new ExchangeCompletedListener();
>          jbiContainer.addListener(exchangeCompletedListener);
>  
> -        // lets configure some componnets
> -        camelContext.addComponent("jbi", component);
> -
> +        // allow for additional configuration of the compenent (e.g. deploying SU)
> +        configureComponent(component);
> +        
>          // lets add some routes
> -        camelContext.addRoutes(createRoutes());
> +        RouteBuilder builder = createRoutes();
> +        if (builder != null) {
> +            camelContext.addRoutes(builder);
> +        }
>          endpoint = camelContext.getEndpoint(startEndpointUri);
> -        assertNotNull("No endpoint found!", endpoint);
>  
>          camelContext.start();
>      }
>  
> +    protected void configureComponent(CamelJbiComponent component) throws Exception {
> +        // add the ServiceMix Camel component to the CamelContext
> +        camelContext.addComponent("jbi", component);
> +    }
> +
> +    protected void configureContainer(final JBIContainer container) throws Exception {
> +        container.setEmbedded(true);
> +    }
> +    
> +    public ServiceMixClient getServicemixClient() throws JBIException {
> +        if (servicemixClient == null) {
> +            servicemixClient = new DefaultServiceMixClient(jbiContainer);
> +        }
> +        return servicemixClient;
> +    }
> +    
> +    protected ActivationSpec createActivationSpec(Object component, QName service) {
> +        return createActivationSpec(component, service, "endpoint");
> +    }
> +    
> +    protected ActivationSpec createActivationSpec(Object component, QName service, String endpointName) {
> +        ActivationSpec spec = new ActivationSpec(component);
> +        spec.setService(service);
> +        spec.setEndpoint(endpointName);
> +        return spec;
> +    }
> +
>      @Override
>      protected void tearDown() throws Exception {
> +        getServicemixClient().close();
>          client.stop();
>          camelContext.stop();
>          super.tearDown();
> @@ -154,8 +184,7 @@
>      }
>  
>  
> -    protected abstract void appendJbiActivationSpecs(
> -            List<ActivationSpec> activationSpecList);
> +    protected abstract void appendJbiActivationSpecs(List<ActivationSpec> activationSpecList);
>  
>      protected abstract RouteBuilder createRoutes();
>  }
>