You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by tt...@apache.org on 2007/04/27 15:00:20 UTC

svn commit: r533084 - in /incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http: ./ processors/

Author: tterm
Date: Fri Apr 27 06:00:19 2007
New Revision: 533084

URL: http://svn.apache.org/viewvc?view=rev&rev=533084
Log:
SM-795 HTTP headers attached as properties may cause requests to fail

Modified:
    incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java
    incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfigurationMBean.java
    incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java
    incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java

Modified: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java?view=diff&rev=533084&r1=533083&r2=533084
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java (original)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfiguration.java Fri Apr 27 06:00:19 2007
@@ -119,6 +119,13 @@
     private int proxyPort;
 
     /**
+     * This field is used to decide if the http prover processor can copy the http headers from the http response
+     * into the exchange as property. Be careful if the headers will be used for a new http reuquest, it leads to an
+     * error.
+     */
+    private boolean wantHeadersFromHttpIntoExchange;
+
+    /**
      * @return Returns the rootDir.
      * @org.apache.xbean.Property hidden="true"
      */
@@ -362,6 +369,23 @@
         save();
     }
 
+    /**
+     *
+     * @return Returns the it the http headers will be copied into the exchange
+     */
+    public boolean isWantHeadersFromHttpIntoExchange() {
+        return wantHeadersFromHttpIntoExchange;
+    }
+
+    /**
+     *
+     * @param wantHeadersFromHttpIntoExchange true if the headers should be copied into the exchange
+     */
+    public void setWantHeadersFromHttpIntoExchange(boolean wantHeadersFromHttpIntoExchange) {
+        this.wantHeadersFromHttpIntoExchange = wantHeadersFromHttpIntoExchange;
+    }
+
+
     public void save() {
         setProperty(componentName + ".jettyThreadPoolSize", Integer.toString(jettyThreadPoolSize));
         setProperty(componentName + ".jettyConnectorClassName", jettyConnectorClassName);
@@ -376,6 +400,7 @@
         setProperty(componentName + ".retryCount", Integer.toString(retryCount));
         setProperty(componentName + ".proxyHost", proxyHost);
         setProperty(componentName + ".proxyPort", Integer.toString(proxyPort));
+        setProperty(componentName + ".wantHeadersFromHttpIntoExchange", Boolean.toString(wantHeadersFromHttpIntoExchange));
         if (rootDir != null) {
             File f = new File(rootDir, CONFIG_FILE);
             try {
@@ -459,6 +484,10 @@
         }
         if (properties.getProperty(componentName + ".proxyPort") != null) {
             proxyPort = Integer.parseInt(properties.getProperty(componentName + ".proxyPort"));
+        }
+        if (properties.getProperty(componentName + ".wantHeadersFromHttpIntoExchange") != null) {
+            wantHeadersFromHttpIntoExchange =
+                    Boolean.valueOf(properties.getProperty(componentName + ".wantHeadersFromHttpIntoExchange")).booleanValue();
         }
         return true;
     }

Modified: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfigurationMBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfigurationMBean.java?view=diff&rev=533084&r1=533083&r2=533084
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfigurationMBean.java (original)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/HttpConfigurationMBean.java Fri Apr 27 06:00:19 2007
@@ -70,4 +70,8 @@
 
     void setProxyPort(int name);
 
+    boolean isWantHeadersFromHttpIntoExchange();
+
+    void setWantHeadersFromHttpIntoExchange(boolean wantHeadersFromHttpIntoExchange);
+    
 }

Modified: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java?view=diff&rev=533084&r1=533083&r2=533084
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java (original)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java Fri Apr 27 06:00:19 2007
@@ -149,7 +149,9 @@
                 request.setAttribute(Context.class.getName(), ctx);
                 exchange = soapHelper.onReceive(ctx);
                 NormalizedMessage inMessage = exchange.getMessage("in");
-                inMessage.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(request));
+                if (getConfiguration().isWantHeadersFromHttpIntoExchange()) {
+                    inMessage.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(request));
+                }
                 locks.put(exchange.getExchangeId(), cont);
                 request.setAttribute(MessageExchange.class.getName(), exchange.getExchangeId());
                 synchronized (cont) {

Modified: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java?view=diff&rev=533084&r1=533083&r2=533084
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java (original)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-http/src/main/java/org/apache/servicemix/http/processors/ProviderProcessor.java Fri Apr 27 06:00:19 2007
@@ -216,7 +216,9 @@
                                       method.getResponseHeader(HEADER_CONTENT_TYPE).getValue());
             context.setOutMessage(soapMessage);
             soapHelper.onAnswer(context);
-            msg.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(method));
+            if (getConfiguration().isWantHeadersFromHttpIntoExchange()) {
+                msg.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(method));
+            }
             soapHelper.getJBIMarshaler().toNMS(msg, soapMessage);
             ((InOptionalOut) exchange).setOutMessage(msg);
             if (txSync) {
@@ -238,7 +240,9 @@
         SoapMessage soapMessage = reader.read(method.getResponseBodyAsStream(), contentType != null ? contentType.getValue() : null);
         context.setOutMessage(soapMessage);
         soapHelper.onAnswer(context);
-        msg.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(method));
+        if (getConfiguration().isWantHeadersFromHttpIntoExchange()) {
+            msg.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(method));
+        }
         soapHelper.getJBIMarshaler().toNMS(msg, soapMessage);
         ((InOut) exchange).setOutMessage(msg);
         if (txSync) {