You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by wt...@apache.org on 2009/03/26 03:42:13 UTC

svn commit: r758505 [2/2] - in /camel/trunk: camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/spi/ components/camel-cxf/ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/ components/camel-cxf/sr...

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/DefaultHttpBinding.java Thu Mar 26 02:42:05 2009
@@ -25,6 +25,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.component.http.helper.GZIPHelper;
 import org.apache.camel.spi.HeaderFilterStrategy;
@@ -56,7 +57,7 @@
         if (exchange.isFailed()) {
             Message fault = exchange.getFault(false);
             if (fault != null) {
-                doWriteFaultResponse(fault, response);
+                doWriteFaultResponse(fault, response, exchange);
             } else {
                 doWriteExceptionResponse(exchange.getException(), response);
             }
@@ -65,7 +66,7 @@
             copyProtocolHeaders(exchange.getIn(), exchange.getOut());
             Message out = exchange.getOut();            
             if (out != null) {
-                doWriteResponse(out, response);
+                doWriteResponse(out, response, exchange);
             }
         }
     }
@@ -88,11 +89,11 @@
         pw.flush();
     }
 
-    public void doWriteFaultResponse(Message message, HttpServletResponse response) throws IOException {
-        doWriteResponse(message, response);
+    public void doWriteFaultResponse(Message message, HttpServletResponse response, Exchange exchange) throws IOException {
+        doWriteResponse(message, response, exchange);
     }
 
-    public void doWriteResponse(Message message, HttpServletResponse response) throws IOException {
+    public void doWriteResponse(Message message, HttpServletResponse response, Exchange exchange) throws IOException {
         // set the status code in the response. Default is 200.
         if (message.getHeader(HttpConstants.HTTP_RESPONSE_CODE) != null) {
             int code = message.getHeader(HttpConstants.HTTP_RESPONSE_CODE, Integer.class);
@@ -108,7 +109,7 @@
         for (String key : message.getHeaders().keySet()) {
             String value = message.getHeader(key, String.class);
             if (headerFilterStrategy != null
-                    && !headerFilterStrategy.applyFilterToCamelHeaders(key, value)) {
+                    && !headerFilterStrategy.applyFilterToCamelHeaders(key, value, exchange)) {
                 response.setHeader(key, value);
             }
         }
@@ -186,4 +187,5 @@
     public void setHeaderFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
         this.headerFilterStrategy = headerFilterStrategy;
     }
+
 }

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpBinding.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpBinding.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpBinding.java Thu Mar 26 02:42:05 2009
@@ -20,6 +20,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.spi.HeaderFilterStrategy;
 
@@ -79,19 +80,21 @@
      * Strategy method that writes the response to the http response stream for a fault message
      *
      * @param message  the fault message
-     * @param response   the http response
+     * @param response the http response
+     * @param exchange the exchange to provide context for header filtering
      * @throws java.io.IOException can be thrown from http response
      */
-    void doWriteFaultResponse(Message message, HttpServletResponse response) throws IOException;
+    void doWriteFaultResponse(Message message, HttpServletResponse response, Exchange exchange) throws IOException;
 
     /**
      * Strategy method that writes the response to the http response stream for an OUT message
      *
      * @param message  the OUT message
-     * @param response   the http response
+     * @param response the http response
+     * @param exchange the exchange to provide context for header filtering
      * @throws java.io.IOException can be thrown from http response
      */
-    void doWriteResponse(Message message, HttpServletResponse response) throws IOException;
+    void doWriteResponse(Message message, HttpServletResponse response, Exchange exchange) throws IOException;
 
     boolean isUseReaderForPayload();
 

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java Thu Mar 26 02:42:05 2009
@@ -78,7 +78,7 @@
             for (Header header : headers) {
                 String name = header.getName();
                 String value = header.getValue();
-                if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value)) {
+                if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value, exchange)) {
                     message.setHeader(name, value);
                 }
             }

Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java (original)
+++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java Thu Mar 26 02:42:05 2009
@@ -58,7 +58,7 @@
         // propagate headers as HTTP headers
         for (String headerName : in.getHeaders().keySet()) {
             String headerValue = in.getHeader(headerName, String.class);
-            if (strategy != null && !strategy.applyFilterToCamelHeaders(headerName, headerValue)) {
+            if (strategy != null && !strategy.applyFilterToCamelHeaders(headerName, headerValue, exchange)) {
                 method.addRequestHeader(headerName, headerValue);
             }
         }
@@ -85,7 +85,7 @@
                 for (Header header : headers) {
                     String name = header.getName();
                     String value = header.getValue();
-                    if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value)) {
+                    if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value, exchange)) {
                         answer.setHeader(name, value);
                     }
                 }

