You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2013/09/17 11:50:18 UTC

[2/2] git commit: [CAMEL-6371] The creation of the UnitOfWork should be done after the exchange is populated so that the notification sent contains meaningful data

[CAMEL-6371] The creation of the UnitOfWork should be done after the exchange is populated so that the notification sent contains meaningful data


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/cbe8d572
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cbe8d572
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cbe8d572

Branch: refs/heads/camel-2.12.x
Commit: cbe8d5726efc73430d8f71f6374b244f72d66fa2
Parents: 943eb5f
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Sep 17 11:39:14 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Sep 17 11:49:52 2013 +0200

----------------------------------------------------------------------
 .../apache/camel/component/cxf/CxfConsumer.java    | 15 ++++++++-------
 .../camel/component/cxf/jaxrs/CxfRsInvoker.java    |  8 ++++----
 .../apache/camel/component/http/CamelServlet.java  | 17 +++++++++--------
 .../component/jetty/CamelContinuationServlet.java  | 16 +++++++++-------
 .../netty/handlers/ServerChannelHandler.java       |  5 +++--
 5 files changed, 33 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cbe8d572/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
index 53bb9d6..478a8d1 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfConsumer.java
@@ -152,13 +152,6 @@ public class CxfConsumer extends DefaultConsumer {
 
                 // create a Camel exchange, the default MEP is InOut
                 org.apache.camel.Exchange camelExchange = endpoint.createExchange();
-                // we want to handle the UoW
-                try {
-                    CxfConsumer.this.createUoW(camelExchange);
-                } catch (Exception e) {
-                    log.error("Error processing request", e);
-                    throw new Fault(e);
-                }
 
                 DataFormat dataFormat = endpoint.getDataFormat();
 
@@ -194,6 +187,14 @@ public class CxfConsumer extends DefaultConsumer {
                 binding.extractJaxWsContext(cxfExchange, context);
                 // put the context into camelExchange
                 camelExchange.setProperty(CxfConstants.JAXWS_CONTEXT, context);
+
+                // we want to handle the UoW
+                try {
+                    CxfConsumer.this.createUoW(camelExchange);
+                } catch (Exception e) {
+                    log.error("Error processing request", e);
+                    throw new Fault(e);
+                }
                 return camelExchange;
             }
             

http://git-wip-us.apache.org/repos/asf/camel/blob/cbe8d572/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
index 38bf420..3e2c0fd 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
@@ -76,11 +76,11 @@ public class CxfRsInvoker extends JAXRSInvoker {
                     ep = ExchangePattern.InOnly;
                 } 
                 final org.apache.camel.Exchange camelExchange = endpoint.createExchange(ep);
-                // we want to handle the UoW
-                cxfRsConsumer.createUoW(camelExchange);
 
                 CxfRsBinding binding = endpoint.getBinding();
                 binding.populateExchangeFromCxfRsRequest(cxfExchange, camelExchange, method, paramArray);
+                // we want to handle the UoW
+                cxfRsConsumer.createUoW(camelExchange);
                 // Now we don't set up the timeout value
                 LOG.trace("Suspending continuation of exchangeId: {}", camelExchange.getExchangeId());
                 // TODO Support to set the timeout in case the Camel can't send the response back on time.
@@ -121,10 +121,10 @@ public class CxfRsInvoker extends JAXRSInvoker {
             ep = ExchangePattern.InOnly;
         } 
         org.apache.camel.Exchange camelExchange = endpoint.createExchange(ep);
-        // we want to handle the UoW
-        cxfRsConsumer.createUoW(camelExchange);
         CxfRsBinding binding = endpoint.getBinding();
         binding.populateExchangeFromCxfRsRequest(cxfExchange, camelExchange, method, paramArray);
+        // we want to handle the UoW
+        cxfRsConsumer.createUoW(camelExchange);
 
         try {
             cxfRsConsumer.getProcessor().process(camelExchange);

http://git-wip-us.apache.org/repos/asf/camel/blob/cbe8d572/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java
----------------------------------------------------------------------
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java b/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java
index 68afc89..a56257c 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java
@@ -86,13 +86,6 @@ public class CamelServlet extends HttpServlet {
         
         // create exchange and set data on it
         Exchange exchange = new DefaultExchange(consumer.getEndpoint(), ExchangePattern.InOut);
-        // we want to handle the UoW
-        try {
-            consumer.createUoW(exchange);
-        } catch (Exception e) {
-            log.error("Error processing request", e);
-            throw new ServletException(e);
-        }
 
         if (consumer.getEndpoint().isBridgeEndpoint()) {
             exchange.setProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.TRUE);
@@ -117,7 +110,15 @@ public class CamelServlet extends HttpServlet {
             exchange.getIn().setHeader(Exchange.HTTP_PATH,
                     httpPath.substring(contextPath.length()));
         }
-        
+
+        // we want to handle the UoW
+        try {
+            consumer.createUoW(exchange);
+        } catch (Exception e) {
+            log.error("Error processing request", e);
+            throw new ServletException(e);
+        }
+
         try {
             if (log.isTraceEnabled()) {
                 log.trace("Processing request for exchangeId: {}", exchange.getExchangeId());

http://git-wip-us.apache.org/repos/asf/camel/blob/cbe8d572/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
index 229b7e3..de0bb8b 100644
--- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
+++ b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/CamelContinuationServlet.java
@@ -102,13 +102,6 @@ public class CamelContinuationServlet extends CamelServlet {
 
             // a new request so create an exchange
             final Exchange exchange = new DefaultExchange(consumer.getEndpoint(), ExchangePattern.InOut);
-            // we want to handle the UoW
-            try {
-                consumer.createUoW(exchange);
-            } catch (Exception e) {
-                log.error("Error processing request", e);
-                throw new ServletException(e);
-            }
 
             if (consumer.getEndpoint().isBridgeEndpoint()) {
                 exchange.setProperty(Exchange.SKIP_GZIP_ENCODING, Boolean.TRUE);
@@ -136,6 +129,15 @@ public class CamelContinuationServlet extends CamelServlet {
                 log.trace("Suspending continuation of exchangeId: {}", exchange.getExchangeId());
             }
             continuation.setAttribute(EXCHANGE_ATTRIBUTE_ID, exchange.getExchangeId());
+
+            // we want to handle the UoW
+            try {
+                consumer.createUoW(exchange);
+            } catch (Exception e) {
+                log.error("Error processing request", e);
+                throw new ServletException(e);
+            }
+
             // must suspend before we process the exchange
             continuation.suspend();
 

http://git-wip-us.apache.org/repos/asf/camel/blob/cbe8d572/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
index 6aba7a8..6bafe7b 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
@@ -87,8 +87,6 @@ public class ServerChannelHandler extends SimpleChannelUpstreamHandler {
 
         // create Exchange and let the consumer process it
         final Exchange exchange = consumer.getEndpoint().createExchange(ctx, messageEvent);
-        // we want to handle the UoW
-        consumer.createUoW(exchange);
 
         if (consumer.getConfiguration().isSync()) {
             exchange.setPattern(ExchangePattern.InOut);
@@ -98,6 +96,9 @@ public class ServerChannelHandler extends SimpleChannelUpstreamHandler {
             exchange.setProperty(Exchange.CHARSET_NAME, IOHelper.normalizeCharset(consumer.getConfiguration().getCharsetName()));
         }
 
+        // we want to handle the UoW
+        consumer.createUoW(exchange);
+
         beforeProcess(exchange, messageEvent);
 
         // process accordingly to endpoint configuration