You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dv...@apache.org on 2012/08/22 16:48:06 UTC

svn commit: r1376081 - in /camel/trunk/examples: ./ camel-example-cxf/ camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/ camel-example-cxf/src/main/java/org/apache/camel/example/cxf/httptojms/ camel-example-cxf/src/main/java/org...

Author: dvaleri
Date: Wed Aug 22 14:48:05 2012
New Revision: 1376081

URL: http://svn.apache.org/viewvc?rev=1376081&view=rev
Log:
[CAMEL-4814] Added use of dynamic ports for tests while retaining static ports for stand-alone example execution.

Removed:
    camel/trunk/examples/camel-example-cxf/src/main/resources/features.xml
Modified:
    camel/trunk/examples/camel-example-cxf/README.txt
    camel/trunk/examples/camel-example-cxf/pom.xml
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/CamelTransportExample.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Client.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Server.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/httptojms/CamelCxfExample.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/CamelRouterBuilder.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXRSClient.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXWSClient.java
    camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/provider/Server.java
    camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelCXFProviderRouteConfig.xml
    camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelTransportSpringConfig.xml
    camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/HttpToJmsCamelContext.xml
    camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/JAXRSCamelContext.xml
    camel/trunk/examples/camel-example-cxf/src/main/resources/org/apache/camel/example/camel/transport/CamelDestination.xml
    camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/camel/transport/CamelTransportClientServerTest.java
    camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/httptojms/CxfHttpJmsClientServerTest.java
    camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/jaxrs/JAXRSClientServerTest.java
    camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/provider/ProviderClientServerTest.java
    camel/trunk/examples/pom.xml

Modified: camel/trunk/examples/camel-example-cxf/README.txt
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/README.txt?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/README.txt (original)
+++ camel/trunk/examples/camel-example-cxf/README.txt Wed Aug 22 14:48:05 2012
@@ -18,18 +18,6 @@ To run the example of using WebServicePr
 To run the example of showing how to create CXF JAXRS endpoint
   mvn exec:java -PJAXRS
 
-To run the example within ServiceMix 4
- First, you need to install the camel-cxf, camel-jetty features into ServiceMix4
- Then install this bundle into ServiceMix, and use the following Java clients 
- to call the services:
- 
- mvn exec:java -PHttpToJMS.Client
- mvn exec:java -PCamelTransport.Client
- mvn exec:java -PWebServiceProvider.Client
- mvn exec:java -PJAXRS.Client
- 
-To stop the example hit ctrl + c
-
 This example is documented at
   http://camel.apache.org/cxf-example.html
 
@@ -41,6 +29,3 @@ have.  Enjoy!
 
 ------------------------
 The Camel Riders!
-
-
-

Modified: camel/trunk/examples/camel-example-cxf/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/pom.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/pom.xml (original)
+++ camel/trunk/examples/camel-example-cxf/pom.xml Wed Aug 22 14:48:05 2012
@@ -28,7 +28,6 @@
     </parent>
 
     <artifactId>camel-example-cxf</artifactId>
-    <packaging>bundle</packaging>
     <name>Camel :: Example :: CXF</name>
     <description>An example which demonstrates the use of the Camel CXF component</description>
 
@@ -146,6 +145,11 @@
             <artifactId>camel-test-spring</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test</artifactId>
+            <!-- Not test scope because we need to use the port finder utility in the actual example code. -->
+        </dependency>
 
     </dependencies>
 
@@ -216,33 +220,8 @@
     <build>
         <plugins>
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-artifacts</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>attach-artifact</goal>
-                        </goals>
-                        <configuration>
-                            <artifacts>
-                                <artifact>
-                                    <file>target/classes/features.xml</file>
-                                    <type>xml</type>
-                                    <classifier>features</classifier>
-                                </artifact>
-                            </artifacts>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-
-            <plugin>
                 <groupId>org.apache.cxf</groupId>
                 <artifactId>cxf-codegen-plugin</artifactId>
