You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/06/26 17:30:04 UTC
svn commit: r550830 - in /activemq/camel/trunk/components/camel-http/src:
main/java/org/apache/camel/component/http/
test/java/org/apache/camel/component/http/
Author: jstrachan
Date: Tue Jun 26 08:30:03 2007
New Revision: 550830
URL: http://svn.apache.org/viewvc?view=rev&rev=550830
Log:
added test case for performing GET/POST on a HTTP endpoint using commons-httpclient
Added:
activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteUsingUrlPostTest.java
- copied, changed from r550718, activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java
Modified:
activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java
Modified: activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java?view=diff&rev=550830&r1=550829&r2=550830
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java (original)
+++ activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java Tue Jun 26 08:30:03 2007
@@ -24,7 +24,10 @@
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
+import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.RequestEntity;
import java.io.InputStream;
@@ -39,8 +42,7 @@
}
public void process(Exchange exchange) throws Exception {
- String uri = getEndpoint().getEndpointUri();
- HttpMethod method = createMethod(uri);
+ HttpMethod method = createMethod(exchange);
int responseCode = httpClient.executeMethod(method);
// lets store the result in the output message.
@@ -59,7 +61,31 @@
out.setHeader("http.responseCode", responseCode);
}
- protected PostMethod createMethod(String uri) {
- return new PostMethod(uri);
+ protected HttpMethod createMethod(Exchange exchange) {
+ String uri = getEndpoint().getEndpointUri();
+ RequestEntity requestEntity = createRequestEntity(exchange);
+ if (requestEntity == null) {
+ return new GetMethod(uri);
+ }
+ // TODO we might be PUT? - have some better way to explicitly choose method
+ PostMethod method = new PostMethod(uri);
+ method.setRequestEntity(requestEntity);
+ return method;
+ }
+
+ protected RequestEntity createRequestEntity(Exchange exchange) {
+ Message in = exchange.getIn();
+ RequestEntity entity = in.getBody(RequestEntity.class);
+ if (entity == null) {
+ byte[] data = in.getBody(byte[].class);
+ String contentType = in.getHeader("Content-Type", String.class);
+ if (contentType != null) {
+ return new ByteArrayRequestEntity(data, contentType);
+ }
+ else {
+ return new ByteArrayRequestEntity(data);
+ }
+ }
+ return entity;
}
}
Modified: activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java?view=diff&rev=550830&r1=550829&r2=550830
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java (original)
+++ activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java Tue Jun 26 08:30:03 2007
@@ -65,32 +65,7 @@
}
protected void invokeHttpEndpoint() throws IOException {
- URL url = new URL("http://localhost:8080/test");
- URLConnection urlConnection = url.openConnection();
- urlConnection.setDoInput(true);
- urlConnection.setDoOutput(true);
- urlConnection.setUseCaches(false);
- urlConnection.setRequestProperty("Content-Type", "application/xml");
-
- // Send POST data
- OutputStream out = urlConnection.getOutputStream();
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out));
- writer.write(expectedBody);
- writer.close();
-
- // read the response data
- BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
- while (true) {
- String line = reader.readLine();
- if (line == null) {
- break;
- }
- log.info("Read: " + line);
- }
- reader.close();
-
-// InputStream is = url.openConnection().getInputStream();
-// System.out.println("Content: "+is);
+ template.sendBody("http://localhost:8080/test", expectedBody, "Content-Type", "application/xml");
}
@Override
Copied: activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteUsingUrlPostTest.java (from r550718, activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java)
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteUsingUrlPostTest.java?view=diff&rev=550830&p1=activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java&r1=550718&p2=activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteUsingUrlPostTest.java&r2=550830
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteTest.java (original)
+++ activemq/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpRouteUsingUrlPostTest.java Tue Jun 26 08:30:03 2007
@@ -37,32 +37,7 @@
/**
* @version $Revision: 520220 $
*/
-public class HttpRouteTest extends ContextTestSupport {
- protected String expectedBody = "<hello>world!</hello>";
-
- public void testPojoRoutes() throws Exception {
- MockEndpoint mockEndpoint = resolveMandatoryEndpoint("mock:a", MockEndpoint.class);
- mockEndpoint.expectedMessageCount(1);
-
- invokeHttpEndpoint();
-
- mockEndpoint.assertIsSatisfied();
- List<Exchange> list = mockEndpoint.getReceivedExchanges();
- Exchange exchange = list.get(0);
- assertNotNull("exchange", exchange);
-
- Message in = exchange.getIn();
- assertNotNull("in", in);
-
- Map<String,Object> headers = in.getHeaders();
- String actualBody = in.getBody(String.class);
-
- log.info("Headers: " + headers);
- log.info("Received body: " + actualBody);
-
- assertEquals("Body", expectedBody, actualBody);
- assertTrue("Should be more than one header but was: " + headers, headers.size() > 0);
- }
+public class HttpRouteUsingUrlPostTest extends HttpRouteTest {
protected void invokeHttpEndpoint() throws IOException {
URL url = new URL("http://localhost:8080/test");
@@ -93,12 +68,4 @@
// System.out.println("Content: "+is);
}
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- public void configure() {
- from("http://localhost:8080/test").convertBodyTo(String.class).to("mock:a");
- }
- };
- }
-}
+}
\ No newline at end of file