[CONF] Apache Camel Using getIn or getOut methods on Exchange

2010-09-24 Thread confluence







Using getIn or getOut methods on Exchange
Page  added by Claus Ibsen

 

 Using getIn or getOut methods on Exchange

The Camel API is influenced by the JBI specification which defines a concept called Message Exchange Patterns (MEP for short). The MEP defines the messaging style used such as one-way (InOnly) or request-reply (InOut).

The Exchange API provides two methods to get a message, either getIn or getOut.
Important for Camel end usersAs a Camel end user you should always prefer to use the getIn method, and frankly just forget about the getOut method.

The getOut method is only needed in special use cases and by certain Camel component such as the JBI or NMR components.

If you use the getOut method, then data from the in message would be lost. For example several Camel end users who got started with Camel, couldn't understand why their message headers was lost during route in Camel. The problem was they used getOut method in a Camel Processor. They should as said use the getIn method.


   
Change Notification Preferences
   
   View Online
  |
   Add Comment
   








[CONF] Apache Camel Why do my message lose its headers during routing?

2010-09-24 Thread confluence







Why do my message lose its headers during routing?
Page  added by Claus Ibsen

 

 Why do my message lose its headers during routing?

See this FAQ entry


   
Change Notification Preferences
   
   View Online
  |
   Add Comment
   








svn commit: r1000757 - /camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/JAXBContextResolver.java

2010-09-24 Thread jstrachan
Author: jstrachan
Date: Fri Sep 24 08:38:42 2010
New Revision: 1000757

URL: http://svn.apache.org/viewvc?rev=1000757view=rev
Log:
Added a helper constructor in case folks want to reuse the jaxb resolver with a 
different set of packages

Modified:

camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/JAXBContextResolver.java

Modified: 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/JAXBContextResolver.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/JAXBContextResolver.java?rev=1000757r1=1000756r2=1000757view=diff
==
--- 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/JAXBContextResolver.java
 (original)
+++ 
camel/trunk/components/camel-web/src/main/java/org/apache/camel/web/util/JAXBContextResolver.java
 Fri Sep 24 08:38:42 2010
@@ -19,6 +19,7 @@ package org.apache.camel.web.util;
 import javax.ws.rs.ext.ContextResolver;
 import javax.ws.rs.ext.Provider;
 import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
 
 /**
  * A resolver of the JAXB context primed for the Camel XML languages
@@ -27,12 +28,16 @@ import javax.xml.bind.JAXBContext;
  * @version $Revision$
  */
 @Provider
