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>