Hi Willem,

I don't think adding "content-type" to the filters is necessary.
1. The header is "Content-Type" not "content-type",  so the change
does not really affect anything.
2. Putting that aside.  If we add filters for "Content-Type", it stops
the propagating from Camel header to/from CXF header, which we don't
want.

We probably should clean up the use of
CamelTransportContants.CONTENT_TYPE (value = content.type) and just
use Message.CONTENT_TYPE (value  = Content-Type).

In DefaultCxfBinding.java, I don't see why we need to invent a header
constant (CamelTransportContants.CONTENT_TYPE) only used by camel-cxf
and have to map it back and forth.


That is, we can eliminate CamelTransportContants.CONTENT_TYPE and use
Message.CONTENT_TYPE consistently in:

        // propagate content type
        String key = Message.CONTENT_TYPE;
        Object value = cxfMessage.get(key);
        if (value != null &&
!headerFilterStrategy.applyFilterToExternalHeaders(key, value,
exchange)) {
            camelHeaders.put(CamelTransportConstants.CONTENT_TYPE, value);
            if (LOG.isTraceEnabled()) {
                LOG.trace("Populate header from CXF header=" + key + "
value=" + value);
            }
        }

...
            // put content type in exchange
            if (CamelTransportConstants.CONTENT_TYPE.equals(entry.getKey())) {
                cxfExchange.put(Message.CONTENT_TYPE, entry.getValue());
                continue;
            }

Thoughts?

==============================================================================
> --- 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java
>  (original)
> +++ 
> camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfHeaderFilterStrategy.java
>  Wed May  6 04:56:14 2009
> @@ -63,6 +63,11 @@
>         getOutFilter().add(Message.PROTOCOL_HEADERS);
>         getInFilter().add(Message.PROTOCOL_HEADERS);
>
> +        // Since the DefaultCxfBinding deal with the content-type separately.
> +        // We need to filter this header
> +        getOutFilter().add("content-type");
> +        getInFilter().add("content-type");
> +
>         // initialize message header filter map with default SOAP filter
>         messageHeaderFiltersMap = new HashMap<String, MessageHeaderFilter>();
>         addToMessageHeaderFilterMap(new SoapMessageHeaderFilter());
>

Reply via email to