-public final class JAXBContextResolver implements ContextResolverJAXBContext 
{
+public  class JAXBContextResolver implements ContextResolverJAXBContext {
 private final JAXBContext context;
 private String packages;
 
 public JAXBContextResolver() throws Exception {
-this.packages = org.apache.camel.web.resources.Constants.JAXB_PACKAGES;
+this(org.apache.camel.web.resources.Constants.JAXB_PACKAGES);
+}
+
+public JAXBContextResolver(String packages) throws JAXBException {
+this.packages = packages;
 this.context = JAXBContext.newInstance(packages);
 }
 




svn commit: r1000776 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/model/dataformat/ components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/ components/camel-xstream

2010-09-24 Thread davsclaus
Author: davsclaus
Date: Fri Sep 24 09:37:08 2010
New Revision: 1000776

URL: http://svn.apache.org/viewvc?rev=1000776view=rev
Log:
CAMEL-3153: Added omitFeilds to xstream data format. Thanks to Henryk for part 
of the work.

Added:

camel/trunk/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.java

camel/trunk/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatOmitFieldsTest.java
   (with props)

camel/trunk/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalOmitFieldsTest.xml
  - copied, changed from r1000757, 
camel/trunk/components/camel-xstream/src/test/resources/org/apache/camel/dataformat/xstream/SpringMarshalListTest.xml
Modified:

camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java

camel/trunk/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java?rev=1000776r1=1000775r2=1000776view=diff
==
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java
 Fri Sep 24 09:37:08 2010
@@ -57,6 +57,10 @@ public class XStreamDataFormat extends D
 @XmlElement(name = aliases)
 private MapString, String aliases;
 
+@XmlJavaTypeAdapter(OmitFieldsAdapter.class)
+@XmlElement(name = omitFields)
+private MapString, String[] omitFields;
+
 @XmlJavaTypeAdapter(ImplicitCollectionsAdapter.class)
 @XmlElement(name = implicitCollections)
 private MapString, String[] implicitCollections;
@@ -103,6 +107,14 @@ public class XStreamDataFormat extends D
 this.aliases = aliases;
 }
 
+public MapString, String[] getOmitFields() {
+return omitFields;
+}
+
+public void setOmitFields(MapString, String[] omitFields) {
+this.omitFields = omitFields;
+}
+
 public MapString, String[] getImplicitCollections() {
 return implicitCollections;
 }
@@ -124,15 +136,15 @@ public class XStreamDataFormat extends D
 if (encoding != null) {
 setProperty(dataFormat, encoding, encoding);
 }
-
 if (this.converters != null) {
 setProperty(dataFormat, converters, this.converters);
 }
-
 if (this.aliases != null) {
 setProperty(dataFormat, aliases, this.aliases);
 }
-
+if (this.omitFields != null) {
+setProperty(dataFormat, omitFields, this.omitFields);
+}
 if (this.implicitCollections != null) {
 setProperty(dataFormat, implicitCollections, 
this.implicitCollections);
 }
@@ -202,8 +214,7 @@ public class XStreamDataFormat extends D
 public ImplicitCollectionList marshal(MapString, String[] v) throws 
Exception {
 ListImplicitCollectionEntry list = new 
ArrayListImplicitCollectionEntry();
 for (String clsName : v.keySet()) {
-ImplicitCollectionEntry entry = new ImplicitCollectionEntry(
-clsName, v.get(clsName));
+ImplicitCollectionEntry entry = new 
ImplicitCollectionEntry(clsName, v.get(clsName));
 list.add(entry);
 }
 
@@ -271,7 +282,7 @@ public class XStreamDataFormat extends D
 
 @Override
 public String toString() {
-return Alias [ImplicitCollection= + clsName + , fields= + 
Arrays.asList(this.fields) + ];
+return Alias[ImplicitCollection= + clsName + , fields= + 
Arrays.asList(this.fields) + ];
 }
 }
 
@@ -290,7 +301,7 @@ public class XStreamDataFormat extends D
 }
 AliasList jaxbMap = new AliasList();
 jaxbMap.setList(ret);
-return jaxbMap; // ret.toArray( new JaxbMapEntry[ret.size()] );
+return jaxbMap;
 }
 
 @Override
