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 2008/08/05 08:36:30 UTC
svn commit: r682597 - in /activemq/camel/trunk:
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/processor/interceptor/
components/camel-cxf/src/main/java/org/apache/ca...
Author: ningjiang
Date: Mon Aug 4 23:36:26 2008
New Revision: 682597
URL: http://svn.apache.org/viewvc?rev=682597&view=rev
Log:
CAMEL-766 applied the patch with thanks to William
Added:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java (with props)
activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java (with props)
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Debugger.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapComponent.java
activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java
activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.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/HttpPollingConsumer.java
activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
activemq/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcComponent.java
activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java
activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Component.java Mon Aug 4 23:36:26 2008
@@ -16,8 +16,6 @@
*/
package org.apache.camel;
-import org.apache.camel.spi.HeaderFilterStrategy;
-
/**
* A <a href="http://activemq.apache.org/camel/component.html">component</a> is
* a factory of {@link Endpoint} objects.
@@ -49,14 +47,4 @@
*/
Endpoint<E> createEndpoint(String uri) throws Exception;
-
- /**
- * @return strategy object that handles header filter for this component.
- */
- HeaderFilterStrategy getHeaderFilterStrategy();
-
- /**
- * Sets strategy object that handles header filtering for this component.
- */
- void setHeaderFilterStrategy(HeaderFilterStrategy headerFilterStrategy);
}
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java Mon Aug 4 23:36:26 2008
@@ -18,8 +18,6 @@
import java.util.Map;
-import org.apache.camel.spi.HeaderFilterStrategy;
-
/**
* An <a href="http://activemq.apache.org/camel/endpoint.html">endpoint</a>
* implements the <a
@@ -109,11 +107,6 @@
void configureProperties(Map options);
void setCamelContext(CamelContext context);
-
- /**
- * @return the header propagation strategy
- */
- HeaderFilterStrategy getHeaderFilterStrategy();
@Deprecated
CamelContext getContext();
Added: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java?rev=682597&view=auto
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java (added)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java Mon Aug 4 23:36:26 2008
@@ -0,0 +1,33 @@
+/**
+ * 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;
+
+import org.apache.camel.spi.HeaderFilterStrategy;
+
+/**
+ * An interface to represent an object which can make use of
+ * injected {@link HeaderFilterStrategy}.
+ *
+ * @since 1.5
+ * @version $Revision$
+ */
+public interface HeaderFilterStrategyAware {
+
+ HeaderFilterStrategy getHeaderFilterStrategy();
+
+ void setHeaderFilterStrategy(HeaderFilterStrategy strategy);
+}
Propchange: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/HeaderFilterStrategyAware.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java Mon Aug 4 23:36:26 2008
@@ -27,7 +27,6 @@
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.ResolveEndpointFailedException;
-import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.ObjectHelper;
@@ -48,8 +47,7 @@
private int defaultThreadPoolSize = 5;
private CamelContext camelContext;
private ScheduledExecutorService executorService;
- private HeaderFilterStrategy headerFilterStrategy = new DefaultHeaderFilterStrategy();
-
+
public DefaultComponent() {
}
@@ -141,14 +139,6 @@
public void setExecutorService(ScheduledExecutorService executorService) {
this.executorService = executorService;
}
-
- public HeaderFilterStrategy getHeaderFilterStrategy() {
- return headerFilterStrategy;
- }
-
- public void setHeaderFilterStrategy(HeaderFilterStrategy value) {
- headerFilterStrategy = value;
- }
/**
* A factory method to create a default thread pool and executor
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java Mon Aug 4 23:36:26 2008
@@ -29,7 +29,6 @@
import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.PollingConsumer;
-import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.util.ObjectHelper;
/**
@@ -199,11 +198,6 @@
this.endpointUri = endpointUri;
}
- public HeaderFilterStrategy getHeaderFilterStrategy() {
- return component.getHeaderFilterStrategy();
- }
-
-
@Deprecated
public CamelContext getContext() {
return getCamelContext();
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Debugger.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Debugger.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Debugger.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Debugger.java Mon Aug 4 23:36:26 2008
@@ -85,7 +85,7 @@
public void setEnable(boolean flag) {
enabled = flag;
tracer.setEnabled(flag);
- for(DebugInterceptor interceptor : interceptors.values()) {
+ for (DebugInterceptor interceptor : interceptors.values()) {
interceptor.setEnabled(flag);
}
}
@@ -122,7 +122,7 @@
public Processor wrapProcessorInInterceptors(ProcessorType processorType, Processor target) throws Exception {
String id = processorType.idOrCreate();
if (logExchanges) {
- TraceInterceptor traceInterceptor= new TraceInterceptor(processorType, target, tracer);
+ TraceInterceptor traceInterceptor = new TraceInterceptor(processorType, target, tracer);
target = traceInterceptor;
}
DebugInterceptor interceptor = new DebugInterceptor(processorType, target, createExchangeList(), createExceptionsList());
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CamelInvoker.java Mon Aug 4 23:36:26 2008
@@ -24,6 +24,7 @@
import java.util.logging.Logger;
import org.apache.camel.ExchangePattern;
+import org.apache.camel.component.cxf.util.CxfHeaderHelper;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.frontend.MethodDispatcher;
@@ -162,6 +163,9 @@
} else {
cxfExchange.getIn().setHeader(CxfConstants.OPERATION_NAME, m.getName());
}
+
+ CxfHeaderHelper.propagateCxfToCamel(endpoint.getHeaderFilterStrategy(), exchange.getInMessage(),
+ cxfExchange.getIn().getHeaders());
cxfExchange.getIn().setBody(params);
try {
cxfConsumer.getProcessor().process(cxfExchange);
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfBinding.java Mon Aug 4 23:36:26 2008
@@ -22,6 +22,8 @@
import java.util.Map;
import java.util.Set;
+import org.apache.camel.component.cxf.util.CxfHeaderHelper;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.jaxws.support.ContextPropertiesMapping;
@@ -54,17 +56,24 @@
return null;
}
+ /**
+ * @deprecated please use {@link #createCxfMessage(HeaderFilterStrategy, CxfExchange)} instead
+ */
public static Message createCxfMessage(CxfExchange exchange) {
+ return CxfBinding.createCxfMessage(new CxfHeaderFilterStrategy(), exchange);
+ }
+
+ public static Message createCxfMessage(HeaderFilterStrategy strategy, CxfExchange exchange) {
+
Message answer = exchange.getInMessage();
CxfMessage in = exchange.getIn();
+
// Check the body if the POJO parameter list first
Object body = in.getBody(List.class);
if (body instanceof List) {
// just set the operation's parameter
answer.setContent(List.class, body);
- // just set the method name
- answer.put(CxfConstants.OPERATION_NAME, (String)in.getHeader(CxfConstants.OPERATION_NAME));
- answer.put(CxfConstants.OPERATION_NAMESPACE, (String)in.getHeader(CxfConstants.OPERATION_NAMESPACE));
+ CxfHeaderHelper.propagateCamelToCxf(strategy, in.getHeaders(), answer);
} else {
// CXF uses StAX which is based on the stream API to parse the XML,
// so the CXF transport is also based on the stream API.
@@ -74,15 +83,24 @@
if (body instanceof InputStream) {
answer.setContent(InputStream.class, body);
}
+ // TODO do we propagate header the same way in non-POJO mode?
+ // CxfHeaderHelper.propagateCamelToCxf(strategy, in.getHeaders(), answer);
}
return answer;
}
- // Store
+ /**
+ * @deprecated please use {@link #storeCxfResponse(HeaderFilterStrategy, CxfExchange, Message)} instead.
+ */
public static void storeCxfResponse(CxfExchange exchange, Message response) {
- // no need to process headers as we use the CXF message
+ CxfBinding.storeCxfResponse(new CxfHeaderFilterStrategy(), exchange, response);
+ }
+
+ public static void storeCxfResponse(HeaderFilterStrategy strategy, CxfExchange exchange,
+ Message response) {
CxfMessage out = exchange.getOut();
if (response != null) {
+ CxfHeaderHelper.propagateCxfToCamel(strategy, response, out.getHeaders());
out.setMessage(response);
DataFormat dataFormat = (DataFormat) exchange.getProperty(CxfExchange.DATA_FORMAT);
if (dataFormat.equals(DataFormat.MESSAGE)) {
@@ -94,9 +112,19 @@
}
}
- // Copy the Camel message to CXF message
+ /**
+ * @deprecated Please use {@link #copyMessage(HeaderFilterStrategy, org.apache.camel.Message, Message)} instead.
+ */
public static void copyMessage(org.apache.camel.Message camelMessage, org.apache.cxf.message.Message cxfMessage) {
+ CxfBinding.copyMessage(new CxfHeaderFilterStrategy(), camelMessage, cxfMessage);
+ }
+
+ // Copy the Camel message to CXF message
+ public static void copyMessage(HeaderFilterStrategy strategy,
+ org.apache.camel.Message camelMessage, org.apache.cxf.message.Message cxfMessage) {
InputStream is = camelMessage.getBody(InputStream.class);
+
+ CxfHeaderHelper.propagateCamelToCxf(strategy, camelMessage.getHeaders(), cxfMessage);
if (is != null) {
cxfMessage.setContent(InputStream.class, is);
} else {
@@ -117,7 +145,7 @@
response.put(Client.RESPONSE_CONTEXT, context);
}
}
-
+
public static void storeCxfResponse(CxfExchange exchange, Object response) {
CxfMessage out = exchange.getOut();
if (response != null) {
@@ -152,4 +180,5 @@
return responseContext;
}
+
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java Mon Aug 4 23:36:26 2008
@@ -20,7 +20,9 @@
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.spi.HeaderFilterStrategy;
/**
@@ -28,9 +30,11 @@
* @version $Revision$
*/
-public class CxfComponent extends DefaultComponent<CxfExchange> {
+public class CxfComponent extends DefaultComponent<CxfExchange> implements HeaderFilterStrategyAware {
+ private HeaderFilterStrategy headerFilterStrategy = new CxfHeaderFilterStrategy();
+
public CxfComponent() {
}
@@ -47,5 +51,13 @@
return result;
}
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return headerFilterStrategy;
+ }
+
+ public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+ headerFilterStrategy = strategy;
+ }
+
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java Mon Aug 4 23:36:26 2008
@@ -22,6 +22,7 @@
import org.apache.camel.Producer;
import org.apache.camel.component.cxf.spring.CxfEndpointBean;
import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.cxf.configuration.spring.ConfigurerImpl;
import org.apache.cxf.message.Message;
@@ -192,5 +193,8 @@
}
}
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return component.getHeaderFilterStrategy();
+ }
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfMessage.java Mon Aug 4 23:36:26 2008
@@ -16,8 +16,6 @@
*/
package org.apache.camel.component.cxf;
-import java.util.Map;
-
import org.apache.camel.impl.DefaultMessage;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageContentsList;
@@ -84,21 +82,7 @@
public void setMessage(Message cxfMessage) {
this.cxfMessage = cxfMessage;
}
-
- public Object getHeader(String name) {
- return cxfMessage.get(name);
- }
-
- @Override
- public void setHeader(String name, Object value) {
- cxfMessage.put(name, value);
- }
-
- @Override
- public Map<String, Object> getHeaders() {
- return cxfMessage;
- }
-
+
@Override
public CxfMessage newInstance() {
return new CxfMessage();
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfProducer.java Mon Aug 4 23:36:26 2008
@@ -179,7 +179,7 @@
}
public void process(CxfExchange exchange) {
- Message inMessage = CxfBinding.createCxfMessage(exchange);
+ Message inMessage = CxfBinding.createCxfMessage(endpoint.getHeaderFilterStrategy(), exchange);
exchange.setProperty(CxfExchange.DATA_FORMAT, dataFormat);
try {
if (dataFormat.equals(DataFormat.POJO)) {
@@ -189,8 +189,8 @@
if (parameters == null) {
parameters = new ArrayList();
}
- String operationName = (String)inMessage.get(CxfConstants.OPERATION_NAME);
- String operationNameSpace = (String)inMessage.get(CxfConstants.OPERATION_NAMESPACE);
+ String operationName = exchange.getIn().getHeader(CxfConstants.OPERATION_NAME, String.class);
+ String operationNameSpace = exchange.getIn().getHeader(CxfConstants.OPERATION_NAMESPACE, String.class);
// Get context from message
Map<String, Object> context = new HashMap<String, Object>();
Map<String, Object> responseContext = CxfBinding.propogateContext(inMessage, context);
@@ -204,7 +204,7 @@
response.setContent(Object[].class, result);
// copy the response context to the response
CxfBinding.storeCXfResponseContext(response, responseContext);
- CxfBinding.storeCxfResponse(exchange, response);
+ CxfBinding.storeCxfResponse(endpoint.getHeaderFilterStrategy(), exchange, response);
} catch (Exception ex) {
response.setContent(Exception.class, ex);
CxfBinding.storeCxfFault(exchange, response);
@@ -253,7 +253,7 @@
invokingContext.setResponseContent(response, result);
// copy the response context to the response
CxfBinding.storeCXfResponseContext(response, responseContext);
- CxfBinding.storeCxfResponse(exchange, response);
+ CxfBinding.storeCxfResponse(endpoint.getHeaderFilterStrategy(), exchange, response);
} catch (Exception e) {
response.setContent(Exception.class, e);
CxfBinding.storeCxfFault(exchange, response);
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapComponent.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapComponent.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapComponent.java Mon Aug 4 23:36:26 2008
@@ -19,7 +19,9 @@
import java.util.Map;
import org.apache.camel.Endpoint;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.util.CamelContextHelper;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.camel.util.URISupport;
@@ -30,7 +32,9 @@
*
* @version $Revision$
*/
-public class CxfSoapComponent extends DefaultComponent {
+public class CxfSoapComponent extends DefaultComponent implements HeaderFilterStrategyAware {
+
+ private HeaderFilterStrategy headerFilterStrategy;
public CxfSoapComponent() {
setHeaderFilterStrategy(new CxfHeaderFilterStrategy());
@@ -54,4 +58,13 @@
return false;
}
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return headerFilterStrategy;
+ }
+
+ public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+ headerFilterStrategy = strategy;
+
+ }
+
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java Mon Aug 4 23:36:26 2008
@@ -23,6 +23,7 @@
import org.apache.camel.component.cxf.transport.CamelTransportConstants;
import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.cxf.endpoint.Client;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.message.Message;
@@ -64,6 +65,9 @@
if (CamelTransportConstants.CONTENT_TYPE.equals(entry.getKey())) {
message.put(Message.CONTENT_TYPE, entry.getValue());
+ } else if (Client.REQUEST_CONTEXT.equals(entry.getKey())
+ || Client.RESPONSE_CONTEXT.equals(entry.getKey())) {
+ message.put(entry.getKey(), entry.getValue());
} else {
List<String> listValue = new ArrayList<String>();
listValue.add(entry.getValue().toString());
@@ -71,30 +75,45 @@
}
}
}
-
}
-
public static void propagateCxfToCamel(HeaderFilterStrategy strategy,
Message message, Map<String, Object> headers) {
+ if (strategy == null) {
+ return;
+ }
+
Map<String, List<String>> cxfHeaders =
CastUtils.cast((Map)message.get(Message.PROTOCOL_HEADERS));
if (cxfHeaders != null) {
for (Map.Entry<String, List<String>> entry : cxfHeaders.entrySet()) {
- if (strategy != null
- && !strategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue())) {
+ if (!strategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue())) {
headers.put(entry.getKey(), entry.getValue().get(0));
}
}
}
- String contentType = (String) message.get(Message.CONTENT_TYPE);
- if (contentType != null && strategy != null
- && !strategy.applyFilterToExternalHeaders(Message.CONTENT_TYPE, contentType)) {
- headers.put(CamelTransportConstants.CONTENT_TYPE, contentType);
+ // propagate content type
+ String key = Message.CONTENT_TYPE;
+ Object value = message.get(key);
+ if (value != null && !strategy.applyFilterToExternalHeaders(key, value)) {
+ headers.put(CamelTransportConstants.CONTENT_TYPE, value);
}
+ // propagate request context
+ key = Client.REQUEST_CONTEXT;
+ value = message.get(key);
+ if (value != null && !strategy.applyFilterToExternalHeaders(key, value)) {
+ headers.put(key, value);
+ }
+
+ // propagate response context
+ key = Client.RESPONSE_CONTEXT;
+ value = message.get(key);
+ if (value != null && !strategy.applyFilterToExternalHeaders(key, value)) {
+ headers.put(key, value);
+ }
}
}
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java Mon Aug 4 23:36:26 2008
@@ -86,7 +86,6 @@
public void testInvokingSimpleServerWithParams() throws Exception {
-
CxfExchange exchange = sendSimpleMessage();
org.apache.camel.Message out = exchange.getOut();
@@ -96,6 +95,7 @@
assertNotNull(responseContext);
assertEquals("We should get the response context here", "UTF-8", responseContext.get(org.apache.cxf.message.Message.ENCODING));
assertEquals("reply body on Camel", "echo " + TEST_MESSAGE, output[0]);
+
}
Modified: activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java (original)
+++ activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java Mon Aug 4 23:36:26 2008
@@ -20,8 +20,10 @@
import java.util.Map;
import org.apache.camel.Endpoint;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.ResolveEndpointFailedException;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.util.IntrospectionSupport;
import org.apache.commons.httpclient.HttpConnectionManager;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
@@ -33,12 +35,14 @@
*
* @version $Revision$
*/
-public class HttpComponent extends DefaultComponent<HttpExchange> {
+public class HttpComponent extends DefaultComponent<HttpExchange> implements HeaderFilterStrategyAware {
private HttpClientConfigurer httpClientConfigurer;
private HttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
+ private HeaderFilterStrategy headerFilterStrategy;
+
public HttpComponent() {
this.setHeaderFilterStrategy(new HttpHeaderFilterStrategy());
}
@@ -96,4 +100,13 @@
protected boolean useIntrospectionOnEndpoint() {
return false;
}
+
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return headerFilterStrategy;
+ }
+
+ public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+ headerFilterStrategy = strategy;
+
+ }
}
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?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- 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 Mon Aug 4 23:36:26 2008
@@ -26,6 +26,7 @@
import org.apache.camel.PollingConsumer;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultPollingEndpoint;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpConnectionManager;
import org.apache.commons.httpclient.params.HttpClientParams;
@@ -141,6 +142,10 @@
return binding;
}
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return component.getHeaderFilterStrategy();
+ }
+
public void setBinding(HttpBinding binding) {
this.binding = binding;
}
Modified: activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java (original)
+++ activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpPollingConsumer.java Mon Aug 4 23:36:26 2008
@@ -70,7 +70,7 @@
// lets set the headers
Header[] headers = method.getResponseHeaders();
- HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy();
+ HeaderFilterStrategy strategy = endpoint.getHeaderFilterStrategy();
for (Header header : headers) {
String name = header.getName();
String value = header.getValue();
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?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- 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 Mon Aug 4 23:36:26 2008
@@ -63,7 +63,7 @@
HttpMethod method = createMethod(exchange);
Message in = exchange.getIn();
HttpBinding binding = ((HttpEndpoint)getEndpoint()).getBinding();
- HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy();
+ HeaderFilterStrategy strategy = ((HttpEndpoint)getEndpoint()).getHeaderFilterStrategy();
// propagate headers as HTTP headers
for (String headerName : in.getHeaders().keySet()) {
Modified: activemq/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java (original)
+++ activemq/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java Mon Aug 4 23:36:26 2008
@@ -129,7 +129,7 @@
}
// propagate headers to http request
- HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy();
+ HeaderFilterStrategy strategy = ((HttpEndpoint)getEndpoint()).getHeaderFilterStrategy();
for (String name : in.getHeaders().keySet()) {
String value = in.getHeader(name, String.class);
if ("Content-Type".equals(name)) {
Modified: activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcComponent.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcComponent.java (original)
+++ activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcComponent.java Mon Aug 4 23:36:26 2008
@@ -20,8 +20,10 @@
import java.util.Map;
import org.apache.camel.Endpoint;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.impl.DefaultComponent;
import org.apache.camel.impl.DefaultHeaderFilterStrategy;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.params.BasicHttpParams;
@@ -29,24 +31,17 @@
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
-public class JhcComponent extends DefaultComponent<JhcExchange> {
+public class JhcComponent extends DefaultComponent<JhcExchange> implements HeaderFilterStrategyAware {
private static final Log LOG = LogFactory.getLog(JhcComponent.class);
private HttpParams params;
+ private HeaderFilterStrategy headerFilterStrategy;
+
public JhcComponent() {
- // We could import filters from http component but that also means
- // a new dependency on camel-http
- DefaultHeaderFilterStrategy strategy = new DefaultHeaderFilterStrategy();
- strategy.getOutFilter().add("content-length");
- strategy.getOutFilter().add("content-type");
- strategy.getOutFilter().add(JhcProducer.HTTP_RESPONSE_CODE);
- strategy.setIsLowercase(true);
-
- // filter headers begin with "org.apache.camel"
- strategy.setOutFilterPattern("(org\\.apache\\.camel)[\\.|a-z|A-z|0-9]*");
- setHeaderFilterStrategy(strategy);
+
+ setHeaderFilterStrategy(new JhcHeaderFilterStrategy());
params = new BasicHttpParams(null)
.setIntParameter(HttpConnectionParams.SO_TIMEOUT, 5000)
@@ -69,4 +64,12 @@
return new JhcEndpoint(uri, this, new URI(uri.substring(uri.indexOf(':') + 1)));
}
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return headerFilterStrategy;
+ }
+
+ public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+ headerFilterStrategy = strategy;
+ }
+
}
Modified: activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java (original)
+++ activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcEndpoint.java Mon Aug 4 23:36:26 2008
@@ -19,9 +19,11 @@
import java.net.URI;
import org.apache.camel.Consumer;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
@@ -99,4 +101,12 @@
public Consumer<JhcExchange> createConsumer(Processor processor) throws Exception {
return new JhcConsumer(this, processor);
}
+
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ if (getComponent() instanceof HeaderFilterStrategyAware) {
+ return ((HeaderFilterStrategyAware)getComponent()).getHeaderFilterStrategy();
+ } else {
+ return new JhcHeaderFilterStrategy();
+ }
+ }
}
Added: activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java?rev=682597&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java (added)
+++ activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java Mon Aug 4 23:36:26 2008
@@ -0,0 +1,42 @@
+/**
+ * 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.jhc;
+
+import org.apache.camel.impl.DefaultHeaderFilterStrategy;
+
+/**
+ *
+ * @version $Revision$
+ */
+public class JhcHeaderFilterStrategy extends DefaultHeaderFilterStrategy {
+
+ public JhcHeaderFilterStrategy() {
+ initialize();
+ }
+
+ protected void initialize() {
+ // We could import filters from http component but that also means
+ // a new dependency on camel-http
+ getOutFilter().add("content-length");
+ getOutFilter().add("content-type");
+ getOutFilter().add(JhcProducer.HTTP_RESPONSE_CODE);
+ setIsLowercase(true);
+
+ // filter headers begin with "org.apache.camel"
+ setOutFilterPattern("(org\\.apache\\.camel)[\\.|a-z|A-z|0-9]*");
+ }
+}
Propchange: activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcHeaderFilterStrategy.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java (original)
+++ activemq/camel/trunk/components/camel-jhc/src/main/java/org/apache/camel/component/jhc/JhcProducer.java Mon Aug 4 23:36:26 2008
@@ -157,7 +157,7 @@
}
// propagate headers as HTTP headers
- HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy();
+ 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)) {
Modified: activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java (original)
+++ activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java Mon Aug 4 23:36:26 2008
@@ -24,8 +24,10 @@
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.component.jms.requestor.Requestor;
import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.util.ObjectHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -47,7 +49,8 @@
*
* @version $Revision:520964 $
*/
-public class JmsComponent extends DefaultComponent<JmsExchange> implements ApplicationContextAware {
+public class JmsComponent extends DefaultComponent<JmsExchange> implements ApplicationContextAware,
+ HeaderFilterStrategyAware {
private static final transient Log LOG = LogFactory.getLog(JmsComponent.class);
private static final String DEFAULT_QUEUE_BROWSE_STRATEGY = "org.apache.camel.component.jms.DefaultQueueBrowseStrategy";
@@ -56,6 +59,7 @@
private Requestor requestor;
private QueueBrowseStrategy queueBrowseStrategy;
private boolean attemptedToCreateQueueBrowserStrategy;
+ private HeaderFilterStrategy headerFilterStrategy;
public JmsComponent() {
setHeaderFilterStrategy(new JmsHeaderFilterStrategy());
@@ -445,4 +449,13 @@
return (QueueBrowseStrategy)ObjectHelper.newInstance(type);
}
}
+
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return headerFilterStrategy;
+ }
+
+ public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+ this.headerFilterStrategy = strategy;
+
+ }
}
Modified: activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java (original)
+++ activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java Mon Aug 4 23:36:26 2008
@@ -21,10 +21,12 @@
import javax.jms.TemporaryTopic;
import org.apache.camel.ExchangePattern;
+import org.apache.camel.HeaderFilterStrategyAware;
import org.apache.camel.PollingConsumer;
import org.apache.camel.Processor;
import org.apache.camel.component.jms.requestor.Requestor;
import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.HeaderFilterStrategy;
import org.springframework.jms.core.JmsOperations;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.listener.AbstractMessageListenerContainer;
@@ -258,4 +260,13 @@
}
}
}
+
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ if (getComponent() instanceof HeaderFilterStrategyAware) {
+ return ((HeaderFilterStrategyAware)getComponent()).getHeaderFilterStrategy();
+ } else {
+ return new JmsHeaderFilterStrategy();
+ }
+ }
+
}
Modified: activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java?rev=682597&r1=682596&r2=682597&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java (original)
+++ activemq/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsHeaderFilteringTest.java Mon Aug 4 23:36:26 2008
@@ -76,15 +76,13 @@
camelContext.addComponent(componentName, jmsComponentClientAcknowledge(connectionFactory));
// add "testheader" to in filter set
- ((DefaultHeaderFilterStrategy)camelContext.getComponent(componentName)
- .getHeaderFilterStrategy()).getInFilter().add("testheader");
+ JmsComponent component = (JmsComponent)camelContext.getComponent(componentName);
+ ((DefaultHeaderFilterStrategy)component.getHeaderFilterStrategy()).getInFilter().add("testheader");
// add "anotherheader" to out filter set
- ((DefaultHeaderFilterStrategy)camelContext.getComponent(componentName)
- .getHeaderFilterStrategy()).getOutFilter().add("anotherheader");
+ ((DefaultHeaderFilterStrategy)component.getHeaderFilterStrategy()).getOutFilter().add("anotherheader");
// add a regular expression pattern filter
// notice that dots are encoded to underscores in jms headers
- ((DefaultHeaderFilterStrategy)camelContext.getComponent(componentName)
- .getHeaderFilterStrategy()).setInFilterPattern(IN_FILTER_PATTERN);
+ ((DefaultHeaderFilterStrategy)component.getHeaderFilterStrategy()).setInFilterPattern(IN_FILTER_PATTERN);
return camelContext;
}