You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/03/04 16:35:55 UTC
svn commit: r919025 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/builder/
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/model/ camel-core/src/main/ja...
Author: davsclaus
Date: Thu Mar 4 15:35:54 2010
New Revision: 919025
URL: http://svn.apache.org/viewvc?rev=919025&view=rev
Log:
CAMEL-2523: Added removeHeaders DSL
Added:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java
- copied, changed from r918911, camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeadersTest.java
- copied, changed from r918911, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeaderTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeadersTest.java
- copied, changed from r918911, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeaderTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeaders.xml
- copied, changed from r918911, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeader.xml
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java
camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/Message.java Thu Mar 4 15:35:54 2010
@@ -127,6 +127,14 @@
Object removeHeader(String name);
/**
+ * Removes the headers from this message
+ *
+ * @param pattern pattern of names
+ * @return boolean whether any headers was removed
+ */
+ boolean removeHeaders(String pattern);
+
+ /**
* Returns all of the headers associated with the message
*
* @return all the headers in a Map
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ProcessorBuilder.java Thu Mar 4 15:35:54 2010
@@ -171,6 +171,22 @@
}
/**
+ * Removes the headers on the IN message
+ */
+ public static Processor removeHeaders(final String pattern) {
+ return new Processor() {
+ public void process(Exchange exchange) {
+ exchange.getIn().removeHeaders(pattern);
+ }
+
+ @Override
+ public String toString() {
+ return "removeHeaders(" + pattern + ")";
+ }
+ };
+ }
+
+ /**
* Removes the header on the FAULT message
*/
public static Processor removeFaultHeader(final String name) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java Thu Mar 4 15:35:54 2010
@@ -24,6 +24,7 @@
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.util.EndpointHelper;
import org.apache.camel.util.MessageHelper;
/**
@@ -120,6 +121,22 @@
return headers.remove(name);
}
+ public boolean removeHeaders(String pattern) {
+ if (!hasHeaders()) {
+ return false;
+ }
+
+ boolean matches = false;
+ for (Map.Entry<String, Object> entry : headers.entrySet()) {
+ String key = entry.getKey();
+ if (EndpointHelper.matchPattern(key, pattern)) {
+ matches = true;
+ headers.remove(entry.getKey());
+ }
+ }
+ return matches;
+ }
+
public Map<String, Object> getHeaders() {
if (headers == null) {
headers = createHeaders();
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Thu Mar 4 15:35:54 2010
@@ -2033,6 +2033,19 @@
}
/**
+ * Adds a processor which removes the headers on the IN message
+ *
+ * @param pattern a pattern to match header names to be removed
+ * @return the builder
+ */
+ @SuppressWarnings("unchecked")
+ public Type removeHeaders(String pattern) {
+ RemoveHeadersDefinition answer = new RemoveHeadersDefinition(pattern);
+ addOutput(answer);
+ return (Type) this;
+ }
+
+ /**
* Adds a processor which removes the header on the FAULT message
*
* @param name the header name
Copied: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java (from r918911, camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java?p2=camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java&p1=camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java&r1=918911&r2=919025&rev=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeaderDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RemoveHeadersDefinition.java Thu Mar 4 15:35:54 2010
@@ -27,47 +27,47 @@
import org.apache.camel.util.ObjectHelper;
/**
- * Represents an XML <removeHeader/> element
+ * Represents an XML <removeHeaders/> element
*/
-@XmlRootElement(name = "removeHeader")
+@XmlRootElement(name = "removeHeaders")
@XmlAccessorType(XmlAccessType.FIELD)
-public class RemoveHeaderDefinition extends OutputDefinition<ProcessorDefinition> {
+public class RemoveHeadersDefinition extends OutputDefinition<ProcessorDefinition> {
@XmlAttribute(required = true)
- private String headerName;
-
- public RemoveHeaderDefinition() {
- }
-
- public RemoveHeaderDefinition(String headerName) {
- setHeaderName(headerName);
+ private String pattern;
+
+ public RemoveHeadersDefinition() {
+ }
+
+ public RemoveHeadersDefinition(String pattern) {
+ setPattern(pattern);
}
-
+
@Override
public String toString() {
- return "RemoveHeader[" + getHeaderName() + "]";
+ return "RemoveHeaders[" + getPattern() + "]";
}
@Override
public String getShortName() {
- return "removeHeader";
+ return "removeHeaders";
}
@Override
public String getLabel() {
- return "removeHeader[" + getHeaderName() + "]";
+ return "removeHeaders[" + getPattern() + "]";
}
@Override
public Processor createProcessor(RouteContext routeContext) throws Exception {
- ObjectHelper.notNull(getHeaderName(), "headerName", this);
- return ProcessorBuilder.removeHeader(getHeaderName());
+ ObjectHelper.notNull(getPattern(), "patterns", this);
+ return ProcessorBuilder.removeHeaders(getPattern());
}
- public void setHeaderName(String headerName) {
- this.headerName = headerName;
+ public void setPattern(String pattern) {
+ this.pattern = pattern;
}
- public String getHeaderName() {
- return headerName;
+ public String getPattern() {
+ return pattern;
}
-}
+}
\ No newline at end of file
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java Thu Mar 4 15:35:54 2010
@@ -94,7 +94,7 @@
* <li>otherwise returns false</li>
* </ul>
*
- * @param uri the endpoint uri
+ * @param uri the endpoint uri
* @param pattern a pattern to match
* @return <tt>true</tt> if match, <tt>false</tt> otherwise.
*/
@@ -111,43 +111,57 @@
// try without :// also
String scheme = ObjectHelper.before(uri, "://");
String path = ObjectHelper.after(uri, "://");
- if (doMatchEndpoint(scheme + ":" + path, pattern)) {
+ if (matchPattern(scheme + ":" + path, pattern)) {
return true;
}
} else {
// try with :// also
String scheme = ObjectHelper.before(uri, ":");
String path = ObjectHelper.after(uri, ":");
- if (doMatchEndpoint(scheme + "://" + path, pattern)) {
+ if (matchPattern(scheme + "://" + path, pattern)) {
return true;
}
}
// and fallback to test with the uri as is
- return doMatchEndpoint(uri, pattern);
+ return matchPattern(uri, pattern);
}
-
- private static boolean doMatchEndpoint(String uri, String pattern) {
- if (uri.equals(pattern)) {
+ /**
+ * Matches the name with the given pattern.
+ * <p/>
+ * The match rules are applied in this order:
+ * <ul>
+ * <li>exact match, returns true</li>
+ * <li>wildcard match (pattern ends with a * and the name starts with the pattern), returns true</li>
+ * <li>regular expression match, returns true</li>
+ * <li>otherwise returns false</li>
+ * </ul>
+ *
+ * @param name the name
+ * @param pattern a pattern to match
+ * @return <tt>true</tt> if match, <tt>false</tt> otherwise.
+ */
+ public static boolean matchPattern(String name, String pattern) {
+ if (name.equals(pattern)) {
// exact match
return true;
}
// we have wildcard support in that hence you can match with: file* to match any file endpoints
- if (pattern.endsWith("*") && uri.startsWith(pattern.substring(0, pattern.length() - 1))) {
+ if (pattern.endsWith("*") && name.startsWith(pattern.substring(0, pattern.length() - 1))) {
return true;
}
// match by regular expression
try {
- if (uri.matches(pattern)) {
+ if (name.matches(pattern)) {
return true;
}
} catch (PatternSyntaxException e) {
// ignore
}
-
+
// no match
return false;
}
@@ -155,8 +169,8 @@
/**
* Sets the regular properties on the given bean
*
- * @param context the camel context
- * @param bean the bean
+ * @param context the camel context
+ * @param bean the bean
* @param parameters parameters
* @throws Exception is thrown if setting property fails
*/
@@ -170,8 +184,8 @@
* This is convention over configuration, setting all reference parameters (using {@link #isReferenceParameter(String)}
* by looking it up in registry and setting it on the bean if possible.
*
- * @param context the camel context
- * @param bean the bean
+ * @param context the camel context
+ * @param bean the bean
* @param parameters parameters
* @throws Exception is thrown if setting property fails
*/
@@ -208,17 +222,16 @@
public static boolean isReferenceParameter(String parameter) {
return parameter != null && parameter.trim().startsWith("#");
}
-
+
/**
* Resolves a reference parameter by making a lookup in the registry.
- *
- * @param <T> type of object to lookup.
+ *
+ * @param <T> type of object to lookup.
* @param context Camel context to use for lookup.
- * @param value reference parameter value.
- * @param type type of object to lookup.
- * @return lookup result.
- * @throws IllegalArgumentException if referenced object was not found in
- * registry.
+ * @param value reference parameter value.
+ * @param type type of object to lookup.
+ * @return lookup result.
+ * @throws IllegalArgumentException if referenced object was not found in registry.
*/
public static <T> T resolveReferenceParameter(CamelContext context, String value, Class<T> type) {
return resolveReferenceParameter(context, value, type, true);
@@ -226,15 +239,15 @@
/**
* Resolves a reference parameter by making a lookup in the registry.
- *
- * @param <T> type of object to lookup.
+ *
+ * @param <T> type of object to lookup.
* @param context Camel context to use for lookup.
- * @param value reference parameter value.
- * @param type type of object to lookup.
- * @return lookup result (or <code>null</code> only if
- * <code>mandatory</code> is <code>false</code>).
- * @throws IllegalArgumentException if object was not found in registry and
- * <code>mandatory</code> is <code>true</code>.
+ * @param value reference parameter value.
+ * @param type type of object to lookup.
+ * @return lookup result (or <code>null</code> only if
+ * <code>mandatory</code> is <code>false</code>).
+ * @throws IllegalArgumentException if object was not found in registry and
+ * <code>mandatory</code> is <code>true</code>.
*/
public static <T> T resolveReferenceParameter(CamelContext context, String value, Class<T> type, boolean mandatory) {
String valueNoHash = value.replaceAll("#", "");
@@ -249,20 +262,16 @@
* Resolves a reference list parameter by making lookups in the registry.
* The parameter value must be one of the following:
* <ul>
- * <li>a comma-separated list of references to beans of type T</li>
- * <li>a single reference to a bean type T</li>
- * <li>a single reference to a bean of type java.util.List</li>
+ * <li>a comma-separated list of references to beans of type T</li>
+ * <li>a single reference to a bean type T</li>
+ * <li>a single reference to a bean of type java.util.List</li>
* </ul>
- *
- * @param context
- * Camel context to use for lookup.
- * @param value
- * reference parameter value.
- * @param elementType
- * result list element type.
+ *
+ * @param context Camel context to use for lookup.
+ * @param value reference parameter value.
+ * @param elementType result list element type.
* @return list of lookup results.
- * @throws IllegalArgumentException if any referenced object was not found
- * in registry.
+ * @throws IllegalArgumentException if any referenced object was not found in registry.
*/
@SuppressWarnings("unchecked")
public static <T> List<T> resolveReferenceListParameter(CamelContext context, String value, Class<T> elementType) {
@@ -274,7 +283,7 @@
Object bean = resolveReferenceParameter(context, elements.get(0).trim(), Object.class);
if (bean instanceof List) {
// The bean is a list
- return (List)bean;
+ return (List) bean;
} else {
// The bean is a list element
return Arrays.asList(elementType.cast(bean));
@@ -287,5 +296,5 @@
return result;
}
}
-
+
}
Modified: camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index (original)
+++ camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index Thu Mar 4 15:35:54 2010
@@ -52,6 +52,7 @@
RecipientListDefinition
RedeliveryPolicyDefinition
RemoveHeaderDefinition
+RemoveHeadersDefinition
RemovePropertyDefinition
ResequenceDefinition
RollbackDefinition
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeadersTest.java (from r918911, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeaderTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeadersTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeadersTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeaderTest.java&r1=918911&r2=919025&rev=919025&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeaderTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RemoveHeadersTest.java Thu Mar 4 15:35:54 2010
@@ -16,55 +16,63 @@
*/
package org.apache.camel.processor;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
-public class RemoveHeaderTest extends ContextTestSupport {
- private MockEndpoint end;
- private MockEndpoint mid;
- private String headerName = "foo";
- private String expectedHeaderValue = "bar";
-
- public void testSetHeaderMidRouteThenRemove() throws Exception {
- mid.expectedMessageCount(1);
- end.expectedMessageCount(1);
-
- template.sendBody("direct:start", "<blah/>");
+public class RemoveHeadersTest extends ContextTestSupport {
+
+ public void testRemoveHeadersWildcard() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:end");
+ mock.expectedBodiesReceived("Hello World");
+ mock.expectedHeaderReceived("duck", "Donald");
+
+ Map headers = new HashMap();
+ headers.put("dudeCool", "cool");
+ headers.put("dudeWicket", "wicket");
+ headers.put("duck", "Donald");
+ headers.put("foo", "bar");
+
+ template.sendBodyAndHeaders("direct:start", "Hello World", headers);
- // make sure we got the message
assertMockEndpointsSatisfied();
- List<Exchange> midExchanges = mid.getExchanges();
- Exchange midExchange = midExchanges.get(0);
- String actualHeaderValue = midExchange.getIn().getHeader(headerName, String.class);
-
- assertEquals(expectedHeaderValue, actualHeaderValue);
-
- List<Exchange> endExchanges = end.getExchanges();
- Exchange endExchange = endExchanges.get(0);
-
- // header should be removed
- assertNull(endExchange.getIn().getHeader(headerName, String.class));
+ assertEquals(1, mock.getReceivedExchanges().get(0).getIn().getHeaders().size());
}
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- end = getMockEndpoint("mock:end");
- mid = getMockEndpoint("mock:mid");
+ public void testRemoveHeadersRegEx() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:end");
+ mock.expectedBodiesReceived("Hello World");
+ mock.expectedHeaderReceived("duck", "Donald");
+ mock.expectedHeaderReceived("BeerHeineken", "Good");
+
+ Map headers = new HashMap();
+ headers.put("dudeCool", "cool");
+ headers.put("dudeWicket", "wicket");
+ headers.put("duck", "Donald");
+ headers.put("BeerCarlsberg", "Great");
+ headers.put("BeerTuborg", "Also Great");
+ headers.put("BeerHeineken", "Good");
+
+ template.sendBodyAndHeaders("direct:start", "Hello World", headers);
+
+ assertMockEndpointsSatisfied();
+
+ assertEquals(2, mock.getReceivedExchanges().get(0).getIn().getHeaders().size());
}
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- from("direct:start").
- setHeader(headerName).constant(expectedHeaderValue).to("mock:mid").
- removeHeader(headerName).to("mock:end");
+ from("direct:start")
+ .removeHeaders("dude*")
+ .removeHeaders("Beer(Carlsberg|Tuborg)")
+ .removeHeaders("foo")
+ .to("mock:end");
}
};
}
-}
+}
\ No newline at end of file
Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java (original)
+++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyCallHttpThenExceptionTest.java Thu Mar 4 15:35:54 2010
@@ -20,7 +20,6 @@
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -29,7 +28,6 @@
public class JettyCallHttpThenExceptionTest extends CamelTestSupport {
@Test
- @Ignore
public void testJettyCallHttpThenException() throws Exception {
getMockEndpoint("mock:foo").expectedBodiesReceived("World");
getMockEndpoint("mock:bar").expectedBodiesReceived("Bye World");
@@ -54,23 +52,10 @@
public void configure() throws Exception {
from("jetty://http://localhost:8234/myserver")
.to("log:A")
- .convertBodyTo(String.class)
- .removeHeader(Exchange.HTTP_PATH)
- .removeHeader(Exchange.HTTP_BASE_URI)
- .removeHeader(Exchange.HTTP_RESPONSE_CODE)
- .removeHeader(Exchange.HTTP_CHARACTER_ENCODING)
- .removeHeader(Exchange.HTTP_CHUNKED)
- .removeHeader(Exchange.HTTP_METHOD)
- .removeHeader(Exchange.HTTP_QUERY)
- .removeHeader(Exchange.HTTP_RESPONSE_CODE)
- .removeHeader(Exchange.HTTP_SERVLET_REQUEST)
- .removeHeader(Exchange.HTTP_SERVLET_RESPONSE)
- .removeHeader(Exchange.HTTP_URI)
- .removeHeader(Exchange.HTTP_URL)
- .removeHeader("Content-Length")
+ // remove http headers before and after invoking http service
+ .removeHeaders("CamelHttp*")
.to("http://localhost:8234/other")
- .convertBodyTo(String.class)
- .to("log:B")
+ .removeHeaders("CamelHttp*")
.to("mock:bar")
// now just force an exception immediately
.throwException(new IllegalArgumentException("I cannot do this"));
Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala?rev=919025&r1=919024&r2=919025&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala (original)
+++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/RichMessage.scala Thu Mar 4 15:35:54 2010
@@ -30,6 +30,8 @@
def removeHeader(name: String) = message.removeHeader(name)
+ def removeHeaders(pattern: String) = message.removeHeaders(pattern)
+
def removeAttachment(id: String) = message.removeAttachment(id)
def isFault = message.isFault
Copied: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeadersTest.java (from r918911, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeaderTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeadersTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeadersTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeaderTest.java&r1=918911&r2=919025&rev=919025&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeaderTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRemoveHeadersTest.java Thu Mar 4 15:35:54 2010
@@ -17,12 +17,14 @@
package org.apache.camel.spring.processor;
import org.apache.camel.CamelContext;
-import org.apache.camel.processor.RemoveHeaderTest;
+import org.apache.camel.processor.RemoveHeadersTest;
+
import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-public class SpringRemoveHeaderTest extends RemoveHeaderTest {
+public class SpringRemoveHeadersTest extends RemoveHeadersTest {
+
protected CamelContext createCamelContext() throws Exception {
- return createSpringCamelContext(this,
- "org/apache/camel/spring/processor/removeHeader.xml");
+ return createSpringCamelContext(this, "org/apache/camel/spring/processor/removeHeaders.xml");
}
-}
+
+}
\ No newline at end of file
Copied: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeaders.xml (from r918911, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeader.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeaders.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeaders.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeader.xml&r1=918911&r2=919025&rev=919025&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeader.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/removeHeaders.xml Thu Mar 4 15:35:54 2010
@@ -21,17 +21,18 @@
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
">
- <!-- START SNIPPET: example -->
- <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
- <route>
- <from uri="direct:start"/>
- <setHeader headerName="foo">
- <constant>bar</constant>
- </setHeader>
- <to uri="mock:mid"/>
- <removeHeader headerName="foo"/>
- <to uri="mock:end"/>
- </route>
- </camelContext>
- <!-- END SNIPPET: example -->
+ <!-- START SNIPPET: example -->
+ <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+ <route>
+ <from uri="direct:start"/>
+ <!-- remove all dude headers by wildcard -->
+ <removeHeaders pattern="dude*"/>
+ <!-- remove all Carlsberg or Tuborg headers using reg exp -->
+ <removeHeaders pattern="Beer(Carlsberg|Tuborg)"/>
+ <!-- remove the header with the name foo -->
+ <removeHeaders pattern="foo"/>
+ <to uri="mock:end"/>
+ </route>
+ </camelContext>
+ <!-- END SNIPPET: example -->
</beans>