@@ -353,7 +364,88 @@ public class XStreamDataFormat extends D
 
 @Override
 public String toString() {
-return Alias [name= + name + , class= + clsName + ];
+return Alias[name= + name + , class= + clsName + ];
+}
+}
+
+@XmlTransient
+public static class OmitFieldsAdapter
+extends XmlAdapterOmitFieldList, MapString, String[] {
+
+@Override
+public OmitFieldList marshal(MapString, String[] v) throws Exception 
{
+ListOmitFieldEntry list = new ArrayListOmitFieldEntry();
+for (String clsName : v.keySet()) {
+OmitFieldEntry entry = new 

svn commit: r1000916 - /camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/XPathNestedNamespaceTest.java

2010-09-24 Thread davsclaus
Author: davsclaus
Date: Fri Sep 24 15:38:14 2010
New Revision: 1000916

URL: http://svn.apache.org/viewvc?rev=1000916view=rev
Log:
Added unit test based on user forum

Added:

camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/XPathNestedNamespaceTest.java

Added: 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/XPathNestedNamespaceTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/XPathNestedNamespaceTest.java?rev=1000916view=auto
==
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/XPathNestedNamespaceTest.java
 (added)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/XPathNestedNamespaceTest.java
 Fri Sep 24 15:38:14 2010
@@ -0,0 +1,58 @@
+/**
+ * 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.builder.xml;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * @version $Revision$
+ */
+public class XPathNestedNamespaceTest extends ContextTestSupport {
+
+public void testXPathNamespace() throws Exception {
+String xml = STPTradeML 
xmlns=\http://www.barcap.com/gcd/stpengine/1-0\;FpMLtrade//FpML/STPTradeML;
+
+getMockEndpoint(mock:FOO).expectedMessageCount(0);
+getMockEndpoint(mock:BAR).expectedMessageCount(1);
+getMockEndpoint(mock:OTHER).expectedMessageCount(0);
+
+template.sendBody(direct:start, xml);
+
+assertMockEndpointsSatisfied();
+}
+
+@Override
+protected RouteBuilder createRouteBuilder() throws Exception {
+return new RouteBuilder() {
+@Override
+public void configure() throws Exception {
+Namespaces ns = new Namespaces(stp, 
http://www.barcap.com/gcd/stpengine/1-0;);
+
+from(direct:start)
+.choice()
+.when().xpath(//stp:termination, ns)
+.to(mock:FOO)
+.when().xpath(/stp:STPTradeML/stp:FpML/stp:trade, ns)
+.to(mock:BAR)
+.otherwise()
+.to(mock:OTHER);
+}
+};
+}
+
+}




svn commit: r1001004 - /camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java

2010-09-24 Thread akarpe
Author: akarpe
Date: Fri Sep 24 18:15:52 2010
New Revision: 1001004

URL: http://svn.apache.org/viewvc?rev=1001004view=rev
Log:
Added an API to RoutePolicySupport for stopRoute to control timeout for 
graceful shutdown

Modified:

camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java?rev=1001004r1=1001003r2=1001004view=diff
==
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
 Fri Sep 24 18:15:52 2010
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.impl;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.camel.Consumer;
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
@@ -71,6 +73,10 @@ public abstract class RoutePolicySupport
 route.getRouteContext().getCamelContext().stopRoute(route.getId());
 }
 
+protected void stopRoute(Route route, long timeout, TimeUnit timeUnit) 
throws Exception {
+route.getRouteContext().getCamelContext().stopRoute(route.getId(), 
timeout, timeUnit);
+}
+
 /**
  * Handles the given exception using the {...@link #getExceptionHandler()}
  *




svn commit: r1001028 - in /camel/trunk/components/camel-quartz/src: main/java/org/apache/camel/routepolicy/ main/java/org/apache/camel/routepolicy/quartz/ test/java/org/apache/camel/routepolicy/ test/

2010-09-24 Thread akarpe
Author: akarpe
Date: Fri Sep 24 18:55:30 2010
New Revision: 1001028

URL: http://svn.apache.org/viewvc?rev=1001028view=rev
Log:
CAMEL-2936 Provided a ScheduledRoutePolicy to make it easy to define when 
routes should be active, stopped or suspended

Added:

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java
   (with props)

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java
   (with props)

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRouteDetails.java
   (with props)

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
   (with props)

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicyConstants.java
   (with props)

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicy.java
   (with props)

camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/

camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/

camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
   (with props)

camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
   (with props)

Added: 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java?rev=1001028view=auto
==
--- 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java
 (added)
+++ 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java
 Fri Sep 24 18:55:30 2010
@@ -0,0 +1,149 @@
+/**
+ * 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.routepolicy.quartz;
+
+import java.util.Properties;
+
+import org.apache.camel.Route;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.CronTrigger;
+import org.quartz.Trigger;
+
+public class CronScheduledRoutePolicy extends ScheduledRoutePolicy implements 
ScheduledRoutePolicyConstants {
+private static final transient Log LOG = 
LogFactory.getLog(CronScheduledRoutePolicy.class);
+private String routeStartTime;
+private String routeStopTime;
+private String routeSuspendTime;
+private String routeResumeTime;
+
+public CronScheduledRoutePolicy() {
+super();
+}
+
+public CronScheduledRoutePolicy(String propertiesFile) {
+super(propertiesFile);
+}
+
+public CronScheduledRoutePolicy(Properties properties) {
+super(properties);
+}
+
+public void onInit(Route route) {   
+try {   
+if ((getRouteStartTime() == null)  (getRouteStopTime() == null) 
 (getRouteSuspendTime() == null)  (getRouteResumeTime() == null)) {
+if (LOG.isWarnEnabled()) {
+LOG.warn(Scheduled Route Policy for route  + 
route.getId() +  is not set since the no start, stop and/or suspend times are 
specified);
+}
+return;
+}
+
+if (scheduledRouteDetails == null) {
+scheduledRouteDetails = new ScheduledRouteDetails();
+scheduledRouteDetails.setRoute(route);
+
+if (getRouteStartTime() != null) {
+scheduleRoute(Action.START); 
+}
+
+if (getRouteStopTime() != null) {
+scheduleRoute(Action.STOP);
+  

svn commit: r1001031 - in /camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy: ./ quartz/ quartz/myquartz.properties

2010-09-24 Thread akarpe
Author: akarpe
Date: Fri Sep 24 19:13:52 2010
New Revision: 1001031

URL: http://svn.apache.org/viewvc?rev=1001031view=rev
Log:
CAMEL-2936 Provided a ScheduledRoutePolicy to make it easy to define when 
routes should be active, stopped or suspended

Added:

camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/

camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/

camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/myquartz.properties
   (with props)

Added: 
camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/myquartz.properties
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/myquartz.properties?rev=1001031view=auto
==
--- 
camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/myquartz.properties
 (added)
+++ 
camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/myquartz.properties
 Fri Sep 24 19:13:52 2010
@@ -0,0 +1,26 @@
+## 
+## 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.
+## 
+
+org.quartz.scheduler.instanceName = MyScheduler
+org.quartz.scheduler.instanceId = 2
+org.quartz.scheduler.rmi.export = false
+org.quartz.scheduler.rmi.proxy = false
+
+org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
+org.quartz.threadPool.threadCount = 3
+
+org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
\ No newline at end of file

Propchange: 
camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/myquartz.properties
--
svn:eol-style = native




svn commit: r1001043 - /camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java

2010-09-24 Thread akarpe
Author: akarpe
Date: Fri Sep 24 19:36:35 2010
New Revision: 1001043

URL: http://svn.apache.org/viewvc?rev=1001043view=rev
Log:
Cosmetic change extra blank line removed

Modified:

camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java

Modified: 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java?rev=1001043r1=1001042r2=1001043view=diff
==
--- 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java
 (original)
+++ 
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java
 Fri Sep 24 19:36:35 2010
@@ -52,5 +52,4 @@ public class ScheduledJob implements Job
 }
 }
 
-
 }




svn commit: r1001049 - in /camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz: CronScheduledRoutePolicyTest.java SimpleScheduledRoutePolicyTest.java

2010-09-24 Thread akarpe
Author: akarpe
Date: Fri Sep 24 19:42:45 2010
New Revision: 1001049

URL: http://svn.apache.org/viewvc?rev=1001049view=rev
Log:
Cosmetic changes, removed unncessary blank lines

Modified:

camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java

camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java

Modified: 
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java?rev=1001049r1=1001048r2=1001049view=diff
==
--- 
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
 (original)
+++ 
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
 Fri Sep 24 19:42:45 2010
@@ -129,7 +129,6 @@ public class CronScheduledRoutePolicyTes
 consumerSuspended = true;
 }
 assertTrue(consumerSuspended);
-
 }
 
 @Test
@@ -162,6 +161,6 @@ public class CronScheduledRoutePolicyTes
 template.sendBody(direct:start, Ready or not, Here, I come);
 
 success.assertIsSatisfied();
-
 }  
-}
\ No newline at end of file
+
+}

Modified: 
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java?rev=1001049r1=1001048r2=1001049view=diff
==
--- 
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
 (original)
+++ 
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
 Fri Sep 24 19:42:45 2010
@@ -136,7 +136,6 @@ public class SimpleScheduledRoutePolicyT
 consumerSuspended = true;
 }
 assertTrue(consumerSuspended);
-
 }
 
 @Test
@@ -172,7 +171,6 @@ public class SimpleScheduledRoutePolicyT
 template.sendBody(direct:start, Ready or not, Here, I come);
 
 success.assertIsSatisfied();
-
 } 
 
-}
\ No newline at end of file
+}




svn commit: r1001128 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/model/dataformat/ components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/ components/camel-xstream

2010-09-24 Thread ningjiang
Author: ningjiang
Date: Sat Sep 25 02:51:53 2010
New Revision: 1001128

URL: http://svn.apache.org/viewvc?rev=1001128view=rev
Log:
CAMEL-3154 Support to set the customer xstream dirver

Added:

camel/trunk/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java
   (with props)
Modified:

camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java

camel/trunk/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java?rev=1001128r1=1001127r2=1001128view=diff
==
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java
 Sat Sep 25 02:51:53 2010
@@ -49,6 +49,9 @@ public class XStreamDataFormat extends D
 @XmlAttribute
 private String driver = xml;
 
+@XmlAttribute
+private String driverRef;
+
 @XmlJavaTypeAdapter(ConvertersAdapter.class)
 @XmlElement(name = converters)
 private ListString converters;
@@ -91,6 +94,14 @@ public class XStreamDataFormat extends D
 this.driver = driver;
 }
 
+public String getDriverRef() {
+return driverRef;
+}
+
+public void setDriverRef(String driverRef) {
+this.driverRef = driverRef;
+}
+
 public ListString getConverters() {
 return converters;
 }
@@ -148,9 +159,11 @@ public class XStreamDataFormat extends D
 if (this.implicitCollections != null) {
 setProperty(dataFormat, implicitCollections, 
this.implicitCollections);
 }
+if (this.driverRef != null) {
+setProperty(dataFormat, xstreamDriver, this.driverRef);
+}
 }
 
-
 @XmlTransient
 public static class ConvertersAdapter extends XmlAdapterConverterList, 
ListString {
 @Override

Modified: 
camel/trunk/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java?rev=1001128r1=1001127r2=1001128view=diff
==
--- 
camel/trunk/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
 (original)
+++ 
camel/trunk/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
 Sat Sep 25 02:51:53 2010
@@ -28,6 +28,7 @@ import javax.xml.stream.XMLStreamExcepti
 
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.converters.Converter;
+import com.thoughtworks.xstream.io.HierarchicalStreamDriver;
 import com.thoughtworks.xstream.io.HierarchicalStreamReader;
 import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
 
@@ -46,6 +47,7 @@ import org.apache.camel.util.ObjectHelpe
 public abstract class AbstractXStreamWrapper implements DataFormat {
 
 private XStream xstream;
+private HierarchicalStreamDriver xstreamDriver;
 private StaxConverter staxConverter;
 private ListString converters;
 private MapString, String aliases;
@@ -71,7 +73,11 @@ public abstract class AbstractXStreamWra
 }
 
 protected XStream createXStream(ClassResolver resolver) {
-xstream = new XStream();
+if(xstreamDriver != null) {
+xstream = new XStream(xstreamDriver);
+} else {
+xstream = new XStream();
+}
 
 try {
 if (this.implicitCollections != null) {
@@ -174,6 +180,14 @@ public abstract class AbstractXStreamWra
 this.omitFields = omitFields;
 }
 
+public HierarchicalStreamDriver getXstreamDriver() {
+return xstreamDriver;
+}
+
+public void setXstreamDriver(HierarchicalStreamDriver xstreamDriver) {
+this.xstreamDriver = xstreamDriver;
+}
+
 public XStream getXstream() {
 return xstream;
 }

Added: 
camel/trunk/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java?rev=1001128view=auto
==
--- 
camel/trunk/components/camel-xstream/src/test/java/org/apache/camel/dataformat/xstream/XStreamDataFormatDriverConfigTest.java
 (added)
+++