Hello together,

i want to use a own headerFilterStrategy on my own Component extends from
http4.

So I create this class:
public class DefaultHeaderFilterStrategy extends HttpHeaderFilterStrategy {
        
        public DefaultHeaderFilterStrategy() {
                super();
                getOutFilter().add("MessageHistory");
                getInFilter().add("MessageHistory");
                System.err.println(getOutFilter().toString());
                // I get [date, content-length, transfer-encoding, upgrade, 
pragma, via,
trailer, *MessageHistory*, host, warning, content-type, connection,
cache-control]
        }
        
        public boolean applyFilterToCamelHeaders(String headerName, Object
headerValue, Exchange exchange) {
                boolean test = super.applyFilterToCamelHeaders(headerName, 
headerValue,
exchange);
                System.err.println("Camel return "+test+ " for "+headerName);
                *// Here I get false for MessageHistory*
        return test;
    }

    public boolean applyFilterToExternalHeaders(String headerName, Object
headerValue, Exchange exchange) {
        boolean test = super.applyFilterToExternalHeaders(headerName,
headerValue, exchange);
        System.err.println("Extern return "+test+ " for "+headerName);
                *// Here I get false for MessageHistory*
        return test;
    }
}

and in my Component extends from
org.apache.camel.component.http4.HttpComponent I override the Method
createEndpoint and change the line:

From
if (headerFilterStrategy != null) {
                        endpoint.setHeaderFilterStrategy(headerFilterStrategy);
                } else {
                        setEndpointHeaderFilterStrategy(endpoint);
                }

To

if (headerFilterStrategy != null) {
                        endpoint.setHeaderFilterStrategy(headerFilterStrategy);
                } else {
*                       headerFilterStrategy = new 
DefaultHeaderFilterStrategy();
                        endpoint.setHeaderFilterStrategy(headerFilterStrategy);*
                        setEndpointHeaderFilterStrategy(endpoint);
                }

It print out, that my Filter is in getOutFilter. But it always sends out in
the header from a http Post request.

Why? How can I filter out a Camel Header, without to remove the header vom
the Exchange?

Thank you for help.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Add-my-own-Filter-on-http4-tp5775147.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to