[CONF] Apache Camel > Team
Team Page edited by Richard Kettelerij Comment: added myself tot the list of committers Changes (1) ... | [Martin Krasser|http://krasserm.blogspot.com] | krasserm | [InterComponentWare AG|http://www.icw-global.com] | | Nicky Sandhu | nsandhu | | | Richard Kettelerij | rickette | [Avisi BV|http://www.avisi.nl] | | [Rob Davies|http://rajdavies.blogspot.com/] | rajdavies | [FuseSource|http://fusesource.com/] | | Roman Kalukiewicz | romkal | | ... Full Content This page lists who we are. By all means add yourself to the list - lets sort it in alphabetical order Committers Name ID Organisation Aaron Mulder ammulder Chariot Solutions Bruce Snyder bsnyder SpringSource Charles Moulliard cmoulliard FuseSource Christian Mueller cmueller Atos Worldline Christian Schneider cschneider Talend Claus Ibsen davsclaus FuseSource David Jencks djencks IBM Gary Tully gtully FuseSource Gert Vanthienen gertv FuseSource Guillaume Nodet gnodet FuseSource Hadrian Zbarcea hadrian Hiram Chirino chirino FuseSource Jacek Laskowski jlaskowski Johan Edstrom joed Savoir Technologies Jonathan Anstey janstey FuseSource James Strachan jstrachan FuseSource Martin Krasser krasserm InterComponentWare AG Nicky Sandhu nsandhu Richard Kettelerij rickette Avisi BV Rob Davies rajdavies FuseSource Roman Kalukiewicz romkal Stan Lewis slewis FuseSource Willem Jiang ningjiang FuseSource William Tam wtam Progress Software Contributors Name Organisation Aaron Crickenberger Al Maw Aleksi Kallio Andrew Deason Andy Depue Axel Hohaus Arjan Moraal Barry Kaplan Brian Diesenhaus Brian Guan Brian Madigan Bryan Schmidt Chris Kingsbury TradingScreen Christopher G. Stach II Charles Anthony Dan Checkoway Dennis Byrne Thoughtworks Erik Onnen Gert Vanthienen Glen Klyuzner Tullib Hakan Guleryuz ASPone James Chamberlain James Zhang Jamie McCrindle Jason Anderson Jason Carreira Jason Sherman Jérôme Delagnes Jeff Sparkes Jeff Lansing SYS Technologies Jeremy Volkman Joe Fernandez TTM John Heitmann Jonathan Cook BBC Juraj Tomasov Kevin Ross Leo Pechersky Li Ma Lars Heinemann FuseSource Marco Buss product + concept Marco Luebcke Mark Bucayan Mark Timmings Mario Siegenthaler Mats Henricson Matt Hoffman Matthew Vincent Mathew Kuppe 360 Treasury Systems Mike Perham Neil Clayton Royal Bank of Scotland Neil Thorne Nick Reid Evolution Niklas Gustavsson Ning Li Noah Nordrum Oliver Belikan Ozgur Cetinturk Paul Smith Paul Wai Pawel Tucholski Peter Henning Przemyslaw Budzik Radek Sedmak Robin Roos Dresdner Kleinwort Wasserstein Ross Mason Sami Dalouche Sanjiv Jivan Steven Marcus Taylor Gautier Thomas Heller Trevor Pounds Xueqiang Mi Change Notification Preferences View Online | View Changes | Add Comment
[CONF] Apache Camel > The Camel Riders Welcome Two New Committers
The Camel Riders Welcome Two New Committers Blog post added by Hadrian Zbarcea The Apache Camel project is growing at the same steady pace we got used to with strong support from our community. The project would not be what it is without the community contributions. Now and then contributors stand out not only because of the high quality of the contributions, but also due to the commitment to the project and the time and energy spend on helping other users be as successful in using Camel. This is the case now with two more riders: Richard Kettelerij and Tracy Snell. In recognition of their skills and passion the Camel community is proudly announcing them becoming new committers. On behalf of the Camel PMC, welcome aboard and we expect more great things coming from you! Hadrian Change Notification Preferences View Online | Add Comment
[CONF] Apache Camel > Spring Web Services
Spring Web Services Page edited by Christian Mueller Comment: Reverted from v. 18 Changes (3) ... {code} {warning:title=running Spring Web Services Component 2.7 in OSGI} Because of issue [SWS-681|https://jira.springsource.org/browse/SWS-681] in Spring-WS, this component cannot be used in an OSGI environment out of the box. When the Spring guys fixed this issue, announced for 2.0.1.RELEASE, you have to update the dependent OSGI bundle org.springframework.ws/spring-ws-core to 2.0.1.RELEASE or newer. {warning} {info:title=Dependencies}This component offers support for Spring-WS 1.5.9 which is compatible with Spring 2.5.x and 3.0.x. In order to run camel-spring-ws on Spring 2.5.x you need to add the spring-webmvc module from Spring 2.5.x. In order to run Spring-WS 1.5.9 on Spring 3.0 you need to exclude the OXM module from Spring 3.0 as this module is also included in Spring-WS 1.5.9 (see [this post|http://stackoverflow.com/questions/3313314/can-spring-ws-1-5-be-used-with-spring-3]) {info} h3. URI format ... Full Content Spring Web Services Component Available as of Camel 2.6 The spring-ws: component allows you to integrate with Spring Web Services. It offers both client-side support, for accessing web services, and server-side support for creating your own contract-first web services. Maven users will need to add the following dependency to their pom.xml for this component: org.apache.camel camel-spring-ws x.x.x DependenciesThis component offers support for Spring-WS 1.5.9 which is compatible with Spring 2.5.x and 3.0.x. In order to run camel-spring-ws on Spring 2.5.x you need to add the spring-webmvc module from Spring 2.5.x. In order to run Spring-WS 1.5.9 on Spring 3.0 you need to exclude the OXM module from Spring 3.0 as this module is also included in Spring-WS 1.5.9 (see this post) URI format The URI scheme for this component is as follows spring-ws:[mapping-type:]address[?options] To expose a web service mapping-type needs to be set to any of the following: Mapping type Description rootqname Offers the option to map web service requests based on the qualified name of the root element contained in the message. soapaction Used to map web service requests based on the SOAP action specified in the header of the message. uri In order to map web service requests that target a specific URI. xpathresult Used to map web service requests based on the evaluation of an XPath _expression_ against the incoming message. The result of the evaluation should match the XPath result specified in the endpoint URI. beanname Allows you to reference a org.apache.camel.component.spring.ws.bean.CamelEndpointDispatcher in order to integrate with existing (legacy) endpoint mappings like PayloadRootQNameEndpointMapping, SoapActionEndpointMapping, etc As a consumer the address should contain a value relevant to the specified mapping-type (e.g. a SOAP action, XPath _expression_). As a producer the address should be set to the URI of the web service your calling upon. You can append query options to the URI in the following format, ?option=value&option=value&... Options Name Required? Description soapAction No SOAP action to include inside a SOAP request when accessing remote web services wsAddressingAction No WS-Addressing 1.0 action header to include when accessing web services. The To header is set to the address of the web service as specified in the endpoint URI (default Spring-WS behavior). _expression_ Only when mapping-type is xpathresult XPath _expression_ to use in the process of mapping web service requests, should match the result specified by xpathresult Registry based options The following options can be specified in the registry (most likely a Spring ApplicationContext) and referenced from the endpoint URI using the # notation. Name Required? Description webServiceTemplate No Option to provide a custom WebServiceTemplate. This allows for full control over client-side web services handling; like adding a custom interceptor or specifying a fault resolver, message sender or message factory. messageSender No Option to provide a custom WebServiceMessageSender. For example to perform authentication or use alternative transports messageFactory No Option to provide a custom WebServiceMessageFactory. For example when you want Apache Axiom to handle web service messages instead of SAAJ transformerFactory No Option to override default TransformerFactory. The provided transformer factory must be of type javax.xml.transform.TransformerFactory
svn commit: r1076374 - in /camel/trunk: parent/pom.xml platforms/karaf/features/src/main/resources/features.xml
Author: cmueller Date: Wed Mar 2 21:02:36 2011 New Revision: 1076374 URL: http://svn.apache.org/viewvc?rev=1076374&view=rev Log: downgrade to Spring WS 1.5.9 Modified: camel/trunk/parent/pom.xml camel/trunk/platforms/karaf/features/src/main/resources/features.xml Modified: camel/trunk/parent/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/parent/pom.xml?rev=1076374&r1=1076373&r2=1076374&view=diff == --- camel/trunk/parent/pom.xml (original) +++ camel/trunk/parent/pom.xml Wed Mar 2 21:02:36 2011 @@ -136,7 +136,7 @@ 3.0.5.RELEASE 1.2.0 3.0.5.RELEASE -2.0.0.RELEASE +1.5.9 2.5 1.0.1 3.0 Modified: camel/trunk/platforms/karaf/features/src/main/resources/features.xml URL: http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/features/src/main/resources/features.xml?rev=1076374&r1=1076373&r2=1076374&view=diff == --- camel/trunk/platforms/karaf/features/src/main/resources/features.xml (original) +++ camel/trunk/platforms/karaf/features/src/main/resources/features.xml Wed Mar 2 21:02:36 2011 @@ -609,7 +609,7 @@ mvn:org.springframework/spring-web/${spring-version} mvn:org.springframework/spring-webmvc/${spring-version} mvn:org.springframework.ws/spring-xml/${spring-ws-version} -mvn:org.springframework/spring-oxm/${spring-version} +mvn:org.springframework.ws/spring-oxm/${spring-ws-version} mvn:org.springframework.ws/spring-ws-core/${spring-ws-version} mvn:org.springframework.ws/spring-ws-support/${spring-ws-version} mvn:org.apache.camel/camel-spring-ws/${pom.version}
svn commit: r1076273 - /camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java
Author: davsclaus Date: Wed Mar 2 16:17:43 2011 New Revision: 1076273 URL: http://svn.apache.org/viewvc?rev=1076273&view=rev Log: CAMEL-3743: Added unit test. Added: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java Added: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java?rev=1076273&view=auto == --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java (added) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRouteDeliveryModePreserveQoSTest.java Wed Mar 2 16:17:43 2011 @@ -0,0 +1,100 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.jms; + +import java.util.Map; +import javax.jms.ConnectionFactory; +import javax.jms.DeliveryMode; + +import org.apache.camel.CamelContext; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.test.CamelTestSupport; + +import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge; + +/** + * Unit test for preserveMessageQos with delivery mode + */ +public class JmsRouteDeliveryModePreserveQoSTest extends CamelTestSupport { + +public void testSendDefault() throws Exception { +MockEndpoint mock = getMockEndpoint("mock:bar"); +mock.expectedBodiesReceived("Hello World"); + +template.sendBody("activemq:queue:foo?preserveMessageQos=true", "Hello World"); + +assertMockEndpointsSatisfied(); + +// should be persistent by default +Map map = mock.getReceivedExchanges().get(0).getIn().getHeaders(); +assertNotNull(map); +assertEquals(DeliveryMode.PERSISTENT, map.get("JMSDeliveryMode")); +} + +public void testSendNonPersistent() throws Exception { +MockEndpoint mock = getMockEndpoint("mock:bar"); +mock.expectedBodiesReceived("Hello World"); + + template.sendBodyAndHeader("activemq:queue:foo?preserveMessageQos=true", "Hello World", "JMSDeliveryMode", DeliveryMode.NON_PERSISTENT); + +assertMockEndpointsSatisfied(); + +// should preserve non persistent +Map map = mock.getReceivedExchanges().get(0).getIn().getHeaders(); +assertNotNull(map); +assertEquals(DeliveryMode.NON_PERSISTENT, map.get("JMSDeliveryMode")); +} + +public void testSendPersistent() throws Exception { +MockEndpoint mock = getMockEndpoint("mock:bar"); +mock.expectedBodiesReceived("Hello World"); + + template.sendBodyAndHeader("activemq:queue:foo?preserveMessageQos=true", "Hello World", "JMSDeliveryMode", DeliveryMode.PERSISTENT); + +assertMockEndpointsSatisfied(); + +// should preserve persistent +Map map = mock.getReceivedExchanges().get(0).getIn().getHeaders(); +assertNotNull(map); +assertEquals(DeliveryMode.PERSISTENT, map.get("JMSDeliveryMode")); +} + +protected CamelContext createCamelContext() throws Exception { +deleteDirectory("activemq-data"); +CamelContext camelContext = super.createCamelContext(); + +ConnectionFactory connectionFactory = CamelJmsTestHelper.createPersistentConnectionFactory(); +camelContext.addComponent("activemq", jmsComponentAutoAcknowledge(connectionFactory)); + +return camelContext; +} + +@Override +protected RouteBuilder createRouteBuilder() throws Exception { +return new RouteBuilder() { +@Override +public void configure() throws Exception { +from("activemq:queue:foo") +.to("log:foo") +.to("activemq:queue:bar?preserveMessageQos=true"); + +from("activemq:queue:bar").to("mock:bar"); +} +}; +} +}
[CONF] Apache Camel > Servlet Tomcat Example
Servlet Tomcat Example Page edited by Claus Ibsen Changes (1) ... h3. About This example demonstrates how you can use [Servlet|SERVLET] to expose a http service in a Camel route. h3. Implementation ... Full Content Servlet Tomcat Example Available as of Camel 2.7 This example is located in the examples/camel-example-servlet-tomcat directory of the Camel distribution. There is a README.txt file with instructions how to run it. If you use maven then you can easily package the example from the command line: mvn package About This example demonstrates how you can use Servlet to expose a http service in a Camel route. Implementation In the web.xml file in the src/main/webapp/WEB-INF folder the CamelServlet is defined. This is mandatory to do when using the Servlet component. web.xml "2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> My Web Application contextConfigLocation classpath:camel-config.xml org.springframework.web.context.ContextLoaderListener CamelServlet org.apache.camel.component.servlet.CamelHttpTransportServlet 1 CamelServlet /camel/* The route is a simple Content Based Router defined in the DSL XML as shown: camel-config.xml "http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xsi:schemaLocation=" 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"> "http://camel.apache.org/schema/spring"> "servlet:///hello"/> name Hello ${header.name} how are you? Add a name parameter to uri, eg ?name=foo Running the example This example runs in Apache Tomcat, so you will have to package the .war file and copy it to the webapp folder of Tomcat, which is the hot deploy folder. Note: You have to use the version number of Camel you use. In this documentation we are using 2.7.0. There is a main page at: http://localhost:8080/camel-example-servlet-tomcat-2.7.0 which has more instructions. You can then use a web browser and send a request to the http://localhost:8080/camel-example-servlet-tomcat-2.7.0/camel/hello url. See Also Examples Servlet HTTP Change Notification Preferences View Online | View Changes | Add Comment
svn commit: r1076263 - in /camel/trunk: examples/ examples/camel-example-servlet-tomcat/ examples/camel-example-servlet-tomcat/src/ examples/camel-example-servlet-tomcat/src/main/ examples/camel-examp
Author: davsclaus Date: Wed Mar 2 15:43:58 2011 New Revision: 1076263 URL: http://svn.apache.org/viewvc?rev=1076263&view=rev Log: CAMEL-3744: Added servlet example for running in Tomcat. Added: camel/trunk/examples/camel-example-servlet-tomcat/ (with props) camel/trunk/examples/camel-example-servlet-tomcat/README.txt (with props) camel/trunk/examples/camel-example-servlet-tomcat/pom.xml (with props) camel/trunk/examples/camel-example-servlet-tomcat/src/ camel/trunk/examples/camel-example-servlet-tomcat/src/main/ camel/trunk/examples/camel-example-servlet-tomcat/src/main/resources/ camel/trunk/examples/camel-example-servlet-tomcat/src/main/resources/META-INF/ camel/trunk/examples/camel-example-servlet-tomcat/src/main/resources/META-INF/LICENSE.txt (with props) camel/trunk/examples/camel-example-servlet-tomcat/src/main/resources/META-INF/NOTICE.txt (with props) camel/trunk/examples/camel-example-servlet-tomcat/src/main/resources/camel-config.xml (with props) camel/trunk/examples/camel-example-servlet-tomcat/src/main/resources/log4j.properties (with props) camel/trunk/examples/camel-example-servlet-tomcat/src/main/webapp/ camel/trunk/examples/camel-example-servlet-tomcat/src/main/webapp/WEB-INF/ camel/trunk/examples/camel-example-servlet-tomcat/src/main/webapp/WEB-INF/web.xml (with props) camel/trunk/examples/camel-example-servlet-tomcat/src/main/webapp/index.html (with props) Modified: camel/trunk/examples/pom.xml camel/trunk/parent/pom.xml Propchange: camel/trunk/examples/camel-example-servlet-tomcat/ -- --- svn:ignore (added) +++ svn:ignore Wed Mar 2 15:43:58 2011 @@ -0,0 +1,8 @@ +.project +.checkstyle +.pmd +.classpath +target +.settings +eclipse-classes +*.i?? Added: camel/trunk/examples/camel-example-servlet-tomcat/README.txt URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-servlet-tomcat/README.txt?rev=1076263&view=auto == --- camel/trunk/examples/camel-example-servlet-tomcat/README.txt (added) +++ camel/trunk/examples/camel-example-servlet-tomcat/README.txt Wed Mar 2 15:43:58 2011 @@ -0,0 +1,33 @@ +Camel Servlet and Apache Tomcat example +=== + +An example which shows how to use the Camel Servlet with Apache Tomcat. + +It can be run using Maven. + +You will need to package this example first: + mvn package + +To run the example deploy it in Apache Tomcat by copying the .war to the +deploy folder of Apache Tomcat. + +And then hit this url from a webbrowser which has further instructions + http://localhost:8080/camel-example-tomcat-2.7 + +The servlet is located at (use correct version number) + http://localhost:8080/camel-example-tomcat-2.7/camel + +For the latest & greatest documentation on how to use this example please see + http://camel.apache.org/servlet-tomcat-example.html + +If you hit any problems please let us know on the Camel Forums + http://camel.apache.org/discussion-forums.html + +Please help us make Apache Camel better - we appreciate any feedback you may +have. Enjoy! + + +The Camel riders! + + + Propchange: camel/trunk/examples/camel-example-servlet-tomcat/README.txt -- svn:eol-style = native Propchange: camel/trunk/examples/camel-example-servlet-tomcat/README.txt -- svn:mime-type = text/plain Added: camel/trunk/examples/camel-example-servlet-tomcat/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-servlet-tomcat/pom.xml?rev=1076263&view=auto == --- camel/trunk/examples/camel-example-servlet-tomcat/pom.xml (added) +++ camel/trunk/examples/camel-example-servlet-tomcat/pom.xml Wed Mar 2 15:43:58 2011 @@ -0,0 +1,68 @@ + + +http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd";> + +4.0.0 + + +org.apache.camel +examples +2.7-SNAPSHOT + + +camel-example-servlet-tomcat +Camel :: Example :: Servlet Tomcat +An example using Camel Servlet with Apache Tomcat +war + + + + + +org.apache.camel +camel-core + + +org.apache.camel +camel-spring + + +org.apache.camel +camel-servlet + + + + +org.springframework +spring-web + + + + +log4j +log4j + + +org.slf4j +
svn commit: r1076262 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java test/java/org/apache/camel/language/SimpleTest.java test/java/org/apache/ca
Author: davsclaus Date: Wed Mar 2 15:42:02 2011 New Revision: 1076262 URL: http://svn.apache.org/viewvc?rev=1076262&view=rev Log: CAMEL-3745: Improved error message in simple language for null instanceof checks Added: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRSimplePredicateEmptyBodyTest.java - copied, changed from r1076122, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRHeaderPredicateTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java?rev=1076262&r1=1076261&r2=1076262&view=diff == --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java Wed Mar 2 15:42:02 2011 @@ -244,6 +244,10 @@ public abstract class SimpleLanguageSupp } } else if (operator == IS || operator == NOT_IS) { String name = right.evaluate(exchange, String.class); +if (name == null) { +throw new IllegalArgumentException("Syntax error in " + operatorText + " operator: " + expression ++ " cannot be null. It must be a class type."); +} Class rightType = exchange.getContext().getClassResolver().resolveClass(name); if (rightType == null) { throw new IllegalArgumentException("Syntax error in " + operatorText + " operator: " + expression Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java?rev=1076262&r1=1076261&r2=1076262&view=diff == --- camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/SimpleTest.java Wed Mar 2 15:42:02 2011 @@ -260,6 +260,32 @@ public class SimpleTest extends Language } } +public void testHeaderEmptyBody() throws Exception { +// set an empty body +exchange.getIn().setBody(null); + +assertExpression("header.foo", "abc"); +assertExpression("headers.foo", "abc"); +assertExpression("in.header.foo", "abc"); +assertExpression("in.headers.foo", "abc"); +assertExpression("${header.foo}", "abc"); +assertExpression("${headers.foo}", "abc"); +assertExpression("${in.header.foo}", "abc"); +assertExpression("${in.headers.foo}", "abc"); +} + +public void testIsInstanceOfEmptyBody() throws Exception { +// set an empty body +exchange.getIn().setBody(null); + +try { +assertExpression("${body} is null", false); +fail("Should have thrown an exception"); +} catch (IllegalArgumentException e) { +assertEquals("Syntax error in is operator: ${body} is null cannot be null. It must be a class type.", e.getMessage()); +} +} + public void testHeaderAs() throws Exception { assertExpression("${headerAs(foo,String)}", "abc"); Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRSimplePredicateEmptyBodyTest.java (from r1076122, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRHeaderPredicateTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRSimplePredicateEmptyBodyTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRSimplePredicateEmptyBodyTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRHeaderPredicateTest.java&r1=1076122&r2=1076262&rev=1076262&view=diff == --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRHeaderPredicateTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/CBRSimplePredicateEmptyBodyTest.java Wed Mar 2 15:42:02 2011 @@ -17,33 +17,21 @@ package org.apache.camel.processor; import org.apache.camel.ContextTestSupport; -import org.apache.camel.Exchange; -import org.apache.camel.Message; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel
svn commit: r1076247 - in /camel/trunk/components/camel-gae: ./ src/main/java/org/apache/camel/component/gae/task/ src/test/java/org/apache/camel/component/gae/task/ src/test/resources/org/apache/came
Author: davsclaus Date: Wed Mar 2 15:17:02 2011 New Revision: 1076247 URL: http://svn.apache.org/viewvc?rev=1076247&view=rev Log: CAMEL-3549: Fixed tests in camel-gae due changes in camel-servlet. Modified: camel/trunk/components/camel-gae/pom.xml camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java camel/trunk/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskCombinedRouteBuilderTest.java camel/trunk/components/camel-gae/src/test/resources/org/apache/camel/component/gae/http/web-combined.xml camel/trunk/components/camel-gae/src/test/resources/org/apache/camel/component/gae/http/web-inbound.xml camel/trunk/components/camel-gae/src/test/resources/org/apache/camel/component/gae/task/web-combined.xml Modified: camel/trunk/components/camel-gae/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-gae/pom.xml?rev=1076247&r1=1076246&r2=1076247&view=diff == --- camel/trunk/components/camel-gae/pom.xml (original) +++ camel/trunk/components/camel-gae/pom.xml Wed Mar 2 15:17:02 2011 @@ -97,6 +97,11 @@ test + org.springframework + spring-web + test + + httpunit httpunit test Modified: camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java?rev=1076247&r1=1076246&r2=1076247&view=diff == --- camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java (original) +++ camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java Wed Mar 2 15:17:02 2011 @@ -26,6 +26,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.component.gae.bind.InboundBinding; import org.apache.camel.component.gae.bind.OutboundBinding; import org.apache.camel.component.http.HttpClientConfigurer; +import org.apache.camel.component.http.HttpConsumer; import org.apache.camel.component.servlet.ServletComponent; import org.apache.camel.component.servlet.ServletEndpoint; import org.apache.commons.httpclient.HttpConnectionManager; @@ -55,6 +56,7 @@ public class GTaskComponent extends Serv info.getCanonicalUri(), info.getCanonicalUriPath(), parameters); +endpoint.setServletName(getServletName()); endpoint.setWorkerRoot(workerRoot); endpoint.setOutboundBinding(outboundBinding); endpoint.setInboundBinding(inboundBinding); @@ -71,4 +73,8 @@ public class GTaskComponent extends Serv httpConnectionManager, clientConfigurer); } +@Override +public void connect(HttpConsumer consumer) throws Exception { +super.connect(consumer); +} } Modified: camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java?rev=1076247&r1=1076246&r2=1076247&view=diff == --- camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java (original) +++ camel/trunk/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java Wed Mar 2 15:17:02 2011 @@ -19,13 +19,11 @@ package org.apache.camel.component.gae.t import java.lang.reflect.Proxy; import java.net.URI; import java.net.URISyntaxException; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.taskqueue.Queue; import com.google.appengine.api.taskqueue.TaskOptions; - import org.apache.camel.Exchange; import org.apache.camel.Producer; import org.apache.camel.component.gae.bind.HttpBindingInvocationHandler; Modified: camel/trunk/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskCombinedRouteBuilderTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskCombinedRouteBuilderTest.java?rev=1076247&r1=1076246&r2=1076247&view=diff == --- camel/trunk/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskCombinedRouteBuilderTest.java (original) +++ camel/trunk/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskCombinedRouteBuilderTest.java Wed Mar 2 15:17:02 2011 @@
[CONF] Apache Camel > Camel 2.7.0 Release
Camel 2.7.0 Release Page edited by Claus Ibsen Changes (3) ... * Fixed an issue with [Recipient List] in parallel mode, not reusing background aggregator thread * Fixed an issue with dependency ordering when using Spring's {{depends-on}} attribute between multiple {{}}. * [Servlet] component doesn't hijack Spring to start the web application anymore. Spring and CamelServlet is now independent. See more at important changes to consider when upgrading. h3. New [Enterprise Integration Patterns] ... * {{camel-example-osgi-rmi}} * {{[camel-example-servlet-tomcat|Servlet Tomcat Example]}} h3. New [Tutorials] ... * camel-cxf endpoint will copy the attachments between the camel message and cxf message when it works in POJO data format, please access the attachment objects from the camel message body. * [camel-restlet|Restlet] has been upgraded from Restlet 1.1.x to 2.0.5 * [Servlet] does not startup Spring XML file anymore. You should startup the XML file using 100% Spring style using the ContextLoaderListener in the web.xml. See the the [Servlet Tomcat Example] example for details. h2. Getting the Distributions ... Full Content Camel 2.7.0 release (currently in progress) New and Noteworthy Welcome to the 2.7.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...) Dependency changesThe Camel 2.7.0 release has a number of major dependency changes: JDK 1.6+ is now required Spring 3.x+ is now required if using Spring slf4j is used as logger instead of commons logging In other words support for JDK 1.5 and Spring 2.x has been dropped. Switched to use slf4j as the logger instead of commons logging. Camel now checks state of Service during starting/stopping the Lifecycle of the Service. This avoids double starting/stopping in case the service was already in the desired state. Added support for MDC logging with Camel JMS consumer now eager checks if Camel is shutting down and signals that to its DefaultMessageListenerContainer which avoids trying to re-connect/failover during shutdown. Introduced option to automatic Mock endpoints during testing. This makes testing without having to add Mock endpoints in your routes a breeze. See more details at Mock component documentation. Added assertPeriod option to Mock endpoint, which is a period im milliseconds, that the Mock will pause and then re-assert itself to ensure the assertion is still valid. This can be used as a threshold when testing with expectations that exactly a given number of messages should arrive on the Mock endpoint. Added arrives DSL to Mock endpoint to allow you to setup expectations about timespan between messages arriving on the Mock endpoint. See more details at Mock component documentation. HTTP4 is upgraded to use Apache HttpClient 4.1 Fixed an issue with File consumer having absolute starting directory and using absolute paths in the move option as well Fixed concurrent append to the same file in the File producer Fixed issue with restarting Quartz causing a failure due trigger name already exists issue for stateful jobs. Its now possible to use multiple QuartzScheduler's when deploying multiple Camel applications in the same JVM classloader. Quartz update checker is now always disabled, see more details here Fixed potential issue installing camel-ftp feature in Apache ServiceMix New JdbcMessageIdRepository for the idempotent consumer EIP in SQL Relaxed how aggressive Camel was registering services as MBeans in JMX. Now Camel will by default only registeres MBeans when starting CamelContext or starting new routes. This avoids registering too many MBeans if using dynamic EIP patterns such as Recipient List using different endpoint urls, causing new endpoints and its associated services to be registered in JMX. This would keep growing over time and consume memory as well. You can use the registerAlways or registerNewRoutes options on ManagementAgent to control this behavior. See Camel JMX for more details. Redelivery policy and OnException now supports property placeholders in both Java and XML DSLs. Introduced to easily define common profiles for redelivery policies, which you can refer to from or using the redeliveryPolicyRef attribute. Also Spring Frameworks property placeholders works with . Improved the XML based Error Handlers to validate configuration on startup, to fail if they have been misconfigured. Spring Integration is upgraded to Spring Integration 2.0. Spring Web Services is upgraded to Spring Web Services 2.0. Added endChoice() to the Java DSL to be able to use any EIPs inside the Conte
[CONF] Apache Camel > Examples
Examples Page edited by Claus Ibsen Changes (1) ... * [Simple Jira Bot] shows how to use the camel-rss feed to send updates to an irc channel using camel-irc. * [Spring Web Services Example|Spring WS Example] shows how to expose a SOAP-based web service using Camel and Spring Web Services. * [Servlet Tomcat Example] shows how to use Camel to route messages using servlets running in Apache Tomcat. ... Full Content Examples Once you have read about Getting Started and looked at the Enterprise Integration Patterns you might want to try out some examples. Before starting to work on example you may want to check the requirements for working with Camel. Then Running Examples describes how to get the examples to run Examples POJO Messaging Example shows how to use annotations to produce, consume or route messages to Camel endpoints without using any DSL. Walk through an Example will walk through the code of the first example so you can understand how things fit together using a simple Java main(String[] args) method and using the DSL to set up some routes. Walk through another example we continue the walk and look at the Spring DSL (XML based) routing. Spring Example shows how to work with the Spring example using a Spring ApplicationContext to configure Camel with Java routing rules Spring Java Config Example shows how to use the Spring java config to configure the Camel with Java routing rules Spring XQuery Example shows how to work with the Spring example using a Spring ApplicationContext to configure Camel Guice JMS Example shows how to use Guice as the Dependency Injection framework to create some JMS base routes using just Java code and a properties file ETL Example shows how to use Camel as an Extract Transform Load (ETL) tool BAM Example shows how to use Camel as a BAM (Business Activity Monitoring) framework, to monitor your business transactions. CXF Example shows how to use Camel as the CXF services router, which consumes the request of a CXF client then passes the request to a CXF-based web service. CXF Proxy Example shows how to use Camel to proxy a web service using CXF. CXF Tomcat Example shows how to use Camel to expose a code-first web service using CXF as a web application to be deployed in Apache Tomcat. Loan Broker Example shows how to use Camel to implement the classical EIP composed messaging sample . Tracer Example shows how to use Tracer in Camel to trace how Exchange is routed. Management Example shows how to use JMX in Camel to manage a running Camel application. Route Throttling Example shows how to use RoutePolicy and JMX in Camel to dynamically throttle routes. Cafe Example shows how to use Camel to implement a Cafe shop use case. Aggregate Example shows the overhauled Aggregator EIP with persistent storage, which are part of Camel 2.3. Spring Security Example shows how to implement a basic http authentication and role based authorization within a camel route by leverage the camel-spring-security component. LoadBalancing Mina Example shows how to use the Load Balancer EIP to balance communication with remote servers using MINA. JMX Component Example shows how to use the camel-jmx component. Simple Jira Bot shows how to use the camel-rss feed to send updates to an irc channel using camel-irc. Spring Web Services Example shows how to expose a SOAP-based web service using Camel and Spring Web Services. Servlet Tomcat Example shows how to use Camel to route messages using servlets running in Apache Tomcat. See Also Enterprise Integration Patterns Spring Change Notification Preferences View Online | View Changes | Add Comment
[CONF] Apache Camel > Servlet Tomcat Example
Servlet Tomcat Example Page added by Claus Ibsen Servlet Tomcat Example Available as of Camel 2.7 This example is located in the examples/camel-example-servlet-tomcat directory of the Camel distribution. There is a README.txt file with instructions how to run it. If you use maven then you can easily package the example from the command line: mvn package About This example demonstrates how you can use SERVLET to expose a http service in Camel. Implementation In the web.xml file in the src/main/webapp/WEB-INF folder the CamelServlet is defined. This is mandatory to do when using the SERVLET component. TODO: e1 The route is a simple Content Based Router defined in the DSL XML as shown: TODO: e1 Running the example This example runs in Apache Tomcat, so you will have to package the .war file and copy it to the webapp folder of Tomcat, which is the hot deploy folder. Note: You have to use the version number of Camel you use. In this documentation we are using 2.7.0. There is a main page at: http://localhost:8080/camel-example-servlet-tomcat-2.7.0 which has more instructions. You can then use a web browser and send a request to the http://localhost:8080/camel-example-servlet-tomcat-2.7.0/camel/hello url. See Also Examples SERVLET HTTP Change Notification Preferences View Online | Add Comment
svn commit: r1076174 - in /camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet: ServletComponent.java ServletEndpoint.java
Author: davsclaus Date: Wed Mar 2 11:31:57 2011 New Revision: 1076174 URL: http://svn.apache.org/viewvc?rev=1076174&view=rev Log: CAMEL-3549: camel-servlet is not agnostic to how CamelContext is started in web apps. For example you can startup using 100% spring style using a listener. Modified: camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java Modified: camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java?rev=1076174&r1=1076173&r2=1076174&view=diff == --- camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java (original) +++ camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java Wed Mar 2 11:31:57 2011 @@ -84,7 +84,8 @@ public class ServletComponent extends Ht URI httpUri = URISupport.createRemainingURI(new URI(UnsafeUriCharactersEncoder.encode(uri)), CastUtils.cast(parameters)); uri = httpUri.toString(); -ServletEndpoint endpoint = createServletEndpoint(servletName, uri, this, httpUri, params, getHttpConnectionManager(), configurer); +ServletEndpoint endpoint = createServletEndpoint(uri, this, httpUri, params, getHttpConnectionManager(), configurer); +endpoint.setServletName(servletName); setEndpointHeaderFilterStrategy(endpoint); // prefer to use endpoint configured over component configured @@ -117,11 +118,11 @@ public class ServletComponent extends Ht /** * Strategy to create the servlet endpoint. */ -protected ServletEndpoint createServletEndpoint(String servletName, String endpointUri, +protected ServletEndpoint createServletEndpoint(String endpointUri, ServletComponent component, URI httpUri, HttpClientParams params, HttpConnectionManager httpConnectionManager, HttpClientConfigurer clientConfigurer) throws Exception { -return new ServletEndpoint(servletName, endpointUri, component, httpUri, params, httpConnectionManager, clientConfigurer); +return new ServletEndpoint(endpointUri, component, httpUri, params, httpConnectionManager, clientConfigurer); } public void connect(HttpConsumer consumer) throws Exception { Modified: camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java?rev=1076174&r1=1076173&r2=1076174&view=diff == --- camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java (original) +++ camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java Wed Mar 2 11:31:57 2011 @@ -36,10 +36,9 @@ public class ServletEndpoint extends Htt super(); } -public ServletEndpoint(String servletName, String endPointURI, ServletComponent component, URI httpUri, HttpClientParams params, +public ServletEndpoint(String endPointURI, ServletComponent component, URI httpUri, HttpClientParams params, HttpConnectionManager httpConnectionManager, HttpClientConfigurer clientConfigurer) throws URISyntaxException { super(endPointURI, component, httpUri, params, httpConnectionManager, clientConfigurer); -this.servletName = servletName; } public void setServletName(String name) {
svn commit: r1076163 - in /camel/trunk/components: camel-http/src/main/java/org/apache/camel/component/http/ camel-servlet/ camel-servlet/src/main/java/org/apache/camel/component/servlet/ camel-servle
Author: davsclaus Date: Wed Mar 2 10:17:28 2011 New Revision: 1076163 URL: http://svn.apache.org/viewvc?rev=1076163&view=rev Log: CAMEL-3549: camel-servlet is not agnostic to how CamelContext is started in web apps. For example you can startup using 100% spring style using a listener. Added: camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/DefaultCamelServletService.java Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java camel/trunk/components/camel-servlet/pom.xml camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelServletService.java camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/osgi/OsgiServletRegisterer.java camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteSpringTest.java camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/MultiServletConsumerTest.java camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletCamelRouterTestSupport.java camel/trunk/components/camel-servlet/src/test/resources/log4j.properties camel/trunk/components/camel-servlet/src/test/resources/org/apache/camel/component/servlet/multiServletWeb.xml camel/trunk/components/camel-servlet/src/test/resources/org/apache/camel/component/servlet/web-spring.xml camel/trunk/components/camel-servlet/src/test/resources/org/apache/camel/component/servlet/web.xml Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java?rev=1076163&r1=1076162&r2=1076163&view=diff == --- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java (original) +++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java Wed Mar 2 10:17:28 2011 @@ -18,7 +18,6 @@ package org.apache.camel.component.http; import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; - import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -50,12 +49,14 @@ public class CamelServlet extends HttpSe // Is there a consumer registered for the request. HttpConsumer consumer = resolve(request); if (consumer == null) { +log.debug("No consumer to service request {}", request); response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } // are we suspended? if (consumer.isSuspended()) { +log.debug("Consumer suspended, cannot service request {}", request); response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE); return; } @@ -117,10 +118,12 @@ public class CamelServlet extends HttpSe } public void connect(HttpConsumer consumer) { +log.debug("Connecting consumer: {}", consumer); consumers.put(consumer.getPath(), consumer); } public void disconnect(HttpConsumer consumer) { +log.debug("Disconnecting consumer: {}", consumer); consumers.remove(consumer.getPath()); } Modified: camel/trunk/components/camel-servlet/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-servlet/pom.xml?rev=1076163&r1=1076162&r2=1076163&view=diff == --- camel/trunk/components/camel-servlet/pom.xml (original) +++ camel/trunk/components/camel-servlet/pom.xml Wed Mar 2 10:17:28 2011 @@ -42,6 +42,7 @@ org.apache.camel camel-core + org.apache.camel camel-spring @@ -88,6 +89,11 @@ httpunit test + + org.springframework + spring-web + test + Modified: camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/CamelHttpTransportServlet.java?rev=1076163&r1=1076162&r2=1076163&view=diff ===