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 12:03:00 UTC

svn commit: r550760 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/impl/ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/ components/camel-http/src/main/java/org/apache...

Author: jstrachan
Date: Tue Jun 26 03:02:56 2007
New Revision: 550760

URL: http://svn.apache.org/viewvc?view=rev&rev=550760
Log:
made it easy to avoid auto-creating an Out message via a new getOut(false) method. Also added a real basic HttpProducer using commons-httpclient

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
    activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java
    activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
    activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
    activemq/camel/trunk/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcExchange.java
    activemq/camel/trunk/components/camel-jbi/src/main/java/org/apache/camel/component/jbi/JbiExchange.java
    activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsExchange.java
    activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailExchange.java
    activemq/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppExchange.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java Tue Jun 26 03:02:56 2007
@@ -82,10 +82,19 @@
     Message getIn();
 
     /**
-     * Returns the aresponse message
+     * Returns the outbound message, lazily creating one if one has not already been associated with this exchange.
+     * If you want to inspect this property but not force lazy creation then invoke the {@link #getOut(boolean)} method
+     * passing in null
+     * 
      * @return the response
      */
     Message getOut();
+
+    /**
+     * Returns the outbound message; optionally lazily creating one if one has not been associated with this exchange
+     * @return the response
+     */
+    Message getOut(boolean lazyCreate);
 
     /**
      * Returns the fault message

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java Tue Jun 26 03:02:56 2007
@@ -126,7 +126,11 @@
     }
 
     public Message getOut() {
-        if (out == null) {
+        return getOut(true);
+    }
+
+    public Message getOut(boolean lazyCreate) {
+        if (out == null && lazyCreate) {
             out = createOutMessage();
             configureMessage(out);
         }

Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfExchange.java Tue Jun 26 03:02:56 2007
@@ -73,6 +73,11 @@
     }
 
     @Override
+    public CxfMessage getOut(boolean lazyCreate) {
+        return (CxfMessage) super.getOut(lazyCreate);
+    }
+
+    @Override
     public CxfMessage getFault() {
         return (CxfMessage) super.getFault();
     }

Modified: activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java (original)
+++ activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java Tue Jun 26 03:02:56 2007
@@ -46,8 +46,8 @@
 		this.httpUri = new URI(uri);
     }
 
-    public Producer<HttpExchange> createProducer() throws Exception {
-    	throw new RuntimeCamelException("Not implemented.");
+    public HttpProducer createProducer() throws Exception {
+    	return new HttpProducer(this);
     }
 
     public Consumer<HttpExchange> createConsumer(Processor processor) throws Exception {

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=550760&r1=550759&r2=550760
==============================================================================
--- 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 03:02:56 2007
@@ -17,8 +17,49 @@
  */
 package org.apache.camel.component.http;
 
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Producer;
+import org.apache.camel.impl.DefaultProducer;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.PostMethod;
+
+import java.io.InputStream;
+
 /**
  * @version $Revision: 1.1 $
  */
-public class HttpProducer {
+public class HttpProducer extends DefaultProducer<HttpExchange> implements Producer<HttpExchange> {
+    private HttpClient httpClient = new HttpClient();
+
+    public HttpProducer(HttpEndpoint endpoint) {
+        super(endpoint);
+    }
+
+    public void process(Exchange exchange) throws Exception {
+        String uri = getEndpoint().getEndpointUri();
+        HttpMethod method = createMethod(uri);
+        int responseCode = httpClient.executeMethod(method);
+
+        // lets store the result in the output message.
+        InputStream in = method.getResponseBodyAsStream();
+        Message out = exchange.getOut(true);
+        out.setBody(in);
+
+        // lets set the headers
+        Header[] headers = method.getResponseHeaders();
+        for (Header header : headers) {
+            String name = header.getName();
+            String value = header.getValue();
+            out.setHeader(name, value);
+        }
+
+        out.setHeader("http.responseCode", responseCode);
+    }
+
+    protected PostMethod createMethod(String uri) {
+        return new PostMethod(uri);
+    }
 }

Modified: activemq/camel/trunk/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcExchange.java (original)
+++ activemq/camel/trunk/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcExchange.java Tue Jun 26 03:02:56 2007
@@ -52,6 +52,11 @@
     }
 
     @Override
+    public IrcMessage getOut(boolean lazyCreate) {
+        return (IrcMessage) super.getOut(lazyCreate);
+    }
+
+    @Override
     public IrcMessage getFault() {
         return (IrcMessage) super.getFault();
     }

Modified: activemq/camel/trunk/components/camel-jbi/src/main/java/org/apache/camel/component/jbi/JbiExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jbi/src/main/java/org/apache/camel/component/jbi/JbiExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-jbi/src/main/java/org/apache/camel/component/jbi/JbiExchange.java (original)
+++ activemq/camel/trunk/components/camel-jbi/src/main/java/org/apache/camel/component/jbi/JbiExchange.java Tue Jun 26 03:02:56 2007
@@ -61,6 +61,11 @@
     }
 
     @Override
+    public JbiMessage getOut(boolean lazyCreate) {
+        return (JbiMessage) super.getOut(lazyCreate);
+    }
+
+    @Override
     public JbiMessage getFault() {
         return (JbiMessage) super.getFault();
     }

Modified: activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsExchange.java (original)
+++ activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsExchange.java Tue Jun 26 03:02:56 2007
@@ -52,6 +52,11 @@
     }
 
     @Override
+    public JmsMessage getOut(boolean lazyCreate) {
+        return (JmsMessage) super.getOut(lazyCreate);
+    }
+
+    @Override
     public JmsMessage getFault() {
         return (JmsMessage) super.getFault();
     }

Modified: activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailExchange.java (original)
+++ activemq/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailExchange.java Tue Jun 26 03:02:56 2007
@@ -52,6 +52,11 @@
     }
 
     @Override
+    public MailMessage getOut(boolean lazyCreate) {
+        return (MailMessage) super.getOut(lazyCreate);
+    }
+
+    @Override
     public MailMessage getFault() {
         return (MailMessage) super.getFault();
     }

Modified: activemq/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppExchange.java?view=diff&rev=550760&r1=550759&r2=550760
==============================================================================
--- activemq/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppExchange.java (original)
+++ activemq/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppExchange.java Tue Jun 26 03:02:56 2007
@@ -51,6 +51,11 @@
     }
 
     @Override
+    public XmppMessage getOut(boolean lazyCreate) {
+        return (XmppMessage) super.getOut(lazyCreate);
+    }
+
+    @Override
     public XmppMessage getFault() {
         return (XmppMessage) super.getFault();
     }