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 2012/12/10 19:24:49 UTC
svn commit: r1419629 - in
/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty:
NettyHelper.java handlers/ServerChannelHandler.java
Author: davsclaus
Date: Mon Dec 10 18:24:48 2012
New Revision: 1419629
URL: http://svn.apache.org/viewvc?rev=1419629&view=rev
Log:
Polished camel-netty
Modified:
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java?rev=1419629&r1=1419628&r2=1419629&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java Mon Dec 10 18:24:48 2012
@@ -84,7 +84,6 @@ public final class NettyHelper {
*/
public static void writeBodyAsync(Logger log, Channel channel, SocketAddress remoteAddress, Object body,
Exchange exchange, ChannelFutureListener listener) {
- // the write operation is asynchronous. Use future to wait until the session has been written
ChannelFuture future;
if (remoteAddress != null) {
if (log.isDebugEnabled()) {
@@ -98,18 +97,20 @@ public final class NettyHelper {
future = channel.write(body);
}
- future.addListener(listener);
+ if (listener != null) {
+ future.addListener(listener);
+ }
}
/**
- * Closes the given channel
+ * Closes the given channel asynchronously
*
* @param channel the channel to close
*/
public static void close(Channel channel) {
if (channel != null) {
LOG.trace("Closing channel: {}", channel);
- channel.close().awaitUninterruptibly();
+ channel.close();
}
}
Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java?rev=1419629&r1=1419628&r2=1419629&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java Mon Dec 10 18:24:48 2012
@@ -27,7 +27,6 @@ import org.apache.camel.component.netty.
import org.apache.camel.component.netty.NettyHelper;
import org.apache.camel.component.netty.NettyPayloadHelper;
import org.apache.camel.util.CamelLogger;
-import org.apache.camel.util.ExchangeHelper;
import org.apache.camel.util.IOHelper;
import org.jboss.netty.channel.ChannelFuture;
import org.jboss.netty.channel.ChannelFutureListener;
@@ -67,6 +66,7 @@ public class ServerChannelHandler extend
if (LOG.isTraceEnabled()) {
LOG.trace("Channel closed: {}", e.getChannel());
}
+ consumer.getAllChannels().remove(e.getChannel());
}
@Override
@@ -134,7 +134,7 @@ public class ServerChannelHandler extend
private void sendResponse(MessageEvent messageEvent, Exchange exchange) throws Exception {
Object body;
- if (ExchangeHelper.isOutCapable(exchange)) {
+ if (exchange.hasOut()) {
body = NettyPayloadHelper.getOut(consumer.getEndpoint(), exchange);
} else {
body = NettyPayloadHelper.getIn(consumer.getEndpoint(), exchange);
@@ -194,14 +194,13 @@ public class ServerChannelHandler extend
public void operationComplete(ChannelFuture future) throws Exception {
// if it was not a success then thrown an exception
if (!future.isSuccess()) {
- future.getCause().printStackTrace();
Exception e = new CamelExchangeException("Cannot write response to " + remoteAddress, exchange, future.getCause());
consumer.getExceptionHandler().handleException(e);
}
// should channel be closed after complete?
Boolean close;
- if (ExchangeHelper.isOutCapable(exchange)) {
+ if (exchange.hasOut()) {
close = exchange.getOut().getHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, Boolean.class);
} else {
close = exchange.getIn().getHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, Boolean.class);