Thanks Claus -

I’ve used the IN/OUT thing a couple of times to my advantage, but most of the 
time it just seems to get in the way, which is why I was suggesting this API 
change.  I like having the flexibility of the IN/OUT paradigm but most of the 
time, I don’t really want to have to think about it.

I hadn’t considered a setMessage - I’ve never had to use that method before so 
I didn’t thing about it as well.

I’m fine with waiting for 3.0 for this type of change - I’ll just keep teaching 
my customers the “hasOut() ? getOut() : getIn()” technique :-)

> On Jan 17, 2018, at 1:38 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> 
> Hi
> 
> The IN vs OUT thing has probably manifested itself into Camel as its
> been there from the very beginning (API inspired by JBI when James
> created it).
> 
> There is only one implementation of the Exchange interface,
> DefaultExchange and therefore API changes on it is "less risky" as it
> used to be in 1.x when we had multiple implementations. But the
> camel-scala module may barf as it has some RichExchange stuff, but
> usually you can add similar methods there to make it compile. Also
> camel-scala is deprecated. And as such we wouldn't need to have these
> methods as "default" interface methods but can be added as normal
> methods.
> 
> Should we also have a setMessage method as well.
> 
> This kind of API change is something that is a good thing for Camel 3.0.
> If we keep altering 2.x then we wont get to a 3.0 ;)
> 
> 
> 
> 
> 
> On Tue, Jan 16, 2018 at 5:04 PM, Quinn Stevenson
> <qu...@pronoia-solutions.com> wrote:
>> I’d like to add the following to the Exchange interface.
>> 
>> default Message getMessage() {
>>    return hasOut() ? getOut() : getIn();
>> }
>> 
>> default <T> T getMessage(Class<T> type) {
>>    return hasOut() ? getOut(type) : getIn(type);
>> }
>> 
>> I’ve run a across the same error about a dozen times now with customers 
>> (where the work on the wrong message), and a simple addition to the Exchange 
>> interface would really help.
>> 
>> Since this would change a core interface in Camel, I wanted to get some 
>> feedback before I made the change.
>> 
>> Thoughts?
>> 
>> 
>> 
> 
> 
> 
> -- 
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to