put the <to> before the closing </filter> tag...

_______________
Ben O'Day

On Apr 23, 2011, at 5:39 AM, Mark Doyle <markjohndo...@googlemail.com> wrote:

> Hi all,
> I'm having a little trouble with a dynamically filtered route.
> My route is defined in Spring as follows:
> <!--The came route used to retrieve packets for the gui. Can be altered -->
>     <camelContext id="camelContextBean"
> xmlns="http://camel.apache.org/schema/spring";>
>         <route id="fromJmsProcessedParametersOut" autoStartup="false">
>             <from uri="jms:topic:processedParametersOut" />
>                 <camel:filter>
>                     <camel:method bean="parameterFilterer"></camel:method>
>                 </camel:filter>
>             <to uri="bean:camelParameterProvider?method=parameterIn" />
>         </route>
>     </camelContext>
>
> The filter bean has a method called matches which is being called by
> camel. The method is as follows:
>
> public final boolean matches(@Header("ParameterName") final String
> headerParameterName) {
>    boolean result = false;
>
>    if (this.parameterNames == null) {
>        result = true;
>    }
>    else if (parameterNames.size() > 0) {
>        for (String parameterName : parameterNames) {
>            System.out.println(parameterName + " : " + headerParameterName);
>            // if the filter name matches the parameter in this message header
>            if (StringUtils.equals(parameterName, headerParameterName)) {
>                System.out.println("Filter match for " + parameterName
> + " : " + headerParameterName);
>                result = true;
>            }
>        }
>    }
>
>    System.out.println("Returning " + result);
>    return result;
> }
>
>
> Now, according to the System outs the returns are correct. If I change
> the parameterNames Set at runtime the filter processes the list and
> returns the correct true or false flag. The problem is that Camel
> still routes every message.
>
> Can anybody see any reason why this design will not work or whether
> I've missed something in implementing it.
>
> Thanks!

Reply via email to