You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/05/14 14:41:04 UTC
svn commit: r774748 - in
/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc:
AsyncBufferingHttpServiceHandler.java JhcConsumer.java JhcConverter.java
JhcEndpoint.java JhcServerEngine.java
Author: ningjiang
Date: Thu May 14 12:41:03 2009
New Revision: 774748
URL: http://svn.apache.org/viewvc?rev=774748&view=rev
Log:
CAMEL-1594 Set the content-type in the camel-jhc converter
Modified:
camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/AsyncBufferingHttpServiceHandler.java
camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConsumer.java
camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConverter.java
camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java
camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcServerEngine.java
Modified: camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/AsyncBufferingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/AsyncBufferingHttpServiceHandler.java?rev=774748&r1=774747&r2=774748&view=diff
==============================================================================
--- camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/AsyncBufferingHttpServiceHandler.java (original)
+++ camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/AsyncBufferingHttpServiceHandler.java Thu May 14 12:41:03 2009
@@ -41,13 +41,6 @@
import org.apache.http.protocol.ResponseDate;
import org.apache.http.protocol.ResponseServer;
-/**
- * Created by IntelliJ IDEA.
- * User: gnodet
- * Date: Sep 11, 2007
- * Time: 6:57:34 PM
- * To change this template use File | Settings | File Templates.
- */
public class AsyncBufferingHttpServiceHandler extends BufferingHttpServiceHandler {
Modified: camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConsumer.java?rev=774748&r1=774747&r2=774748&view=diff
==============================================================================
--- camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConsumer.java (original)
+++ camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConsumer.java Thu May 14 12:41:03 2009
@@ -21,6 +21,7 @@
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.impl.DefaultConsumer;
+import org.apache.camel.util.MessageHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpEntity;
@@ -32,6 +33,7 @@
import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
import org.apache.http.ProtocolVersion;
+import org.apache.http.entity.AbstractHttpEntity;
import org.apache.http.impl.DefaultHttpResponseFactory;
import org.apache.http.nio.NHttpConnection;
import org.apache.http.nio.protocol.EventListener;
@@ -39,10 +41,6 @@
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpRequestHandler;
-/**
- * Created by IntelliJ IDEA. User: gnodet Date: Sep 7, 2007 Time: 8:15:54 PM To
- * change this template use File | Settings | File Templates.
- */
public class JhcConsumer extends DefaultConsumer {
private static final Log LOG = LogFactory.getLog(JhcConsumer.class);
@@ -141,15 +139,16 @@
public void handle(final HttpRequest request, final HttpContext context,
final AsyncResponseHandler handler) throws HttpException, IOException {
final Exchange exchange = getEndpoint().createExchange();
- exchange.getIn().setHeader("http.uri", request.getRequestLine().getUri());
+ exchange.getIn().setHeader(Exchange.HTTP_URI, request.getRequestLine().getUri());
if (request instanceof HttpEntityEnclosingRequest) {
+ exchange.getIn().setHeader(Exchange.CONTENT_TYPE, ((HttpEntityEnclosingRequest)request).getEntity().getContentType());
exchange.getIn().setBody(((HttpEntityEnclosingRequest)request).getEntity());
}
try {
getProcessor().process(exchange);
} catch (Exception e) {
- exchange.setException(e);
+ throw new HttpException("Get the exception when processing the exchange", e);
}
LOG.debug("handleExchange");
@@ -159,9 +158,14 @@
if (responseCode == null) {
responseCode = HttpStatus.SC_OK;
}
- HttpResponse response = responseFactory.newHttpResponse(httpVersion, responseCode, context);
+ HttpResponse response = responseFactory.newHttpResponse(httpVersion, responseCode, context);
response.setParams(params);
HttpEntity entity = exchange.getOut().getBody(HttpEntity.class);
+ String contentType = MessageHelper.getContentType(exchange.getOut());
+ if (contentType != null && entity instanceof AbstractHttpEntity) {
+ // To make sure we set the right content-type here
+ ((AbstractHttpEntity)entity).setContentType(contentType);
+ }
response.setEntity(entity);
response.setParams(getEndpoint().getParams());
try {
Modified: camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConverter.java?rev=774748&r1=774747&r2=774748&view=diff
==============================================================================
--- camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConverter.java (original)
+++ camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcConverter.java Thu May 14 12:41:03 2009
@@ -22,18 +22,12 @@
import org.apache.camel.Converter;
import org.apache.camel.Exchange;
+import org.apache.camel.util.ExchangeHelper;
import org.apache.http.HttpEntity;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.util.EntityUtils;
-/**
- * Created by IntelliJ IDEA.
- * User: gnodet
- * Date: Sep 10, 2007
- * Time: 8:26:44 AM
- * To change this template use File | Settings | File Templates.
- */
@Converter
public final class JhcConverter {
@@ -56,13 +50,23 @@
}
@Converter
- public static HttpEntity toEntity(InputStream is) {
- return new InputStreamEntity(is, -1);
+ public static HttpEntity toEntity(InputStream is, Exchange exchange) {
+ InputStreamEntity answer = new InputStreamEntity(is, -1);
+ String contentType = ExchangeHelper.getContentType(exchange);
+ if (contentType != null) {
+ answer.setContentType(contentType);
+ }
+ return answer;
}
@Converter
public static HttpEntity toEntity(String str, Exchange exchange) throws UnsupportedEncodingException {
String charset = exchange.getProperty(Exchange.CHARSET_NAME, String.class);
- return new StringEntity(str, charset);
+ StringEntity answer = new StringEntity(str, charset);
+ String contentType = ExchangeHelper.getContentType(exchange);
+ if (contentType != null) {
+ answer.setContentType(contentType);
+ }
+ return answer;
}
}
Modified: camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java?rev=774748&r1=774747&r2=774748&view=diff
==============================================================================
--- camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java (original)
+++ camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java Thu May 14 12:41:03 2009
@@ -26,13 +26,6 @@
import org.apache.camel.spi.HeaderFilterStrategyAware;
import org.apache.http.params.HttpParams;
-/**
- * Created by IntelliJ IDEA.
- * User: gnodet
- * Date: Sep 7, 2007
- * Time: 8:06:42 PM
- * To change this template use File | Settings | File Templates.
- */
public class JhcEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
private HttpParams params;
Modified: camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcServerEngine.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcServerEngine.java?rev=774748&r1=774747&r2=774748&view=diff
==============================================================================
--- camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcServerEngine.java (original)
+++ camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcServerEngine.java Thu May 14 12:41:03 2009
@@ -97,31 +97,31 @@
}
public void start() throws IOReactorException {
- final SocketAddress addr = new InetSocketAddress(port);
- ioReactor = new DefaultListeningIOReactor(nbThreads, threadFactory, params);
-
- final IOEventDispatch ioEventDispatch;
- if ("https".equals(protocol)) {
- ioEventDispatch = new SSLServerIOEventDispatch(serviceHandler, sslContext, params);
- } else {
- ioEventDispatch = new DefaultServerIOEventDispatch(serviceHandler, params);
- }
- runner = new Thread() {
- public void run() {
- try {
- if (!isStarted.getAndSet(true)) {
+ if (!isStarted.getAndSet(true)) {
+ final SocketAddress addr = new InetSocketAddress(port);
+ ioReactor = new DefaultListeningIOReactor(nbThreads, threadFactory, params);
+
+ final IOEventDispatch ioEventDispatch;
+ if ("https".equals(protocol)) {
+ ioEventDispatch = new SSLServerIOEventDispatch(serviceHandler, sslContext, params);
+ } else {
+ ioEventDispatch = new DefaultServerIOEventDispatch(serviceHandler, params);
+ }
+ runner = new Thread() {
+ public void run() {
+ try {
ioReactor.listen(addr);
- ioReactor.execute(ioEventDispatch);
+ ioReactor.execute(ioEventDispatch);
+ } catch (InterruptedIOException ex) {
+ LOG.info("Interrupted");
+ } catch (IOException e) {
+ LOG.warn("I/O error: " + e.getMessage());
}
- } catch (InterruptedIOException ex) {
- LOG.info("Interrupted");
- } catch (IOException e) {
- LOG.warn("I/O error: " + e.getMessage());
+ LOG.debug("Shutdown");
}
- LOG.debug("Shutdown");
- }
- };
- runner.start();
+ };
+ runner.start();
+ }
}
public void stop() throws IOException {