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(); + } } }