You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by js...@apache.org on 2007/08/09 12:52:31 UTC

svn commit: r564166 - in /incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test: java/org/apache/servicemix/camel/ resources/org/apache/servicemix/camel/ resources/org/apache/servicemix/camel/su1-src/ resources/org/apache/serv...

Author: jstrachan
Date: Thu Aug  9 03:52:30 2007
New Revision: 564166

URL: http://svn.apache.org/viewvc?view=rev&rev=564166
Log:
Refactored the code to the servicemix package structure and to pass those damn checkstyle/pmd rules :)

Added:
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingEndpointUriIntegrationTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingNameUriIntegrationTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingServiceUriIntegrationTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiAndBackToCamelTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiThenRouteToAnotherJbiComponentTest.java   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/camel-context.xml   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/camel-context.xml   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/camel-context.xml   (with props)
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/
    incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/camel-context.xml   (with props)

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingEndpointUriIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingEndpointUriIntegrationTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingEndpointUriIntegrationTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingEndpointUriIntegrationTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,44 @@
+/*
+ * 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.servicemix.camel;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.xml.namespace.QName;
+
+import org.apache.servicemix.client.ServiceMixClient;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class JbiEndpointUsingEndpointUriIntegrationTest extends
+        NonJbiCamelEndpointsIntegrationTest {
+    /*
+     * @see TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+        suName = "su2";
+        super.setUp();
+    }
+
+    @Override
+    protected void configureExchange(ServiceMixClient client,
+            MessageExchange exchange) {
+        QName serviceQName = new QName("http://foo.bar.org", "myService");
+        exchange.setService(serviceQName);
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingEndpointUriIntegrationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingNameUriIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingNameUriIntegrationTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingNameUriIntegrationTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingNameUriIntegrationTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,46 @@
+/*
+ * 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.servicemix.camel;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.jbi.servicedesc.ServiceEndpoint;
+
+import org.apache.servicemix.client.ServiceMixClient;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class JbiEndpointUsingNameUriIntegrationTest extends
+        NonJbiCamelEndpointsIntegrationTest {
+    /*
+     * @see TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+        suName = "su4";
+        super.setUp();
+    }
+
+    @Override
+    protected void configureExchange(ServiceMixClient client,
+            MessageExchange exchange) {
+        ServiceEndpoint endpoint = client.getContext().getEndpoint(
+                CamelJbiEndpoint.SERVICE_NAME, "cheese");
+        assertNotNull("Should have a Camel endpoint exposed in JBI!", endpoint);
+        exchange.setEndpoint(endpoint);
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingNameUriIntegrationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingServiceUriIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingServiceUriIntegrationTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingServiceUriIntegrationTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingServiceUriIntegrationTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,44 @@
+/*
+ * 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.servicemix.camel;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.xml.namespace.QName;
+
+import org.apache.servicemix.client.ServiceMixClient;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class JbiEndpointUsingServiceUriIntegrationTest extends
+        NonJbiCamelEndpointsIntegrationTest {
+    /*
+     * @see TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+        suName = "su3";
+        super.setUp();
+    }
+
+    @Override
+    protected void configureExchange(ServiceMixClient client,
+            MessageExchange exchange) {
+        QName serviceQName = new QName("http://foo.bar.org", "myService");
+        exchange.setService(serviceQName);
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiEndpointUsingServiceUriIntegrationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,128 @@
+/*
+ * 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.servicemix.camel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import javax.xml.namespace.QName;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.TestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.util.ProducerCache;
+import org.apache.servicemix.jbi.container.ActivationSpec;
+import org.apache.servicemix.jbi.container.SpringJBIContainer;
+
+/**
+ * @version $Revision: 563665 $
+ */
+public abstract class JbiTestSupport extends TestSupport {
+    protected Exchange receivedExchange;
+
+    protected CamelContext camelContext = new DefaultCamelContext();
+
+    protected SpringJBIContainer jbiContainer = new SpringJBIContainer();
+
+    protected CountDownLatch latch = new CountDownLatch(1);
+
+    protected Endpoint<Exchange> endpoint;
+
+    protected String startEndpointUri = "jbi:endpoint:serviceNamespace:serviceA:endpointA";
+
+    protected ProducerCache<Exchange> client = new ProducerCache<Exchange>();
+
+    /**
+     * Sends an exchange to the endpoint
+     */
+    protected void sendExchange(final Object expectedBody) {
+        client.send(endpoint, new Processor() {
+            public void process(Exchange exchange) {
+                Message in = exchange.getIn();
+                in.setBody(expectedBody);
+                in.setHeader("cheese", 123);
+            }
+        });
+    }
+
+    protected Object assertReceivedValidExchange(Class type) throws Exception {
+        // lets wait on the message being received
+        boolean received = latch.await(5, TimeUnit.SECONDS);
+        assertTrue("Did not receive the message!", received);
+
+        assertNotNull(receivedExchange);
+        Message receivedMessage = receivedExchange.getIn();
+
+        assertEquals("cheese header", 123, receivedMessage.getHeader("cheese"));
+        Object body = receivedMessage.getBody();
+        log.debug("Received body: " + body);
+        return body;
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        jbiContainer.setEmbedded(true);
+
+        CamelJbiComponent component = new CamelJbiComponent();
+
+        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);
+
+        appendJbiActivationSpecs(activationSpecList);
+
+        ActivationSpec[] activationSpecs = activationSpecList
+                .toArray(new ActivationSpec[activationSpecList.size()]);
+        jbiContainer.setActivationSpecs(activationSpecs);
+        jbiContainer.afterPropertiesSet();
+
+        // lets configure some componnets
+        camelContext.addComponent("jbi", component);
+
+        // lets add some routes
+        camelContext.addRoutes(createRoutes());
+        endpoint = camelContext.getEndpoint(startEndpointUri);
+        assertNotNull("No endpoint found!", endpoint);
+
+        camelContext.start();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        client.stop();
+        camelContext.stop();
+        super.tearDown();
+    }
+
+    protected abstract void appendJbiActivationSpecs(
+            List<ActivationSpec> activationSpecList);
+
+    protected abstract RouteBuilder createRoutes();
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/JbiTestSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,165 @@
+/*
+ * 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.servicemix.camel;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+
+import javax.jbi.messaging.InOut;
+import javax.jbi.messaging.MessageExchange;
+import javax.jbi.messaging.MessagingException;
+import javax.jbi.servicedesc.ServiceEndpoint;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.jbi.container.JBIContainer;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class NonJbiCamelEndpointsIntegrationTest extends TestCase {
+    private static final transient Log LOG = LogFactory
+            .getLog(NonJbiCamelEndpointsIntegrationTest.class);
+
+    protected String suName = "su1";
+
+    protected JBIContainer container = new JBIContainer();
+
+    private File tempRootDir;
+
+    public void testComponentInstallation() throws Exception {
+        String serviceUnitConfiguration = suName + "-src/camel-context.xml";
+
+        CamelJbiComponent component = new CamelJbiComponent();
+        container.activateComponent(component, "#ServiceMixComponent#");
+        URL url = getClass().getResource(serviceUnitConfiguration);
+        File path = new File(new URI(url.toString()));
+        path = path.getParentFile();
+        ServiceMixClient client = new DefaultServiceMixClient(container);
+
+        try {
+            for (int i = 0; i < 2; i++) {
+                LOG.info("Loop counter: " + i);
+
+                // Deploy and start su
+                component.getServiceUnitManager().deploy(suName,
+                        path.getAbsolutePath());
+                component.getServiceUnitManager().init(suName,
+                        path.getAbsolutePath());
+                component.getServiceUnitManager().start(suName);
+
+                // Send message
+                MessageExchange exchange = createExchange(client);
+                configureExchange(client, exchange);
+                client.send(exchange);
+
+                // Stop and undeploy
+                component.getServiceUnitManager().stop(suName);
+                component.getServiceUnitManager().shutDown(suName);
+                component.getServiceUnitManager().undeploy(suName,
+                        path.getAbsolutePath());
+
+                // Send message
+                exchange = createExchange(client);
+                try {
+                    configureExchange(client, exchange);
+                    client.send(exchange);
+                    fail("Should have failed to send to a no longer deployed component");
+                } catch (Throwable e) {
+                    LOG.debug(
+                            "Caught expected exception as the component is undeployed: "
+                                    + e, e);
+                }
+            }
+        } catch (Exception e) {
+            LOG.error("Caught: " + e, e);
+            throw e;
+        }
+    }
+
+    /*
+     * @see TestCase#setUp()
+     */
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        container.setCreateMBeanServer(false);
+        container.setMonitorInstallationDirectory(false);
+        tempRootDir = File.createTempFile("servicemix", "rootDir");
+        tempRootDir.delete();
+        File tempTemp = new File(tempRootDir.getAbsolutePath() + "/temp");
+        if (!tempTemp.mkdirs()) {
+            fail("Unable to create temporary working root directory ["
+                    + tempTemp.getAbsolutePath() + "]");
+        }
+        LOG.info("Using temporary root directory ["
+                + tempRootDir.getAbsolutePath() + "]");
+
+        container.setRootDir(tempRootDir.getAbsolutePath());
+        container.setMonitorInstallationDirectory(false);
+        container.setUseMBeanServer(false);
+        container.setCreateMBeanServer(false);
+        container.setFlowName("st");
+        container.init();
+        container.start();
+    }
+
+    /*
+     * @see TestCase#tearDown()
+     */
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        container.stop();
+        container.shutDown();
+        deleteDir(tempRootDir);
+    }
+
+    protected InOut createExchange(ServiceMixClient client)
+        throws MessagingException {
+        
+        return client.createInOutExchange();
+    }
+
+    protected void configureExchange(ServiceMixClient client,
+            MessageExchange exchange) {
+        ServiceEndpoint endpoint = client.getContext().getEndpoint(
+                CamelJbiEndpoint.SERVICE_NAME, "seda:a");
+        assertNotNull("Should have a Camel endpoint exposed in JBI!", endpoint);
+        exchange.setEndpoint(endpoint);
+    }
+
+    public static boolean deleteDir(File dir) {
+        LOG.info("Deleting directory : " + dir.getAbsolutePath());
+        if (dir.isDirectory()) {
+            String[] children = dir.list();
+            for (int i = 0; i < children.length; i++) {
+                boolean success = deleteDir(new File(dir, children[i]));
+                if (!success) {
+                    return false;
+                }
+            }
+        }
+        // The directory is now empty so delete it
+        return dir.delete();
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/NonJbiCamelEndpointsIntegrationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiAndBackToCamelTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiAndBackToCamelTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiAndBackToCamelTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiAndBackToCamelTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,86 @@
+/*
+ * 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.servicemix.camel;
+
+import java.util.List;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+import javax.xml.namespace.QName;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.seda.SedaEndpoint;
+import org.apache.servicemix.jbi.container.ActivationSpec;
+import org.apache.servicemix.jbi.resolver.URIResolver;
+import org.apache.servicemix.tck.SenderComponent;
+
+/**
+ * @version $Revision: 563665 $
+ */
+public class SendFromCamelToJbiAndBackToCamelTest extends JbiTestSupport {
+    protected SenderComponent senderComponent = new SenderComponent();
+
+    public void testCamelInvokingJbi() throws Exception {
+        senderComponent.sendMessages(1);
+
+        SedaEndpoint receiverEndpoint = (SedaEndpoint) camelContext
+                .getEndpoint("seda:receiver");
+
+        BlockingQueue<Exchange> queue = receiverEndpoint.getQueue();
+        Exchange exchange = queue.poll(5, TimeUnit.SECONDS);
+
+        assertNotNull(
+                "Camel Receiver queue should have received an exchange by now",
+                exchange);
+
+        log.debug("Receiver got exchange: " + exchange + " with body: "
+                + exchange.getIn().getBody());
+    }
+
+    @Override
+    protected RouteBuilder createRoutes() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                // no routes required
+            }
+        };
+    }
+
+    @Override
+    protected void appendJbiActivationSpecs(
+            List<ActivationSpec> activationSpecList) {
+        this.startEndpointUri = "seda:receiver";
+
+        ActivationSpec activationSpec = new ActivationSpec();
+        activationSpec.setId("jbiSender");
+        activationSpec.setService(new QName("serviceNamespace", "serviceA"));
+        activationSpec.setEndpoint("endpointA");
+
+        // lets setup the sender to talk directly to camel
+        senderComponent.setResolver(new URIResolver("camel:seda:receiver"));
+        activationSpec.setComponent(senderComponent);
+
+        activationSpecList.add(activationSpec);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        camelContext.stop();
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiAndBackToCamelTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,74 @@
+/*
+ * 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.servicemix.camel;
+
+import java.util.List;
+
+import javax.jbi.messaging.NormalizedMessage;
+import javax.xml.namespace.QName;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.servicemix.jbi.container.ActivationSpec;
+import org.apache.servicemix.tck.MessageList;
+import org.apache.servicemix.tck.ReceiverComponent;
+
+/**
+ * @version $Revision: 563665 $
+ */
+public class SendFromCamelToJbiTest extends JbiTestSupport {
+    private ReceiverComponent receiverComponent = new ReceiverComponent();
+
+    public void testCamelInvokingJbi() throws Exception {
+        sendExchange("<foo bar='123'/>");
+        MessageList list = receiverComponent.getMessageList();
+
+        list.assertMessagesReceived(1);
+        List messages = list.getMessages();
+        NormalizedMessage message = (NormalizedMessage) messages.get(0);
+        assertNotNull("null message!", message);
+        log.info("Received: " + message);
+
+        assertEquals("cheese header", 123, message.getProperty("cheese"));
+    }
+
+    @Override
+    protected RouteBuilder createRoutes() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                // no routes required
+            }
+        };
+    }
+
+    @Override
+    protected void appendJbiActivationSpecs(
+            List<ActivationSpec> activationSpecList) {
+        ActivationSpec activationSpec = new ActivationSpec();
+        activationSpec.setId("jbiReceiver");
+        activationSpec.setService(new QName("serviceNamespace", "serviceA"));
+        activationSpec.setEndpoint("endpointA");
+        activationSpec.setComponent(receiverComponent);
+
+        activationSpecList.add(activationSpec);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        camelContext.stop();
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiThenRouteToAnotherJbiComponentTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiThenRouteToAnotherJbiComponentTest.java?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiThenRouteToAnotherJbiComponentTest.java (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiThenRouteToAnotherJbiComponentTest.java Thu Aug  9 03:52:30 2007
@@ -0,0 +1,76 @@
+/*
+ * 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.servicemix.camel;
+
+import java.util.List;
+
+import javax.jbi.messaging.NormalizedMessage;
+import javax.xml.namespace.QName;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.servicemix.jbi.container.ActivationSpec;
+import org.apache.servicemix.tck.MessageList;
+import org.apache.servicemix.tck.ReceiverComponent;
+
+/**
+ * @version $Revision: 563665 $
+ */
+public class SendFromCamelToJbiThenRouteToAnotherJbiComponentTest extends
+        JbiTestSupport {
+    private ReceiverComponent receiverComponent = new ReceiverComponent();
+
+    public void testCamelInvokingJbi() throws Exception {
+        sendExchange("<foo bar='123'/>");
+        MessageList list = receiverComponent.getMessageList();
+
+        list.assertMessagesReceived(1);
+        List messages = list.getMessages();
+        NormalizedMessage message = (NormalizedMessage) messages.get(0);
+        assertNotNull("null message!", message);
+        log.info("Received: " + message);
+
+        assertEquals("cheese header", 123, message.getProperty("cheese"));
+    }
+
+    @Override
+    protected RouteBuilder createRoutes() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                from("jbi:endpoint:serviceNamespace:serviceA:endpointA").to(
+                        "jbi:endpoint:serviceNamespace:serviceB:endpointB");
+            }
+        };
+    }
+
+    @Override
+    protected void appendJbiActivationSpecs(
+            List<ActivationSpec> activationSpecList) {
+        ActivationSpec activationSpec = new ActivationSpec();
+        activationSpec.setId("jbiReceiver");
+        activationSpec.setService(new QName("serviceNamespace", "serviceB"));
+        activationSpec.setEndpoint("endpointB");
+        activationSpec.setComponent(receiverComponent);
+
+        activationSpecList.add(activationSpec);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        camelContext.stop();
+    }
+}

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/java/org/apache/servicemix/camel/SendFromCamelToJbiThenRouteToAnotherJbiComponentTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/camel-context.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/camel-context.xml?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/camel-context.xml (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/camel-context.xml Thu Aug  9 03:52:30 2007
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<!-- START SNIPPET: camel -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+       http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
+    ">
+
+  <!--
+     from("seda:a").to("seda:b");
+  -->
+  <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
+    <route>
+      <from uri="seda:a"/>
+      <to uri="seda:b"/>
+    </route>
+  </camelContext>
+
+</beans>
+<!-- END SNIPPET: camel -->

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su1-src/camel-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/camel-context.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/camel-context.xml?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/camel-context.xml (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/camel-context.xml Thu Aug  9 03:52:30 2007
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<!-- START SNIPPET: camel -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+       http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
+    ">
+
+  <!--
+     from("seda:a").to("seda:b");
+  -->
+  <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
+    <route>
+      <from uri="jbi:endpoint:http://foo.bar.org/myService/myEndpointName"/>
+      <to uri="seda:b"/>
+    </route>
+  </camelContext>
+
+</beans>
+<!-- END SNIPPET: camel -->

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su2-src/camel-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/camel-context.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/camel-context.xml?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/camel-context.xml (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/camel-context.xml Thu Aug  9 03:52:30 2007
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<!-- START SNIPPET: camel -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+       http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
+    ">
+
+  <!--
+     from("seda:a").to("seda:b");
+  -->
+  <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
+    <route>
+      <from uri="jbi:service:http://foo.bar.org/myService"/>
+      <to uri="seda:b"/>
+    </route>
+  </camelContext>
+
+</beans>
+<!-- END SNIPPET: camel -->

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su3-src/camel-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/camel-context.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/camel-context.xml?view=auto&rev=564166
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/camel-context.xml (added)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/camel-context.xml Thu Aug  9 03:52:30 2007
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<!-- START SNIPPET: camel -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+       http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
+    ">
+
+  <!--
+     from("seda:a").to("seda:b");
+  -->
+  <camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
+    <route>
+      <from uri="jbi:name:cheese"/>
+      <to uri="seda:b"/>
+    </route>
+  </camelContext>
+
+</beans>
+<!-- END SNIPPET: camel -->

Propchange: incubator/servicemix/trunk/deployables/serviceengines/servicemix-camel/src/test/resources/org/apache/servicemix/camel/su4-src/camel-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native