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 2009/02/20 16:10:19 UTC

svn commit: r746271 - in /camel/branches/camel-1.x: ./ components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaInOutCloseSessionWhenCompleteTest.java

Author: davsclaus
Date: Fri Feb 20 15:10:19 2009
New Revision: 746271

URL: http://svn.apache.org/viewvc?rev=746271&view=rev
Log:
Merged revisions 746269 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r746269 | davsclaus | 2009-02-20 16:02:50 +0100 (Fri, 20 Feb 2009) | 1 line
  
  CAMEL-1362: added special header to indicate mina session should be closed when its complete, to eg by used when sending a BYE message.
........

Added:
    camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaInOutCloseSessionWhenCompleteTest.java
      - copied unchanged from r746269, camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaInOutCloseSessionWhenCompleteTest.java
Modified:
    camel/branches/camel-1.x/   (props changed)
    camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 20 15:10:19 2009
@@ -1 +1 @@
-/camel/trunk:739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978
+/camel/trunk:739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java?rev=746271&r1=746270&r2=746271&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java (original)
+++ camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java Fri Feb 20 15:10:19 2009
@@ -36,6 +36,8 @@
  * @version $Revision$
  */
 public class MinaConsumer extends DefaultConsumer<MinaExchange> {
+    public static final transient String HEADER_CLOSE_SESSION_WHEN_COMPLETE = "CamelMinaCloseSessionWhenComplete";
+
     private static final transient Log LOG = LogFactory.getLog(MinaConsumer.class);
 
     private final MinaEndpoint endpoint;
@@ -109,6 +111,7 @@
                 } else {
                     body = MinaPayloadHelper.getIn(endpoint, exchange);
                 }
+
                 boolean failed = exchange.isFailed();
                 if (failed && !endpoint.isTransferExchange()) {
                     if (exchange.getException() != null) {
@@ -129,8 +132,22 @@
                         LOG.debug("Writing body: " + body);
                     }
                     MinaHelper.writeBody(session, body, exchange);
+
                 }
             }
+
+            // should session be closed after complete?
+            Boolean close;
+            if (ExchangeHelper.isOutCapable(exchange)) {
+                close = exchange.getOut().getHeader(HEADER_CLOSE_SESSION_WHEN_COMPLETE, Boolean.class);
+            } else {
+                close = exchange.getIn().getHeader(HEADER_CLOSE_SESSION_WHEN_COMPLETE, Boolean.class);
+            }
+
+            if (close != null && close) {
+                LOG.debug("Closing session when complete");
+                session.close();
+            }
         }
 
     }