camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hadrian Zbarcea <hzbar...@gmail.com>
Subject Re: CAMEL 1.6.0 and 2.0.0: when ?
Date Thu, 12 Feb 2009 05:56:40 GMT
We are in the final stage Camel 1.6.0.  The distro is already built  
and if it passes the community vote it will be released this weekend.

Camel 2.0 is under active development, and one of the goals is to try  
as best as we can to provide a stable api that is not likely to change  
soon (and a stable implementation as well).  You can expect this  
process to take another few months.  We think we are not too far from  
our goal though and one of the options considered is to issue a  
milestone release (2.0.0-M1), but no decision has been made yet.

Regards,
Hadrian

On Feb 11, 2009, at 11:51 AM, S. Ali Tokmen wrote:

> Hello
>
> And... When are these versions are to be expected?
>
> Cheers
>
> S. Ali Tokmen
> savas-ali.tokmen@bull.net
>
> Office: +33 4 76 29 76 19
> GSM:    +33 66 43 00 555
>
> Bull, Architect of an Open World TM
> http://www.bull.com
>
>
>
> Willem Jiang a écrit :
>> Hi Marc,
>>
>> I did a quick fix for the CAMEL-1330 on camel 1.x branch and it  
>> will be
>> be a part of the coming up camel 1.6.
>> Since we refactored the camel-cxf module in camel trunk, so the trunk
>> code is ok for the CAMEL-1330.
>>
>> Willem
>>
>> Willem Jiang wrote:
>>
>>> Hi Marc,
>>>
>>> I just fill a JIRA[1] for it, and will look into it tomorrow.
>>>
>>> [1]https://issues.apache.org/activemq/browse/CAMEL-1330
>>>
>>> Willem
>>>
>>> On Tue, Feb 10, 2009 at 6:36 PM, Marc Giger <gigerstyle@gmx.ch>  
>>> wrote:
>>>
>>>    Hi,
>>>
>>>    I have (again) the problem that a soap-fault is not returned as  
>>> 500
>>>    code.
>>>
>>>    This worked fine with camel-cxf 1.3 but not with camel-cxf 1.5.  
>>> The
>>>    reason
>>>    seems to be that the cxf response-context is not (correctly?)
>>>    propagated back.
>>>
>>>    In 1.3 we had the following code to propagate the responseContext
>>>    back to the caller:
>>>
>>>    CxfProducer line 252:
>>>
>>>    248: Object result = cxfClient.dispatch(params, context, ex);
>>>    249: ex.setOutMessage(response);
>>>    250: invokingContext.setResponseContent(response, result);
>>>    251: // copy the response context to the response
>>>    252: response.putAll(responseContext);
>>>    253: cxfBinding.storeCxfResponse(exchange, response);
>>>
>>>    This has changed in 1.5 to
>>>
>>>    Object result = cxfClient.dispatch(params, context, ex);
>>>    ex.setOutMessage(response);
>>>    invokingContext.setResponseContent(response, result);
>>>    // copy the response context to the response
>>>    CxfBinding.storeCXfResponseContext(response, responseContext);
>>>    CxfBinding.storeCxfResponse(endpoint.getHeaderFilterStrategy(),
>>>    exchange, response);
>>>
>>>    Which stores the responseContext itself as a new property in the
>>>    message.
>>>
>>>    Later in the chain, AbstractHttpDestination searches a  
>>> RESPONSE_CODE
>>>    in the message:
>>>
>>>    Integer i = (Integer)outMessage.get(Message.RESPONSE_CODE);
>>>               if (i != null) {
>>>                   int status = i.intValue();
>>>                   if (HttpURLConnection.HTTP_INTERNAL_ERROR == i) {
>>>                       Map<Object, Object> pHeaders =
>>>                               
>>> CastUtils.cast((Map)outMessage.get(Message.PROTOCOL_HEADERS));
>>>                       if (null != pHeaders &&
>>>    pHeaders.containsKey(PROTOCOL_HEADERS_CONTENT_TYPE)) {
>>>                            
>>> pHeaders.remove(PROTOCOL_HEADERS_CONTENT_TYPE);
>>>                       }
>>>                   }
>>>                   response.setStatus(status);
>>>               } else {
>>>                   response.setStatus(HttpURLConnection.HTTP_OK);
>>>               }
>>>
>>>    which it doesn't find because the RESPONSE_CODE is stored in the
>>>    ResponseContext which is again a HashMap.
>>>    In this case the access to the RESPONSE_CODE would be:
>>>
>>>     
>>> ((HashMap 
>>> )outMessage.get("ResonseContext")).get(Message.RESPONSE_CODE)
>>>
>>>    which can't be the correct solution of course.
>>>
>>>    So, what do I have to do to get my 500 back?:-)
>>>
>>>    Thanks & Greets
>>>
>>>    Marc
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>


Mime
View raw message