-                <version>${cxf-version}</version>
                 <executions>
                     <execution>
                         <id>generate-sources</id>

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/CamelTransportExample.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/CamelTransportExample.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/CamelTransportExample.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/CamelTransportExample.java Wed Aug 22 14:48:05 2012
@@ -33,7 +33,7 @@ public final class CamelTransportExample
             // start the endpoints
             server.start();
             // set the client's service access point
-            Client client = new Client("http://localhost:9091/GreeterContext/GreeterPort");
+            Client client = new Client("http://localhost:9001/GreeterContext/GreeterPort");
             // invoking the services
             client.invoke();
 

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Client.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Client.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Client.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Client.java Wed Aug 22 14:48:05 2012
@@ -51,7 +51,7 @@ public final class Client {
     
     public static void main(String args[]) throws Exception {
         // set the client's service access point
-        Client client = new Client("http://localhost:9091/GreeterContext/GreeterPort");
+        Client client = new Client("http://localhost:9001/GreeterContext/GreeterPort");
         // invoking the services
         client.invoke();
     }

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Server.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Server.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Server.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/camel/transport/Server.java Wed Aug 22 14:48:05 2012
@@ -27,6 +27,10 @@ public class Server {
     Endpoint endpointB;
 
     public void prepare() throws Exception {
+        // Set a system property used to configure the server.  The examples all run on port 9091; 
+        // however, the unit tests must run on a dynamic port.  As such, we make the port configurable
+        // in the Spring context.
+        System.setProperty("port", "9001");
         // setup the Camel context for the Camel transport
         // START SNIPPET: e1
         SpringBusFactory bf = new SpringBusFactory();

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/httptojms/CamelCxfExample.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/httptojms/CamelCxfExample.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/httptojms/CamelCxfExample.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/httptojms/CamelCxfExample.java Wed Aug 22 14:48:05 2012
@@ -18,7 +18,9 @@ package org.apache.camel.example.cxf.htt
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.test.AvailablePortFinder;
 
 /**
  * An example for demonstrating how Camel works as a Router.
@@ -26,8 +28,8 @@ import org.apache.camel.impl.DefaultCame
  * to a SOAP over JMS Service.
  */
 public final class CamelCxfExample {
-    private static final String ROUTER_ADDRESS = "http://localhost:9001/SoapContext/SoapPort";
-    private static final String SERVICE_ADDRESS = "http://localhost:9003/SoapContext/SoapPort";
+    private static final String ROUTER_ADDRESS = "http://localhost:{{routerPort}}/SoapContext/SoapPort";
+    private static final String SERVICE_ADDRESS = "http://localhost:{{servicePort}}/SoapContext/SoapPort";
     private static final String SERVICE_CLASS = "serviceClass=org.apache.hello_world_soap_http.Greeter";
     private static final String WSDL_LOCATION = "wsdlURL=wsdl/hello_world.wsdl";
     private static final String SERVICE_NAME = "serviceName={http://apache.org/hello_world_soap_http}SOAPService";
@@ -46,6 +48,10 @@ public final class CamelCxfExample {
 
         @Override
         public void configure() throws Exception {
+            // Set system properties for use with Camel property placeholders for running the example tests.
+            System.setProperty("routerPort", String.valueOf(AvailablePortFinder.getNextAvailable()));
+            System.setProperty("servicePort", String.valueOf(AvailablePortFinder.getNextAvailable()));
+            
             // Here we just pass the exception back, don't need to use errorHandler
             errorHandler(noErrorHandler());
             from(ROUTER_ENDPOINT_URI).to(SERVICE_ENDPOINT_URI);
@@ -54,10 +60,16 @@ public final class CamelCxfExample {
     }
 
     public static void main(String args[]) throws Exception {
+        
+        // Set system properties for use with Camel property placeholders for running the examples.
+        System.setProperty("routerPort", "9001");
+        System.setProperty("servicePort", "9003");
 
         // START SNIPPET: e1
         CamelContext context = new DefaultCamelContext();
         // END SNIPPET: e1
+        PropertiesComponent pc = new PropertiesComponent();
+        context.addComponent("properties", pc);
         // Set up the JMS broker and the CXF SOAP over JMS server
         // START SNIPPET: e2
         JmsBroker broker = new JmsBroker();
@@ -76,11 +88,12 @@ public final class CamelCxfExample {
                 }
             });
             // END SNIPPET: e3
+            String address = ROUTER_ADDRESS.replace("{{routerPort}}", System.getProperty("routerPort"));
             // Starting the routing context
             // Using the CXF Client to kick off the invocations
             // START SNIPPET: e4
             context.start();
-            Client client = new Client(ROUTER_ADDRESS + "?wsdl");
+            Client client = new Client(address + "?wsdl");
             // END SNIPPET: e4
             // Now everything is set up - let's start the context
 

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/CamelRouterBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/CamelRouterBuilder.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/CamelRouterBuilder.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/CamelRouterBuilder.java Wed Aug 22 14:48:05 2012
@@ -24,22 +24,28 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
+import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.example.cxf.jaxrs.resources.Book;
 import org.apache.camel.example.cxf.jaxrs.resources.BookStore;
 import org.apache.camel.example.cxf.jaxrs.resources.BookStoreImpl;
 import org.apache.camel.impl.DefaultCamelContext;
 
 public class CamelRouterBuilder extends RouteBuilder {
-    private static final String SOAP_ENDPOINT_URI = "cxf://http://localhost:9006/soap"
+    private static final String SOAP_ENDPOINT_URI = "cxf://http://localhost:{{soapEndpointPort}}/soap"
         + "?serviceClass=org.apache.camel.example.cxf.jaxrs.resources.BookStore";
-    private static final String REST_ENDPOINT_URI = "cxfrs://http://localhost:9002/rest"
+    private static final String REST_ENDPOINT_URI = "cxfrs://http://localhost:{{restEndpointPort}}/rest"
         + "?resourceClasses=org.apache.camel.example.cxf.jaxrs.resources.BookStoreImpl";
     
     /**
      * Allow this route to be run as an application
      */
     public static void main(String[] args) throws Exception {
+        System.setProperty("soapEndpointPort", "9006");
+        System.setProperty("restEndpointPort", "9002");
+                
         CamelContext context = new DefaultCamelContext();
+        PropertiesComponent pc = new PropertiesComponent();
+        context.addComponent("properties", pc);
         context.start();
         context.addRoutes(new CamelRouterBuilder());
         Thread.sleep(1000);

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXRSClient.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXRSClient.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXRSClient.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXRSClient.java Wed Aug 22 14:48:05 2012
@@ -31,7 +31,7 @@ public final class JAXRSClient {
     
     public JAXRSClient() {       
         bookStore = JAXRSClientFactory.create(
-            "http://localhost:9002/rest",
+            "http://localhost:" + System.getProperty("restEndpointPort") + "/rest",
             BookStore.class,
             Collections.singletonList(new TestResponseExceptionMapper()));        
     }

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXWSClient.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXWSClient.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXWSClient.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/jaxrs/JAXWSClient.java Wed Aug 22 14:48:05 2012
@@ -25,7 +25,7 @@ public final class JAXWSClient {
     public JAXWSClient() {
         JaxWsProxyFactoryBean cfb = new JaxWsProxyFactoryBean();
         cfb.setServiceClass(BookStore.class);
-        cfb.setAddress("http://localhost:9006/soap");
+        cfb.setAddress("http://localhost:" + System.getProperty("soapEndpointPort") + "/soap");
         bookStore = (BookStore) cfb.create();        
     }
     

Modified: camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/provider/Server.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/provider/Server.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/provider/Server.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/java/org/apache/camel/example/cxf/provider/Server.java Wed Aug 22 14:48:05 2012
@@ -23,6 +23,10 @@ public class Server {
     AbstractApplicationContext applicationContext;
 
     public void start() throws Exception {
+        // Set a system property used to configure the server.  The example runs on port 9000; 
+        // however, the unit tests must run on a dynamic port.  As such, we make the port configurable
+        // in the Spring context.
+        System.setProperty("port", "9000");
         // Setup the Camel context using Spring
         applicationContext = new ClassPathXmlApplicationContext("/META-INF/spring/CamelCXFProviderRouteConfig.xml");
     }

Modified: camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelCXFProviderRouteConfig.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelCXFProviderRouteConfig.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelCXFProviderRouteConfig.xml (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelCXFProviderRouteConfig.xml Wed Aug 22 14:48:05 2012
@@ -24,6 +24,11 @@
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
     ">
 
+    
+  <!-- Enable bridge between Camel Property Placeholder and Spring Property placeholder so we can use system properties
+       to dynamically set the port number for unit testing the example.  -->
+  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"/>
+  
   <!-- START SNIPPET: example -->
 
   <!--
@@ -37,7 +42,7 @@
 
   <cxf:cxfEndpoint id="soapMessageEndpoint"
                    serviceClass="org.apache.camel.example.cxf.provider.GreeterProvider"
-                   address="http://localhost:9000/GreeterContext/SOAPMessageService"
+                   address="http://localhost:{{port}}/GreeterContext/SOAPMessageService"
                    wsdlURL="wsdl/hello_world.wsdl"
                    endpointName="s:SoapOverHttpRouter"
                    serviceName="s:SOAPService"

Modified: camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelTransportSpringConfig.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelTransportSpringConfig.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelTransportSpringConfig.xml (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/CamelTransportSpringConfig.xml Wed Aug 22 14:48:05 2012
@@ -21,9 +21,13 @@
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
-
+       
+  <!-- Enable bridge between Camel Property Placeholder and Spring Property placeholder so we can use system properties
+       to dynamically set the port number for unit testing the example.  -->
+  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"/>
+       
   <import resource="classpath:META-INF/cxf/cxf.xml"/>
-
+  
   <bean id="roundRobinRef" class="org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer"/>
 
   <bean class="org.apache.camel.component.cxf.transport.CamelTransportFactory" lazy-init="false">
@@ -38,7 +42,7 @@
 
   <camelContext id="dest_context" xmlns="http://camel.apache.org/schema/spring">
     <route>
-      <from uri="jetty:http://localhost:9091/GreeterContext/GreeterPort"/>
+      <from uri="jetty:http://localhost:{{port}}/GreeterContext/GreeterPort"/>
       <loadBalance ref="roundRobinRef">
         <to uri="direct:EndpointA"/>
         <to uri="direct:EndpointB"/>

Modified: camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/HttpToJmsCamelContext.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/HttpToJmsCamelContext.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/HttpToJmsCamelContext.xml (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/HttpToJmsCamelContext.xml Wed Aug 22 14:48:05 2012
@@ -27,6 +27,10 @@
        http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
 
+  <!-- Enable bridge between Camel Property Placeholder and Spring Property placeholder so we can use system properties
+       to dynamically set the port number for unit testing the example.  -->
+  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"/>
+    
   <import resource="classpath:META-INF/cxf/cxf.xml"/>
 
   <broker:broker id="broker" useJmx="false" persistent="false" dataDirectory="target/activemq">

Modified: camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/JAXRSCamelContext.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/JAXRSCamelContext.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/JAXRSCamelContext.xml (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/resources/META-INF/spring/JAXRSCamelContext.xml Wed Aug 22 14:48:05 2012
@@ -23,6 +23,10 @@
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
+  <!-- Enable bridge between Camel Property Placeholder and Spring Property placeholder so we can use system properties
+       to dynamically set the port number for unit testing the example.  -->
+  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"/>
+    
   <import resource="classpath:META-INF/cxf/cxf.xml"/>
 
   <camel:camelContext id="cxfrs_context">

Modified: camel/trunk/examples/camel-example-cxf/src/main/resources/org/apache/camel/example/camel/transport/CamelDestination.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/main/resources/org/apache/camel/example/camel/transport/CamelDestination.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/main/resources/org/apache/camel/example/camel/transport/CamelDestination.xml (original)
+++ camel/trunk/examples/camel-example-cxf/src/main/resources/org/apache/camel/example/camel/transport/CamelDestination.xml Wed Aug 22 14:48:05 2012
@@ -26,12 +26,16 @@
        http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/cxfEndpoint.xsd
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
     ">
+    
+   <!-- Enable bridge between Camel Property Placeholder and Spring Property placeholder so we can use system properties
+       to dynamically set the port number for unit testing the example.  -->
+   <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer"/>
 
    <bean id = "roundRobinRef" class="org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer" />
 
    <camelContext id="dest_context" xmlns="http://camel.apache.org/schema/spring">
        <route>
-            <from uri="jetty:http://localhost:9091/GreeterContext/GreeterPort"/>
+            <from uri="jetty:http://localhost:{{port}}/GreeterContext/GreeterPort"/>
             <loadBalance ref="roundRobinRef">
               <to uri="direct:EndpointA"/>
               <to uri="direct:EndpointB"/>

Modified: camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/camel/transport/CamelTransportClientServerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/camel/transport/CamelTransportClientServerTest.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/camel/transport/CamelTransportClientServerTest.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/camel/transport/CamelTransportClientServerTest.java Wed Aug 22 14:48:05 2012
@@ -18,6 +18,7 @@ package org.apache.camel.example.camel.t
 
 import java.net.MalformedURLException;
 
+import org.apache.camel.test.AvailablePortFinder;
 import org.apache.hello_world_soap_http.Greeter;
 import org.apache.hello_world_soap_http.PingMeFault;
 import org.apache.hello_world_soap_http.types.FaultDetail;
@@ -30,10 +31,13 @@ import org.springframework.context.suppo
 
 public class CamelTransportClientServerTest extends Assert {
     static AbstractApplicationContext context;
+    static int port;
     
     @BeforeClass
     public static void startUpServer() throws Exception {
         if (!"true".equalsIgnoreCase(System.getProperty("skipStartingCamelContext"))) {
+            port = AvailablePortFinder.getNextAvailable();
+            System.setProperty("port", String.valueOf(port));
             context = new ClassPathXmlApplicationContext(new String[]{"/META-INF/spring/CamelTransportSpringConfig.xml"});
         } else {
             System.out.println("Skipping starting CamelContext as system property skipStartingCamelContext is set to be true.");
@@ -49,7 +53,7 @@ public class CamelTransportClientServerT
     
     @Test
     public void testClientInvocation() throws MalformedURLException {
-        Client client = new Client("http://localhost:9091/GreeterContext/GreeterPort");
+        Client client = new Client("http://localhost:" + port + "/GreeterContext/GreeterPort");
         Greeter port = client.getProxy();
         
         assertNotNull("The proxy should not be null", port);

Modified: camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/httptojms/CxfHttpJmsClientServerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/httptojms/CxfHttpJmsClientServerTest.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/httptojms/CxfHttpJmsClientServerTest.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/httptojms/CxfHttpJmsClientServerTest.java Wed Aug 22 14:48:05 2012
@@ -27,11 +27,13 @@ import org.springframework.context.suppo
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class CxfHttpJmsClientServerTest extends CamelSpringTestSupport {
-    private static final String ROUTER_ADDRESS = "http://localhost:9001/SoapContext/SoapPort";
+    private static final String ROUTER_ADDRESS = "http://localhost:{{routerPort}}/SoapContext/SoapPort";
 
     @Test
     public void testClientInvocation() throws MalformedURLException {
-        Client client = new Client(ROUTER_ADDRESS + "?wsdl");
+        String address = ROUTER_ADDRESS.replace("{{routerPort}}", System.getProperty("routerPort"));
+        
+        Client client = new Client(address + "?wsdl");
         Greeter proxy = client.getProxy();
 
         String resp;

Modified: camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/jaxrs/JAXRSClientServerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/jaxrs/JAXRSClientServerTest.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/jaxrs/JAXRSClientServerTest.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/cxf/jaxrs/JAXRSClientServerTest.java Wed Aug 22 14:48:05 2012
@@ -19,14 +19,22 @@ package org.apache.camel.example.cxf.jax
 import org.apache.camel.example.cxf.jaxrs.resources.Book;
 import org.apache.camel.example.cxf.jaxrs.resources.BookNotFoundFault;
 import org.apache.camel.example.cxf.jaxrs.resources.BookStore;
+import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelSpringTestSupport;
 import org.apache.cxf.BusFactory;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class JAXRSClientServerTest extends CamelSpringTestSupport {
     
+    @BeforeClass
+    public static void setupPorts() {
+        System.setProperty("soapEndpointPort", String.valueOf(AvailablePortFinder.getNextAvailable()));
+        System.setProperty("restEndpointPort", String.valueOf(AvailablePortFinder.getNextAvailable()));
+    }
+    
     @Test
     public void testJAXWSClient() throws BookNotFoundFault {
         JAXWSClient jaxwsClient = new JAXWSClient();

Modified: camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/provider/ProviderClientServerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/provider/ProviderClientServerTest.java?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/provider/ProviderClientServerTest.java (original)
+++ camel/trunk/examples/camel-example-cxf/src/test/java/org/apache/camel/example/provider/ProviderClientServerTest.java Wed Aug 22 14:48:05 2012
@@ -17,6 +17,7 @@
 package org.apache.camel.example.provider;
 
 import org.apache.camel.example.cxf.provider.Client;
+import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelSpringTestSupport;
 import org.junit.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
@@ -24,10 +25,12 @@ import org.springframework.context.suppo
 
 public class ProviderClientServerTest extends CamelSpringTestSupport {
     
+    int port;
+    
     @Test 
     public void testClientInvocation() throws Exception {
         // set the client's service access point
-        Client client = new Client("http://localhost:9000/GreeterContext/SOAPMessageService");
+        Client client = new Client("http://localhost:" + port + "/GreeterContext/SOAPMessageService");
         // invoke the services
         String response = client.invoke();
         
@@ -36,6 +39,9 @@ public class ProviderClientServerTest ex
 
     @Override
     protected AbstractXmlApplicationContext createApplicationContext() {
+        port = AvailablePortFinder.getNextAvailable();
+        System.setProperty("port", String.valueOf(port));
+        
         return new ClassPathXmlApplicationContext(new String[]{"/META-INF/spring/CamelCXFProviderRouteConfig.xml"});
     }
 

Modified: camel/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/pom.xml?rev=1376081&r1=1376080&r2=1376081&view=diff
==============================================================================
--- camel/trunk/examples/pom.xml (original)
+++ camel/trunk/examples/pom.xml Wed Aug 22 14:48:05 2012
@@ -108,6 +108,35 @@
                 </configuration>
             </plugin>
         </plugins>
+        <pluginManagement>
+          <plugins>
+            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+            <plugin>
+              <groupId>org.eclipse.m2e</groupId>
+              <artifactId>lifecycle-mapping</artifactId>
+              <version>1.0.0</version>
+              <configuration>
+                <lifecycleMappingMetadata>
+                  <pluginExecutions>
+                    <pluginExecution>
+                      <pluginExecutionFilter>
+                        <groupId>org.apache.felix</groupId>
+                        <artifactId>maven-bundle-plugin</artifactId>
+                        <versionRange>[2.3.7,)</versionRange>
+                        <goals>
+                          <goal>cleanVersions</goal>
+                        </goals>
+                      </pluginExecutionFilter>
+                      <action>
+                        <ignore></ignore>
+                      </action>
+                    </pluginExecution>
+                  </pluginExecutions>
+                </lifecycleMappingMetadata>
+              </configuration>
+            </plugin>
+          </plugins>
+        </pluginManagement>
     </build>
 
     <profiles>