camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Kettelerij (JIRA)" <>
Subject [jira] Updated: (CAMEL-3429) Extend DSL with more header filtering constructs
Date Sat, 01 Jan 2011 21:35:45 GMT


Richard Kettelerij updated CAMEL-3429:

    Attachment: remove-headers-camel-core-v2.patch

@Claus, see refined patch.

This patch add a new {{removeHeaders(pattern, exceptionPatterns)}} method as discussed. So
it's just one new method now instead of three in my original patch. I did make the {{exceptionPatterns}}
a vararg however. Not for the purpose of making it optional (which is somewhat a trick indeed)
but simply because there are cases that require multiple header names to be preserved. So
now you can write:

{{from(...).removeHeaders("*", "http*").to(...)}}

as well as:

{{from(...).removeHeaders("*", "fish", "chips", "cheese").to(...)}}

I've also updated the JAXB model for the Spring DSL.

> Extend DSL with more header filtering constructs
> ------------------------------------------------
>                 Key: CAMEL-3429
>                 URL:
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.5.0
>            Reporter: Richard Kettelerij
>             Fix For: 2.6.0
>         Attachments: remove-headers-camel-core-v2.patch, remove-headers-camel-core.patch
> Currently the DSL offers the following methods:
> - {{removeHeader(name)}} which removes a single header
> - {{removeHeaders(pattern)}} remove one or more headers based on a pattern (since 2.3)
> The attached patch extends the DSL with the following methods:
> - {{removeHeaders(name...)}} removes the headers in the given a vararg parameter. 
> - {{removeHeadersExcept(pattern)}} removes all headers except for the ones matching the
given pattern (opposite of {{removeHeaders(pattern)}})
> - {{removeHeadersExcept(name...)}} removes all headers except for the ones in the given
vararg parameter (opposite of {{removeHeaders(name)}})
> The rationale for the removeHeadersExcept() method is that in many cases you want to
take a _defensive_ approach with regard to header propagation.
> Sometimes you may want to remove _every_ header on the current message, in that case
just call removeHeadersExcept() with no arguments.
> In other cases you want to propagate only the "id" header received through the servlet/jetty
component (as a query parameter). In that case call
> removeHeadersExcept("id") to preserve the "id" header, while preventing other query parameters
(and standard HTTP headers) to flow down your route.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message