Modified: camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java (original)
+++ camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java Thu Mar 26 02:42:05 2009
@@ -157,7 +157,7 @@
         HeaderFilterStrategy strategy = ((JhcEndpoint)getEndpoint()).getHeaderFilterStrategy();
         for (String headerName : exchange.getIn().getHeaders().keySet()) {
             String headerValue = exchange.getIn().getHeader(headerName, String.class);
-            if (strategy != null && !strategy.applyFilterToCamelHeaders(headerName, headerValue)) {
+            if (strategy != null && !strategy.applyFilterToCamelHeaders(headerName, headerValue, exchange)) {
                 req.addHeader(headerName, headerValue);
             }
         }
@@ -251,7 +251,7 @@
             HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy();
             for (Iterator it = httpResponse.headerIterator(); it.hasNext();) {
                 Header h = (Header) it.next();
-                if (strategy != null && !strategy.applyFilterToExternalHeaders(h.getName(), h.getValue())) {
+                if (strategy != null && !strategy.applyFilterToExternalHeaders(h.getName(), h.getValue(), e)) {
                     e.getOut().setHeader(h.getName(), h.getValue());
                 }
             }

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java Thu Mar 26 02:42:05 2009
@@ -115,7 +115,7 @@
         }
     }
 
-    public Map<String, Object> extractHeadersFromJms(Message jmsMessage) {
+    public Map<String, Object> extractHeadersFromJms(Message jmsMessage, Exchange exchange) {
         Map<String, Object> map = new HashMap<String, Object>();
         if (jmsMessage != null) {
             // lets populate the standard JMS message headers
@@ -147,7 +147,8 @@
                 String name = names.nextElement().toString();
                 try {
                     Object value = jmsMessage.getObjectProperty(name);
-                    if (headerFilterStrategy != null && headerFilterStrategy.applyFilterToExternalHeaders(name, value)) {
+                    if (headerFilterStrategy != null && 
+                        headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) {
                         continue;
                     }
 
@@ -267,7 +268,7 @@
                 // JMSMessageID, JMSTimestamp, JMSRedelivered
                 LOG.debug("Ignoring JMS header: " + headerName + " with value: " + headerValue);
             }
-        } else if (shouldOutputHeader(in, headerName, headerValue)) {
+        } else if (shouldOutputHeader(in, headerName, headerValue, exchange)) {
             // only primitive headers and strings is allowed as properties
             // see message properties: http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Message.html
             Object value = getValidJMSHeaderValue(headerName, headerValue);
@@ -436,10 +437,10 @@
      * <b>Note</b>: Currently only supports sending java identifiers as keys
      */
     protected boolean shouldOutputHeader(org.apache.camel.Message camelMessage, String headerName,
-                                         Object headerValue) {
+                                         Object headerValue, Exchange exchange) {
 
         return headerFilterStrategy == null
-            || !headerFilterStrategy.applyFilterToCamelHeaders(headerName, headerValue);
+            || !headerFilterStrategy.applyFilterToCamelHeaders(headerName, headerValue, exchange);
     }
 
 }

Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java (original)
+++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java Thu Mar 26 02:42:05 2009
@@ -155,7 +155,7 @@
     @Override
     protected void populateInitialHeaders(Map<String, Object> map) {
         if (jmsMessage != null && map != null) {
-            map.putAll(getBinding().extractHeadersFromJms(jmsMessage));
+            map.putAll(getBinding().extractHeadersFromJms(jmsMessage, getExchange()));
         }
     }
 

Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java (original)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java Thu Mar 26 02:42:05 2009
@@ -124,7 +124,7 @@
             Object headerValue = entry.getValue();
             if (headerValue != null) {
                 if (headerFilterStrategy != null
-                        && !headerFilterStrategy.applyFilterToCamelHeaders(headerName, headerValue)) {
+                        && !headerFilterStrategy.applyFilterToCamelHeaders(headerName, headerValue, exchange)) {
 
                     if (isRecipientHeader(headerName)) {
                         // skip any recipients as they are handled specially
@@ -232,7 +232,7 @@
         return true;
     }
 
-    protected Map<String, Object> extractHeadersFromMail(Message mailMessage) throws MessagingException {
+    protected Map<String, Object> extractHeadersFromMail(Message mailMessage, Exchange exchange) throws MessagingException {
         Map<String, Object> answer = new HashMap<String, Object>();
         Enumeration names = mailMessage.getAllHeaders();
 
@@ -240,7 +240,7 @@
             Header header = (Header)names.nextElement();
             String[] value = mailMessage.getHeader(header.getName());
             if (headerFilterStrategy != null
-                    && !headerFilterStrategy.applyFilterToExternalHeaders(header.getName(), value)) {
+                    && !headerFilterStrategy.applyFilterToExternalHeaders(header.getName(), value, exchange)) {
                 // toLowerCase() for doing case insensitive search
                 if (value.length == 1) {
                     CollectionHelper.appendValue(answer, header.getName().toLowerCase(), value[0]);

Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java (original)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailMessage.java Thu Mar 26 02:42:05 2009
@@ -103,7 +103,7 @@
     protected void populateInitialHeaders(Map<String, Object> map) {
         if (mailMessage != null) {
             try {
-                map.putAll(getExchange().getBinding().extractHeadersFromMail(mailMessage));
+                map.putAll(getExchange().getBinding().extractHeadersFromMail(mailMessage, getExchange()));
             } catch (MessagingException e) {
                 throw new RuntimeCamelException("Error accessing headers due to: " + e.getMessage(), e);
             }

Modified: camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java (original)
+++ camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java Thu Mar 26 02:42:05 2009
@@ -62,7 +62,7 @@
         // extract headers from restlet 
         for (Map.Entry<String, Object> entry : request.getAttributes().entrySet()) {
             if (!headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), 
-                    entry.getValue())) {
+                    entry.getValue(), exchange)) {
                 
                 inMessage.setHeader(entry.getKey(), entry.getValue());
                 if (LOG.isDebugEnabled()) {
@@ -95,7 +95,7 @@
                     }
                 } else {
                     if (!headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(),
-                            entry.getValue())) {
+                            entry.getValue(), exchange)) {
 
                         inMessage.setHeader(entry.getKey(), entry.getValue());
                         if (LOG.isDebugEnabled()) {
@@ -138,7 +138,7 @@
         }
         
         for (Map.Entry<String, Object> entry : exchange.getIn().getHeaders().entrySet()) {
-            if (!headerFilterStrategy.applyFilterToCamelHeaders(entry.getKey(), entry.getValue())) {
+            if (!headerFilterStrategy.applyFilterToCamelHeaders(entry.getKey(), entry.getValue(), exchange)) {
                 if (entry.getKey().startsWith("org.restlet.")) {
                     // put the org.restlet headers in attributes
                     request.getAttributes().put(entry.getKey(), entry.getValue());
@@ -202,7 +202,7 @@
         }
 
         for (Map.Entry<String, Object> entry : out.getHeaders().entrySet()) {
-            if (!headerFilterStrategy.applyFilterToCamelHeaders(entry.getKey(), entry.getValue())) {
+            if (!headerFilterStrategy.applyFilterToCamelHeaders(entry.getKey(), entry.getValue(), exchange)) {
                 response.getAttributes().put(entry.getKey(), entry.getValue());
                 if (LOG.isDebugEnabled()) {
                     LOG.debug("Populate Restlet response from exchange header: " 
@@ -233,7 +233,7 @@
     public void populateExchangeFromRestletResponse(Exchange exchange, Response response) throws IOException {
         
         for (Map.Entry<String, Object> entry : response.getAttributes().entrySet()) {
-            if (!headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue())) {
+            if (!headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), exchange)) {
                 exchange.getOut().setHeader(entry.getKey(), entry.getValue());
                 if (LOG.isDebugEnabled()) {
                     LOG.debug("Populate exchange from Restlet response header: " 

Modified: camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java (original)
+++ camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppBinding.java Thu Mar 26 02:42:05 2009
@@ -55,7 +55,7 @@
         for (Map.Entry<String, Object> entry : entries) {
             String name = entry.getKey();
             Object value = entry.getValue();
-            if (!headerFilterStrategy.applyFilterToCamelHeaders(name, value)) {
+            if (!headerFilterStrategy.applyFilterToCamelHeaders(name, value, exchange)) {
                 message.setProperty(name, value);
             }
         }
@@ -73,13 +73,13 @@
         return message.getBody();
     }
 
-    public Map<String, Object> extractHeadersFromXmpp(Message xmppMessage) {
+    public Map<String, Object> extractHeadersFromXmpp(Message xmppMessage, Exchange exchange) {
         Map<String, Object> answer = new HashMap<String, Object>();
 
         for (String name : xmppMessage.getPropertyNames()) {
             Object value = xmppMessage.getProperty(name);
 
-            if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value)) {
+            if (!headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) {
                 answer.put(name, value);
             }
         }

Modified: camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java?rev=758505&r1=758504&r2=758505&view=diff
==============================================================================
--- camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java (original)
+++ camel/trunk/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppMessage.java Thu Mar 26 02:42:05 2009
@@ -79,7 +79,7 @@
     @Override
     protected void populateInitialHeaders(Map<String, Object> map) {
         if (xmppMessage != null) {
-            map.putAll(getExchange().getBinding().extractHeadersFromXmpp(xmppMessage));
+            map.putAll(getExchange().getBinding().extractHeadersFromXmpp(xmppMessage, getExchange()));
         }
     }
 }