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 2010/05/05 16:13:08 UTC
svn commit: r941301 - in /camel/branches/camel-1.x/components:
camel-http/src/main/java/org/apache/camel/component/http/
camel-http/src/main/java/org/apache/camel/component/http/helper/
camel-http/src/test/java/org/apache/camel/component/http/ camel-je...
Author: ningjiang
Date: Wed May 5 14:13:07 2010
New Revision: 941301
URL: http://svn.apache.org/viewvc?rev=941301&view=rev
Log:
CAMEL-2694 merge the patch of GZIPHelper into Camel 1.x branch
Added:
camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java (with props)
Modified:
camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConverter.java
camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/RequestEntityConverter.java
camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/helper/GZIPHelper.java
camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetTest.java
camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetWithHeadersTest.java
Modified: camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConverter.java?rev=941301&r1=941300&r2=941301&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConverter.java (original)
+++ camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpConverter.java Wed May 5 14:13:07 2010
@@ -74,7 +74,7 @@ public final class HttpConverter {
return null;
}
String contentEncoding = request.getHeader(GZIPHelper.CONTENT_ENCODING);
- return GZIPHelper.toGZIPInputStream(contentEncoding, request.getInputStream());
+ return GZIPHelper.uncompressGzip(contentEncoding, request.getInputStream());
}
}
Modified: camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java?rev=941301&r1=941300&r2=941301&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java (original)
+++ camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java Wed May 5 14:13:07 2010
@@ -170,7 +170,7 @@ public class HttpProducer extends Defaul
Header header = method.getRequestHeader(GZIPHelper.CONTENT_ENCODING);
String contentEncoding = header != null ? header.getValue() : null;
- is = GZIPHelper.toGZIPInputStream(contentEncoding, is);
+ is = GZIPHelper.uncompressGzip(contentEncoding, is);
return doExtractResponseBody(is, exchange);
}
Modified: camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/RequestEntityConverter.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/RequestEntityConverter.java?rev=941301&r1=941300&r2=941301&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/RequestEntityConverter.java (original)
+++ camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/RequestEntityConverter.java Wed May 5 14:13:07 2010
@@ -63,15 +63,13 @@ public class RequestEntityConverter {
private RequestEntity asRequestEntity(InputStream in, Exchange exchange) throws IOException {
return new InputStreamRequestEntity(
- GZIPHelper.toGZIPInputStream(
- exchange.getIn().getHeader(GZIPHelper.CONTENT_ENCODING, String.class),
+ GZIPHelper.compressGzip(exchange.getIn().getHeader(GZIPHelper.CONTENT_ENCODING, String.class),
in), ExchangeHelper.getContentType(exchange));
}
private RequestEntity asRequestEntity(byte[] data, Exchange exchange) throws Exception {
return new InputStreamRequestEntity(
- GZIPHelper.toGZIPInputStream(
- exchange.getIn().getHeader(GZIPHelper.CONTENT_ENCODING, String.class),
+ GZIPHelper.compressGzip(exchange.getIn().getHeader(GZIPHelper.CONTENT_ENCODING, String.class),
data), ExchangeHelper.getContentType(exchange));
}
Modified: camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/helper/GZIPHelper.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/helper/GZIPHelper.java?rev=941301&r1=941300&r2=941301&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/helper/GZIPHelper.java (original)
+++ camel/branches/camel-1.x/components/camel-http/src/main/java/org/apache/camel/component/http/helper/GZIPHelper.java Wed May 5 14:13:07 2010
@@ -25,6 +25,7 @@ import java.util.zip.GZIPOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.camel.Message;
+import org.apache.camel.util.IOHelper;
import org.apache.camel.util.ObjectHelper;
/**
@@ -54,15 +55,34 @@ public final class GZIPHelper {
response.setHeader(CONTENT_ENCODING, GZIP);
}
- public static InputStream toGZIPInputStream(String contentEncoding, InputStream in) throws IOException {
+ public static InputStream uncompressGzip(String contentEncoding, InputStream in) throws IOException {
if (isGzip(contentEncoding)) {
return new GZIPInputStream(in);
} else {
return in;
}
}
+
+ public static InputStream compressGzip(String contentEncoding, InputStream in) throws IOException {
+
+ if (isGzip(contentEncoding)) {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ GZIPOutputStream gzip = new GZIPOutputStream(os);
+ try {
+ IOHelper.copy(in, gzip);
+ gzip.finish();
+ return new ByteArrayInputStream(os.toByteArray());
+ } finally {
+ ObjectHelper.close(gzip, "gzip", null);
+ ObjectHelper.close(os, "byte array output stream", null);
+ }
+ } else {
+ return in;
+ }
+
+ }
- public static InputStream toGZIPInputStream(String contentEncoding, byte[] data) throws Exception {
+ public static InputStream compressGzip(String contentEncoding, byte[] data) throws IOException {
if (isGzip(contentEncoding)) {
ByteArrayOutputStream os = null;
GZIPOutputStream gzip = null;
Modified: camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetTest.java?rev=941301&r1=941300&r2=941301&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetTest.java (original)
+++ camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetTest.java Wed May 5 14:13:07 2010
@@ -50,7 +50,7 @@ public class HttpGetTest extends Context
log.debug("Headers: " + headers);
checkHeaders(headers);
- String body = in.getBody(String.class);
+ String body = in.getBody(String.class);
log.debug("Body: " + body);
assertNotNull("Should have a body!", body);
Modified: camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetWithHeadersTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetWithHeadersTest.java?rev=941301&r1=941300&r2=941301&view=diff
==============================================================================
--- camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetWithHeadersTest.java (original)
+++ camel/branches/camel-1.x/components/camel-http/src/test/java/org/apache/camel/component/http/HttpGetWithHeadersTest.java Wed May 5 14:13:07 2010
@@ -29,7 +29,7 @@ public class HttpGetWithHeadersTest exte
from("direct:start")
.setHeader("TestHeader", constant("test"))
.setHeader("Content-Length", constant(0))
- .setHeader("Accept-Language", constant("pl"))
+ .setHeader("Accept-Language", constant("en"))
.to("http://www.google.com/search")
.to("mock:results");
}
@@ -39,7 +39,7 @@ public class HttpGetWithHeadersTest exte
@Override
protected void setUp() throws Exception {
// "Szukaj" is "Search" in polish language
- expectedText = "Szukaj";
+ expectedText = "Google";
super.setUp();
}
Added: camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java?rev=941301&view=auto
==============================================================================
--- camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java (added)
+++ camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java Wed May 5 14:13:07 2010
@@ -0,0 +1,59 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.jetty;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.ExpressionBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.converter.IOConverter;
+
+
+public class HttpGZipEncodingTest extends ContextTestSupport {
+
+ public void testHttpProducerWithGzip() throws Exception {
+ InputStream response = (InputStream) template.requestBodyAndHeader("http://localhost:9081/gzip", new ByteArrayInputStream("<Hello>World</Hello>".getBytes()), "Content-Encoding", "gzip");
+ assertEquals("The response is wrong", "<b>Hello World</b>", IOConverter.toString(response));
+ }
+
+
+
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() {
+ errorHandler(noErrorHandler());
+
+ from("jetty:http://localhost:9081/gzip").process(new Processor() {
+
+ public void process(Exchange exchange) throws Exception {
+ String request = exchange.getIn().getBody(String.class);
+ assertEquals("Get a wrong request string", "<Hello>World</Hello>", request);
+ exchange.getOut().setHeader("Content-Encoding", "gzip");
+ exchange.getOut().setBody("<b>Hello World</b>");
+ }
+
+ });
+
+ }
+ };
+ }
+
+}
Propchange: camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/branches/camel-1.x/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpGZipEncodingTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date