Camel 2.0 - default endpoint

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Camel 2.0 - default endpoint

Claus Ibsen-2
Hi

I am wondering if this "default" endpoint is used by anyone? I am
wondering what the purpose really is and what it solves. Is it
possible to consider to remove this?
Would remove many methods for ProducerTemplate so less for end users
to get confused by.

--

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/
Reply | Threaded
Open this post in threaded view
|

Re: Camel 2.0 - default endpoint

hadrian
Claus,

DefaultEndpoint is the base class for all Endpoints and provides a  
default implementation of the Endpoint methods.

Am I misunderstanding your question?

Hadrian

On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:

> Hi
>
> I am wondering if this "default" endpoint is used by anyone? I am
> wondering what the purpose really is and what it solves. Is it
> possible to consider to remove this?
> Would remove many methods for ProducerTemplate so less for end users
> to get confused by.
>
> --
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: Camel 2.0 - default endpoint

Claus Ibsen-2
Hi

Yes I did not make my point clear.

It's the fact that CamelContext requires a default endpoint URI to be
configured. Then you can use ProducerTemplate.sendBody("Hello World")
and then it will send this body the default endpoint URI. Normally you
have to provide the URI as well such as:
ProducerTemplate.sendBody("direct:in", Hello World");

The class DefaultEndpoint should of course be there as the base class ;)



/Claus

On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]> wrote:

> Claus,
>
> DefaultEndpoint is the base class for all Endpoints and provides a default
> implementation of the Endpoint methods.
>
> Am I misunderstanding your question?
>
> Hadrian
>
> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>
>> Hi
>>
>> I am wondering if this "default" endpoint is used by anyone? I am
>> wondering what the purpose really is and what it solves. Is it
>> possible to consider to remove this?
>> Would remove many methods for ProducerTemplate so less for end users
>> to get confused by.
>>
>> --
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>
>



--

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/
Reply | Threaded
Open this post in threaded view
|

[DISCUSS] Camel 2.0 - default endpoint

hadrian
Hi Claus,

Now I get it :).  In any non trivial case it's useless and could be  
confusing/error prone I agree.

I think it is there mostly for convenience for developers, so if we  
take it out the inconvenience would be that they'd have to specify the  
endpoint (uri) explicitly, which from my point of view is good.

A strong +1 from me on this, but I'd like another opinion too.

Cheers
Hadrian


On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:

> Hi
>
> Yes I did not make my point clear.
>
> It's the fact that CamelContext requires a default endpoint URI to be
> configured. Then you can use ProducerTemplate.sendBody("Hello World")
> and then it will send this body the default endpoint URI. Normally you
> have to provide the URI as well such as:
> ProducerTemplate.sendBody("direct:in", Hello World");
>
> The class DefaultEndpoint should of course be there as the base  
> class ;)
>
>
>
> /Claus
>
> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea  
> <[hidden email]> wrote:
>> Claus,
>>
>> DefaultEndpoint is the base class for all Endpoints and provides a  
>> default
>> implementation of the Endpoint methods.
>>
>> Am I misunderstanding your question?
>>
>> Hadrian
>>
>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>
>>> Hi
>>>
>>> I am wondering if this "default" endpoint is used by anyone? I am
>>> wondering what the purpose really is and what it solves. Is it
>>> possible to consider to remove this?
>>> Would remove many methods for ProducerTemplate so less for end users
>>> to get confused by.
>>>
>>> --
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>
>>
>
>
>
> --
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Jon Anstey
I've never used this, nor could I imagine when I'd ever want to use it.

+1 for removing

On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]> wrote:

> Hi Claus,
>
> Now I get it :).  In any non trivial case it's useless and could be
> confusing/error prone I agree.
>
> I think it is there mostly for convenience for developers, so if we take it
> out the inconvenience would be that they'd have to specify the endpoint
> (uri) explicitly, which from my point of view is good.
>
> A strong +1 from me on this, but I'd like another opinion too.
>
> Cheers
> Hadrian
>
>
>
> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>
>  Hi
>>
>> Yes I did not make my point clear.
>>
>> It's the fact that CamelContext requires a default endpoint URI to be
>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>> and then it will send this body the default endpoint URI. Normally you
>> have to provide the URI as well such as:
>> ProducerTemplate.sendBody("direct:in", Hello World");
>>
>> The class DefaultEndpoint should of course be there as the base class ;)
>>
>>
>>
>> /Claus
>>
>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>> wrote:
>>
>>> Claus,
>>>
>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>> default
>>> implementation of the Endpoint methods.
>>>
>>> Am I misunderstanding your question?
>>>
>>> Hadrian
>>>
>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>
>>>  Hi
>>>>
>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>> wondering what the purpose really is and what it solves. Is it
>>>> possible to consider to remove this?
>>>> Would remove many methods for ProducerTemplate so less for end users
>>>> to get confused by.
>>>>
>>>> --
>>>>
>>>> /Claus Ibsen
>>>> Apache Camel Committer
>>>> Blog: http://davsclaus.blogspot.com/
>>>>
>>>
>>>
>>>
>>
>>
>> --
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>>
>
>


--
Cheers,
Jon

http://janstey.blogspot.com/
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

hadrian
I just talked to Hiram to figure out why it got there in the first  
place.  He gives a

-1 for removing,

and I change my vote to 0 :).  The idea comes from the spring jms  
template and it's quite handy when you want to reuse the template and  
keep sending to the same uri.  The endpoint uri resolves once.  Well,  
I can see it's usefulness.  I'd say let's keep it.

More opinions welcome,
Hadrian



On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:

> I've never used this, nor could I imagine when I'd ever want to use  
> it.
>
> +1 for removing
>
> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea  
> <[hidden email]> wrote:
>
>> Hi Claus,
>>
>> Now I get it :).  In any non trivial case it's useless and could be
>> confusing/error prone I agree.
>>
>> I think it is there mostly for convenience for developers, so if we  
>> take it
>> out the inconvenience would be that they'd have to specify the  
>> endpoint
>> (uri) explicitly, which from my point of view is good.
>>
>> A strong +1 from me on this, but I'd like another opinion too.
>>
>> Cheers
>> Hadrian
>>
>>
>>
>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>
>> Hi
>>>
>>> Yes I did not make my point clear.
>>>
>>> It's the fact that CamelContext requires a default endpoint URI to  
>>> be
>>> configured. Then you can use ProducerTemplate.sendBody("Hello  
>>> World")
>>> and then it will send this body the default endpoint URI. Normally  
>>> you
>>> have to provide the URI as well such as:
>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>
>>> The class DefaultEndpoint should of course be there as the base  
>>> class ;)
>>>
>>>
>>>
>>> /Claus
>>>
>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]
>>> >
>>> wrote:
>>>
>>>> Claus,
>>>>
>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>> default
>>>> implementation of the Endpoint methods.
>>>>
>>>> Am I misunderstanding your question?
>>>>
>>>> Hadrian
>>>>
>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>
>>>> Hi
>>>>>
>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>> wondering what the purpose really is and what it solves. Is it
>>>>> possible to consider to remove this?
>>>>> Would remove many methods for ProducerTemplate so less for end  
>>>>> users
>>>>> to get confused by.
>>>>>
>>>>> --
>>>>>
>>>>> /Claus Ibsen
>>>>> Apache Camel Committer
>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>>
>>
>>
>
>
> --
> Cheers,
> Jon
>
> http://janstey.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Claus Ibsen-2
Hi

Hmm is there any documentation with such a sample how to reuse it?

I would still like to keep Camel simpler and not support "corner case
use-cases", that is not documented or anyhow possible for end-users to
figure out how to use.

We could maybe reduce some of the default endpoint send/request
methods on ProducerTemplate to reduce the number of methods end-users
get when they press control + space. If we could keep one for these
few uses-cases with reuse?



On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]> wrote:

> I just talked to Hiram to figure out why it got there in the first place.
>  He gives a
>
> -1 for removing,
>
> and I change my vote to 0 :).  The idea comes from the spring jms template
> and it's quite handy when you want to reuse the template and keep sending to
> the same uri.  The endpoint uri resolves once.  Well, I can see it's
> usefulness.  I'd say let's keep it.
>
> More opinions welcome,
> Hadrian
>
>
>
> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>
>> I've never used this, nor could I imagine when I'd ever want to use it.
>>
>> +1 for removing
>>
>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>> wrote:
>>
>>> Hi Claus,
>>>
>>> Now I get it :).  In any non trivial case it's useless and could be
>>> confusing/error prone I agree.
>>>
>>> I think it is there mostly for convenience for developers, so if we take
>>> it
>>> out the inconvenience would be that they'd have to specify the endpoint
>>> (uri) explicitly, which from my point of view is good.
>>>
>>> A strong +1 from me on this, but I'd like another opinion too.
>>>
>>> Cheers
>>> Hadrian
>>>
>>>
>>>
>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>
>>> Hi
>>>>
>>>> Yes I did not make my point clear.
>>>>
>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>> and then it will send this body the default endpoint URI. Normally you
>>>> have to provide the URI as well such as:
>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>
>>>> The class DefaultEndpoint should of course be there as the base class ;)
>>>>
>>>>
>>>>
>>>> /Claus
>>>>
>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>> wrote:
>>>>
>>>>> Claus,
>>>>>
>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>> default
>>>>> implementation of the Endpoint methods.
>>>>>
>>>>> Am I misunderstanding your question?
>>>>>
>>>>> Hadrian
>>>>>
>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>
>>>>> Hi
>>>>>>
>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>> possible to consider to remove this?
>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>> to get confused by.
>>>>>>
>>>>>> --
>>>>>>
>>>>>> /Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> /Claus Ibsen
>>>> Apache Camel Committer
>>>> Blog: http://davsclaus.blogspot.com/
>>>>
>>>
>>>
>>
>>
>> --
>> Cheers,
>> Jon
>>
>> http://janstey.blogspot.com/
>
>



--

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

hadrian
I think the point is that you can have something like:

ProducerTemplate template = new DefaultTemplate(context, uri);
while (condition) {
     template.send(body);
}

This would work too, of course:

ProducerTemplate template = new DefaultTemplate(context);
while (condition) {
     template.send(uri, body);
}

... but it would force an endpoint resolution at every iteration.

Hadrian


On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:

> Hi
>
> Hmm is there any documentation with such a sample how to reuse it?
>
> I would still like to keep Camel simpler and not support "corner case
> use-cases", that is not documented or anyhow possible for end-users to
> figure out how to use.
>
> We could maybe reduce some of the default endpoint send/request
> methods on ProducerTemplate to reduce the number of methods end-users
> get when they press control + space. If we could keep one for these
> few uses-cases with reuse?
>
>
>
> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea  
> <[hidden email]> wrote:
>> I just talked to Hiram to figure out why it got there in the first  
>> place.
>> He gives a
>>
>> -1 for removing,
>>
>> and I change my vote to 0 :).  The idea comes from the spring jms  
>> template
>> and it's quite handy when you want to reuse the template and keep  
>> sending to
>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>> usefulness.  I'd say let's keep it.
>>
>> More opinions welcome,
>> Hadrian
>>
>>
>>
>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>
>>> I've never used this, nor could I imagine when I'd ever want to  
>>> use it.
>>>
>>> +1 for removing
>>>
>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea  
>>> <[hidden email]>
>>> wrote:
>>>
>>>> Hi Claus,
>>>>
>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>> confusing/error prone I agree.
>>>>
>>>> I think it is there mostly for convenience for developers, so if  
>>>> we take
>>>> it
>>>> out the inconvenience would be that they'd have to specify the  
>>>> endpoint
>>>> (uri) explicitly, which from my point of view is good.
>>>>
>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>
>>>> Cheers
>>>> Hadrian
>>>>
>>>>
>>>>
>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>
>>>> Hi
>>>>>
>>>>> Yes I did not make my point clear.
>>>>>
>>>>> It's the fact that CamelContext requires a default endpoint URI  
>>>>> to be
>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello  
>>>>> World")
>>>>> and then it will send this body the default endpoint URI.  
>>>>> Normally you
>>>>> have to provide the URI as well such as:
>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>
>>>>> The class DefaultEndpoint should of course be there as the base  
>>>>> class ;)
>>>>>
>>>>>
>>>>>
>>>>> /Claus
>>>>>
>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]
>>>>> >
>>>>> wrote:
>>>>>
>>>>>> Claus,
>>>>>>
>>>>>> DefaultEndpoint is the base class for all Endpoints and  
>>>>>> provides a
>>>>>> default
>>>>>> implementation of the Endpoint methods.
>>>>>>
>>>>>> Am I misunderstanding your question?
>>>>>>
>>>>>> Hadrian
>>>>>>
>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>
>>>>>> Hi
>>>>>>>
>>>>>>> I am wondering if this "default" endpoint is used by anyone? I  
>>>>>>> am
>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>> possible to consider to remove this?
>>>>>>> Would remove many methods for ProducerTemplate so less for end  
>>>>>>> users
>>>>>>> to get confused by.
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> /Claus Ibsen
>>>>>>> Apache Camel Committer
>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> /Claus Ibsen
>>>>> Apache Camel Committer
>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Cheers,
>>> Jon
>>>
>>> http://janstey.blogspot.com/
>>
>>
>
>
>
> --
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/

Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Claus Ibsen-2
Hi

I guess the endpoint resolution can be done once. So I still don't see
the valid point of this default

final Endpoint ep = context.getEndpoint("uri");
 ProducerTemplate template = new DefaultTemplate(context);
 while (condition) {
    template.send(ep, body);
 }


/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Thu, Nov 13, 2008 at 3:57 PM, Hadrian Zbarcea <[hidden email]> wrote:

> I think the point is that you can have something like:
>
> ProducerTemplate template = new DefaultTemplate(context, uri);
> while (condition) {
>    template.send(body);
> }
>
> This would work too, of course:
>
> ProducerTemplate template = new DefaultTemplate(context);
> while (condition) {
>    template.send(uri, body);
> }
>
> ... but it would force an endpoint resolution at every iteration.
>
> Hadrian
>
>
> On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:
>
>> Hi
>>
>> Hmm is there any documentation with such a sample how to reuse it?
>>
>> I would still like to keep Camel simpler and not support "corner case
>> use-cases", that is not documented or anyhow possible for end-users to
>> figure out how to use.
>>
>> We could maybe reduce some of the default endpoint send/request
>> methods on ProducerTemplate to reduce the number of methods end-users
>> get when they press control + space. If we could keep one for these
>> few uses-cases with reuse?
>>
>>
>>
>> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]>
>> wrote:
>>>
>>> I just talked to Hiram to figure out why it got there in the first place.
>>> He gives a
>>>
>>> -1 for removing,
>>>
>>> and I change my vote to 0 :).  The idea comes from the spring jms
>>> template
>>> and it's quite handy when you want to reuse the template and keep sending
>>> to
>>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>>> usefulness.  I'd say let's keep it.
>>>
>>> More opinions welcome,
>>> Hadrian
>>>
>>>
>>>
>>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>>
>>>> I've never used this, nor could I imagine when I'd ever want to use it.
>>>>
>>>> +1 for removing
>>>>
>>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>>>> wrote:
>>>>
>>>>> Hi Claus,
>>>>>
>>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>>> confusing/error prone I agree.
>>>>>
>>>>> I think it is there mostly for convenience for developers, so if we
>>>>> take
>>>>> it
>>>>> out the inconvenience would be that they'd have to specify the endpoint
>>>>> (uri) explicitly, which from my point of view is good.
>>>>>
>>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>>
>>>>> Cheers
>>>>> Hadrian
>>>>>
>>>>>
>>>>>
>>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>>
>>>>> Hi
>>>>>>
>>>>>> Yes I did not make my point clear.
>>>>>>
>>>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>>>> and then it will send this body the default endpoint URI. Normally you
>>>>>> have to provide the URI as well such as:
>>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>>
>>>>>> The class DefaultEndpoint should of course be there as the base class
>>>>>> ;)
>>>>>>
>>>>>>
>>>>>>
>>>>>> /Claus
>>>>>>
>>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>>>> wrote:
>>>>>>
>>>>>>> Claus,
>>>>>>>
>>>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>>>> default
>>>>>>> implementation of the Endpoint methods.
>>>>>>>
>>>>>>> Am I misunderstanding your question?
>>>>>>>
>>>>>>> Hadrian
>>>>>>>
>>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>>>
>>>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>>> possible to consider to remove this?
>>>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>>>> to get confused by.
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> /Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> /Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Cheers,
>>>> Jon
>>>>
>>>> http://janstey.blogspot.com/
>>>
>>>
>>
>>
>>
>> --
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Hiram Chirino
The idea is that in Dependency Injection scenario is it's simpler to 1
inject one thing (the template) into another object rather than 2
things (the object and the endpoint).

It's an ease of use issue.  And camel is all about ease of use.

Is this really complicating things that much?  I would think there are
tougher issues to tackle.

On Thu, Nov 13, 2008 at 1:04 PM, Claus Ibsen <[hidden email]> wrote:

> Hi
>
> I guess the endpoint resolution can be done once. So I still don't see
> the valid point of this default
>
> final Endpoint ep = context.getEndpoint("uri");
>  ProducerTemplate template = new DefaultTemplate(context);
>  while (condition) {
>    template.send(ep, body);
>  }
>
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
>
>
>
> On Thu, Nov 13, 2008 at 3:57 PM, Hadrian Zbarcea <[hidden email]> wrote:
>> I think the point is that you can have something like:
>>
>> ProducerTemplate template = new DefaultTemplate(context, uri);
>> while (condition) {
>>    template.send(body);
>> }
>>
>> This would work too, of course:
>>
>> ProducerTemplate template = new DefaultTemplate(context);
>> while (condition) {
>>    template.send(uri, body);
>> }
>>
>> ... but it would force an endpoint resolution at every iteration.
>>
>> Hadrian
>>
>>
>> On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:
>>
>>> Hi
>>>
>>> Hmm is there any documentation with such a sample how to reuse it?
>>>
>>> I would still like to keep Camel simpler and not support "corner case
>>> use-cases", that is not documented or anyhow possible for end-users to
>>> figure out how to use.
>>>
>>> We could maybe reduce some of the default endpoint send/request
>>> methods on ProducerTemplate to reduce the number of methods end-users
>>> get when they press control + space. If we could keep one for these
>>> few uses-cases with reuse?
>>>
>>>
>>>
>>> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]>
>>> wrote:
>>>>
>>>> I just talked to Hiram to figure out why it got there in the first place.
>>>> He gives a
>>>>
>>>> -1 for removing,
>>>>
>>>> and I change my vote to 0 :).  The idea comes from the spring jms
>>>> template
>>>> and it's quite handy when you want to reuse the template and keep sending
>>>> to
>>>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>>>> usefulness.  I'd say let's keep it.
>>>>
>>>> More opinions welcome,
>>>> Hadrian
>>>>
>>>>
>>>>
>>>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>>>
>>>>> I've never used this, nor could I imagine when I'd ever want to use it.
>>>>>
>>>>> +1 for removing
>>>>>
>>>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>>>>> wrote:
>>>>>
>>>>>> Hi Claus,
>>>>>>
>>>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>>>> confusing/error prone I agree.
>>>>>>
>>>>>> I think it is there mostly for convenience for developers, so if we
>>>>>> take
>>>>>> it
>>>>>> out the inconvenience would be that they'd have to specify the endpoint
>>>>>> (uri) explicitly, which from my point of view is good.
>>>>>>
>>>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>>>
>>>>>> Cheers
>>>>>> Hadrian
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>>>
>>>>>> Hi
>>>>>>>
>>>>>>> Yes I did not make my point clear.
>>>>>>>
>>>>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>>>>> and then it will send this body the default endpoint URI. Normally you
>>>>>>> have to provide the URI as well such as:
>>>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>>>
>>>>>>> The class DefaultEndpoint should of course be there as the base class
>>>>>>> ;)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> /Claus
>>>>>>>
>>>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Claus,
>>>>>>>>
>>>>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>>>>> default
>>>>>>>> implementation of the Endpoint methods.
>>>>>>>>
>>>>>>>> Am I misunderstanding your question?
>>>>>>>>
>>>>>>>> Hadrian
>>>>>>>>
>>>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>>>
>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>>>> possible to consider to remove this?
>>>>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>>>>> to get confused by.
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>> /Claus Ibsen
>>>>>>>>> Apache Camel Committer
>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> /Claus Ibsen
>>>>>>> Apache Camel Committer
>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Cheers,
>>>>> Jon
>>>>>
>>>>> http://janstey.blogspot.com/
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>
>>
>



--
Regards,
Hiram

Blog: http://hiramchirino.com

Open Source SOA
http://open.iona.com
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Claus Ibsen-2
Hi

Thanks for the explanation. But What I am raising a voice for is the
Camel entry level users. When they start to use ProducerTemplate they
get a long list of methods. So it can be confusing which method to
use. Just to eplain the difference between sendXXX and requestXXX is
quite "hard enought". So having this 3rd option that is very rarely
used is on option I would like to eliminate.

I have yet to see any documentation, end users requesting about it,
unit test etc that uses this feature.

There are 5 methods with the default thingy

There are 8 methods with send
There are 12 methods with sendBody
There are 2 methods with request
There are 6 methods with requestBody

A total of: 33 methods.


But I will turn my attention to other issues to tackle ;(



/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Fri, Nov 14, 2008 at 5:26 PM, Hiram Chirino <[hidden email]> wrote:

> The idea is that in Dependency Injection scenario is it's simpler to 1
> inject one thing (the template) into another object rather than 2
> things (the object and the endpoint).
>
> It's an ease of use issue.  And camel is all about ease of use.
>
> Is this really complicating things that much?  I would think there are
> tougher issues to tackle.
>
> On Thu, Nov 13, 2008 at 1:04 PM, Claus Ibsen <[hidden email]> wrote:
>> Hi
>>
>> I guess the endpoint resolution can be done once. So I still don't see
>> the valid point of this default
>>
>> final Endpoint ep = context.getEndpoint("uri");
>>  ProducerTemplate template = new DefaultTemplate(context);
>>  while (condition) {
>>    template.send(ep, body);
>>  }
>>
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>>
>>
>>
>> On Thu, Nov 13, 2008 at 3:57 PM, Hadrian Zbarcea <[hidden email]> wrote:
>>> I think the point is that you can have something like:
>>>
>>> ProducerTemplate template = new DefaultTemplate(context, uri);
>>> while (condition) {
>>>    template.send(body);
>>> }
>>>
>>> This would work too, of course:
>>>
>>> ProducerTemplate template = new DefaultTemplate(context);
>>> while (condition) {
>>>    template.send(uri, body);
>>> }
>>>
>>> ... but it would force an endpoint resolution at every iteration.
>>>
>>> Hadrian
>>>
>>>
>>> On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:
>>>
>>>> Hi
>>>>
>>>> Hmm is there any documentation with such a sample how to reuse it?
>>>>
>>>> I would still like to keep Camel simpler and not support "corner case
>>>> use-cases", that is not documented or anyhow possible for end-users to
>>>> figure out how to use.
>>>>
>>>> We could maybe reduce some of the default endpoint send/request
>>>> methods on ProducerTemplate to reduce the number of methods end-users
>>>> get when they press control + space. If we could keep one for these
>>>> few uses-cases with reuse?
>>>>
>>>>
>>>>
>>>> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]>
>>>> wrote:
>>>>>
>>>>> I just talked to Hiram to figure out why it got there in the first place.
>>>>> He gives a
>>>>>
>>>>> -1 for removing,
>>>>>
>>>>> and I change my vote to 0 :).  The idea comes from the spring jms
>>>>> template
>>>>> and it's quite handy when you want to reuse the template and keep sending
>>>>> to
>>>>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>>>>> usefulness.  I'd say let's keep it.
>>>>>
>>>>> More opinions welcome,
>>>>> Hadrian
>>>>>
>>>>>
>>>>>
>>>>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>>>>
>>>>>> I've never used this, nor could I imagine when I'd ever want to use it.
>>>>>>
>>>>>> +1 for removing
>>>>>>
>>>>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Claus,
>>>>>>>
>>>>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>>>>> confusing/error prone I agree.
>>>>>>>
>>>>>>> I think it is there mostly for convenience for developers, so if we
>>>>>>> take
>>>>>>> it
>>>>>>> out the inconvenience would be that they'd have to specify the endpoint
>>>>>>> (uri) explicitly, which from my point of view is good.
>>>>>>>
>>>>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>>>>
>>>>>>> Cheers
>>>>>>> Hadrian
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>>>
>>>>>>>> Yes I did not make my point clear.
>>>>>>>>
>>>>>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>>>>>> and then it will send this body the default endpoint URI. Normally you
>>>>>>>> have to provide the URI as well such as:
>>>>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>>>>
>>>>>>>> The class DefaultEndpoint should of course be there as the base class
>>>>>>>> ;)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> /Claus
>>>>>>>>
>>>>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Claus,
>>>>>>>>>
>>>>>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>>>>>> default
>>>>>>>>> implementation of the Endpoint methods.
>>>>>>>>>
>>>>>>>>> Am I misunderstanding your question?
>>>>>>>>>
>>>>>>>>> Hadrian
>>>>>>>>>
>>>>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>>>>> possible to consider to remove this?
>>>>>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>>>>>> to get confused by.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> /Claus Ibsen
>>>>>>>>>> Apache Camel Committer
>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> /Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Cheers,
>>>>>> Jon
>>>>>>
>>>>>> http://janstey.blogspot.com/
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> /Claus Ibsen
>>>> Apache Camel Committer
>>>> Blog: http://davsclaus.blogspot.com/
>>>
>>>
>>
>
>
>
> --
> Regards,
> Hiram
>
> Blog: http://hiramchirino.com
>
> Open Source SOA
> http://open.iona.com
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Claus Ibsen-2
Hi

> But I will turn my attention to other issues to tackle ;(
Sorry the smiley faced the wrong direction. Should be ;)
I am not at all sour, even though my mail might have such a tone. Just
me being curious and digging into all kind of corners in Camel
and being from Denmark where we tend to raise our voices.


/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Sat, Nov 15, 2008 at 9:17 AM, Claus Ibsen <[hidden email]> wrote:

> Hi
>
> Thanks for the explanation. But What I am raising a voice for is the
> Camel entry level users. When they start to use ProducerTemplate they
> get a long list of methods. So it can be confusing which method to
> use. Just to eplain the difference between sendXXX and requestXXX is
> quite "hard enought". So having this 3rd option that is very rarely
> used is on option I would like to eliminate.
>
> I have yet to see any documentation, end users requesting about it,
> unit test etc that uses this feature.
>
> There are 5 methods with the default thingy
>
> There are 8 methods with send
> There are 12 methods with sendBody
> There are 2 methods with request
> There are 6 methods with requestBody
>
> A total of: 33 methods.
>
>
But I will turn my attention to other issues to tackle ;(

>
>
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
>
>
>
> On Fri, Nov 14, 2008 at 5:26 PM, Hiram Chirino <[hidden email]> wrote:
>> The idea is that in Dependency Injection scenario is it's simpler to 1
>> inject one thing (the template) into another object rather than 2
>> things (the object and the endpoint).
>>
>> It's an ease of use issue.  And camel is all about ease of use.
>>
>> Is this really complicating things that much?  I would think there are
>> tougher issues to tackle.
>>
>> On Thu, Nov 13, 2008 at 1:04 PM, Claus Ibsen <[hidden email]> wrote:
>>> Hi
>>>
>>> I guess the endpoint resolution can be done once. So I still don't see
>>> the valid point of this default
>>>
>>> final Endpoint ep = context.getEndpoint("uri");
>>>  ProducerTemplate template = new DefaultTemplate(context);
>>>  while (condition) {
>>>    template.send(ep, body);
>>>  }
>>>
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>>
>>>
>>>
>>> On Thu, Nov 13, 2008 at 3:57 PM, Hadrian Zbarcea <[hidden email]> wrote:
>>>> I think the point is that you can have something like:
>>>>
>>>> ProducerTemplate template = new DefaultTemplate(context, uri);
>>>> while (condition) {
>>>>    template.send(body);
>>>> }
>>>>
>>>> This would work too, of course:
>>>>
>>>> ProducerTemplate template = new DefaultTemplate(context);
>>>> while (condition) {
>>>>    template.send(uri, body);
>>>> }
>>>>
>>>> ... but it would force an endpoint resolution at every iteration.
>>>>
>>>> Hadrian
>>>>
>>>>
>>>> On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> Hmm is there any documentation with such a sample how to reuse it?
>>>>>
>>>>> I would still like to keep Camel simpler and not support "corner case
>>>>> use-cases", that is not documented or anyhow possible for end-users to
>>>>> figure out how to use.
>>>>>
>>>>> We could maybe reduce some of the default endpoint send/request
>>>>> methods on ProducerTemplate to reduce the number of methods end-users
>>>>> get when they press control + space. If we could keep one for these
>>>>> few uses-cases with reuse?
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]>
>>>>> wrote:
>>>>>>
>>>>>> I just talked to Hiram to figure out why it got there in the first place.
>>>>>> He gives a
>>>>>>
>>>>>> -1 for removing,
>>>>>>
>>>>>> and I change my vote to 0 :).  The idea comes from the spring jms
>>>>>> template
>>>>>> and it's quite handy when you want to reuse the template and keep sending
>>>>>> to
>>>>>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>>>>>> usefulness.  I'd say let's keep it.
>>>>>>
>>>>>> More opinions welcome,
>>>>>> Hadrian
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>>>>>
>>>>>>> I've never used this, nor could I imagine when I'd ever want to use it.
>>>>>>>
>>>>>>> +1 for removing
>>>>>>>
>>>>>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Claus,
>>>>>>>>
>>>>>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>>>>>> confusing/error prone I agree.
>>>>>>>>
>>>>>>>> I think it is there mostly for convenience for developers, so if we
>>>>>>>> take
>>>>>>>> it
>>>>>>>> out the inconvenience would be that they'd have to specify the endpoint
>>>>>>>> (uri) explicitly, which from my point of view is good.
>>>>>>>>
>>>>>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>> Hadrian
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>>>>>
>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> Yes I did not make my point clear.
>>>>>>>>>
>>>>>>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>>>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>>>>>>> and then it will send this body the default endpoint URI. Normally you
>>>>>>>>> have to provide the URI as well such as:
>>>>>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>>>>>
>>>>>>>>> The class DefaultEndpoint should of course be there as the base class
>>>>>>>>> ;)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> /Claus
>>>>>>>>>
>>>>>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Claus,
>>>>>>>>>>
>>>>>>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>>>>>>> default
>>>>>>>>>> implementation of the Endpoint methods.
>>>>>>>>>>
>>>>>>>>>> Am I misunderstanding your question?
>>>>>>>>>>
>>>>>>>>>> Hadrian
>>>>>>>>>>
>>>>>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>>>>>
>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>>>>>> possible to consider to remove this?
>>>>>>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>>>>>>> to get confused by.
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>> /Claus Ibsen
>>>>>>>>>>> Apache Camel Committer
>>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>> /Claus Ibsen
>>>>>>>>> Apache Camel Committer
>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> Jon
>>>>>>>
>>>>>>> http://janstey.blogspot.com/
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> /Claus Ibsen
>>>>> Apache Camel Committer
>>>>> Blog: http://davsclaus.blogspot.com/
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Regards,
>> Hiram
>>
>> Blog: http://hiramchirino.com
>>
>> Open Source SOA
>> http://open.iona.com
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

jstrachan
In reply to this post by Claus Ibsen-2
2008/11/15 Claus Ibsen <[hidden email]>:

> Hi
>
> Thanks for the explanation. But What I am raising a voice for is the
> Camel entry level users. When they start to use ProducerTemplate they
> get a long list of methods. So it can be confusing which method to
> use. Just to eplain the difference between sendXXX and requestXXX is
> quite "hard enought". So having this 3rd option that is very rarely
> used is on option I would like to eliminate.
>
> I have yet to see any documentation, end users requesting about it,
> unit test etc that uses this feature.
>
> There are 5 methods with the default thingy
>
> There are 8 methods with send
> There are 12 methods with sendBody
> There are 2 methods with request
> There are 6 methods with requestBody
>
> A total of: 33 methods.
>
>
> But I will turn my attention to other issues to tackle ;(
>
>
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
>
>
>
> On Fri, Nov 14, 2008 at 5:26 PM, Hiram Chirino <[hidden email]> wrote:
>> The idea is that in Dependency Injection scenario is it's simpler to 1
>> inject one thing (the template) into another object rather than 2
>> things (the object and the endpoint).
>>
>> It's an ease of use issue.  And camel is all about ease of use.
>>
>> Is this really complicating things that much?  I would think there are
>> tougher issues to tackle.
>>
>> On Thu, Nov 13, 2008 at 1:04 PM, Claus Ibsen <[hidden email]> wrote:
>>> Hi
>>>
>>> I guess the endpoint resolution can be done once. So I still don't see
>>> the valid point of this default
>>>
>>> final Endpoint ep = context.getEndpoint("uri");
>>>  ProducerTemplate template = new DefaultTemplate(context);
>>>  while (condition) {
>>>    template.send(ep, body);
>>>  }
>>>
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>>
>>>
>>>
>>> On Thu, Nov 13, 2008 at 3:57 PM, Hadrian Zbarcea <[hidden email]> wrote:
>>>> I think the point is that you can have something like:
>>>>
>>>> ProducerTemplate template = new DefaultTemplate(context, uri);
>>>> while (condition) {
>>>>    template.send(body);
>>>> }
>>>>
>>>> This would work too, of course:
>>>>
>>>> ProducerTemplate template = new DefaultTemplate(context);
>>>> while (condition) {
>>>>    template.send(uri, body);
>>>> }
>>>>
>>>> ... but it would force an endpoint resolution at every iteration.
>>>>
>>>> Hadrian
>>>>
>>>>
>>>> On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> Hmm is there any documentation with such a sample how to reuse it?
>>>>>
>>>>> I would still like to keep Camel simpler and not support "corner case
>>>>> use-cases", that is not documented or anyhow possible for end-users to
>>>>> figure out how to use.
>>>>>
>>>>> We could maybe reduce some of the default endpoint send/request
>>>>> methods on ProducerTemplate to reduce the number of methods end-users
>>>>> get when they press control + space. If we could keep one for these
>>>>> few uses-cases with reuse?
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]>
>>>>> wrote:
>>>>>>
>>>>>> I just talked to Hiram to figure out why it got there in the first place.
>>>>>> He gives a
>>>>>>
>>>>>> -1 for removing,
>>>>>>
>>>>>> and I change my vote to 0 :).  The idea comes from the spring jms
>>>>>> template
>>>>>> and it's quite handy when you want to reuse the template and keep sending
>>>>>> to
>>>>>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>>>>>> usefulness.  I'd say let's keep it.
>>>>>>
>>>>>> More opinions welcome,
>>>>>> Hadrian
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>>>>>
>>>>>>> I've never used this, nor could I imagine when I'd ever want to use it.
>>>>>>>
>>>>>>> +1 for removing
>>>>>>>
>>>>>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Claus,
>>>>>>>>
>>>>>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>>>>>> confusing/error prone I agree.
>>>>>>>>
>>>>>>>> I think it is there mostly for convenience for developers, so if we
>>>>>>>> take
>>>>>>>> it
>>>>>>>> out the inconvenience would be that they'd have to specify the endpoint
>>>>>>>> (uri) explicitly, which from my point of view is good.
>>>>>>>>
>>>>>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>> Hadrian
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>>>>>
>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> Yes I did not make my point clear.
>>>>>>>>>
>>>>>>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>>>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>>>>>>> and then it will send this body the default endpoint URI. Normally you
>>>>>>>>> have to provide the URI as well such as:
>>>>>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>>>>>
>>>>>>>>> The class DefaultEndpoint should of course be there as the base class
>>>>>>>>> ;)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> /Claus
>>>>>>>>>
>>>>>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Claus,
>>>>>>>>>>
>>>>>>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>>>>>>> default
>>>>>>>>>> implementation of the Endpoint methods.
>>>>>>>>>>
>>>>>>>>>> Am I misunderstanding your question?
>>>>>>>>>>
>>>>>>>>>> Hadrian
>>>>>>>>>>
>>>>>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>>>>>
>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>>>>>> possible to consider to remove this?
>>>>>>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>>>>>>> to get confused by.
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>> /Claus Ibsen
>>>>>>>>>>> Apache Camel Committer
>>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>> /Claus Ibsen
>>>>>>>>> Apache Camel Committer
>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Cheers,
>>>>>>> Jon
>>>>>>>
>>>>>>> http://janstey.blogspot.com/
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> /Claus Ibsen
>>>>> Apache Camel Committer
>>>>> Blog: http://davsclaus.blogspot.com/
>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Regards,
>> Hiram
>>
>> Blog: http://hiramchirino.com
>>
>> Open Source SOA
>> http://open.iona.com
>>


So I'm cool with removing the defaultEndpointUri from the CamelContext
btw - creating a default ProducerTemplate without specifying a default
endpoint URI could just barf if you tried to send to the default
endpoint.

However having a default endpoint URI on a ProducerTemplate is a good
thing; it lets folks send messages without having to worry, in their
Java code - of specifying where it goes unless they want to mediate
between multiple endpoints which they know about.

e.g.

public class MyFoo {
  @Produce(ref="someEndpoint")
  ProducerTemplate template;

  ...
  template.sendBody("<hello>world!</hello>/>");

you then don't have to inject 2 objects; one the URI/endpoint and one
the producer.



--
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://fusesource.com/
Reply | Threaded
Open this post in threaded view
|

Re: [DISCUSS] Camel 2.0 - default endpoint

Claus Ibsen-2
James that is a perfect example. The annotation and producer template
makes 1+1=3.

So let's keep it as is.

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Mon, Nov 24, 2008 at 5:55 PM, James Strachan
<[hidden email]> wrote:

> 2008/11/15 Claus Ibsen <[hidden email]>:
>> Hi
>>
>> Thanks for the explanation. But What I am raising a voice for is the
>> Camel entry level users. When they start to use ProducerTemplate they
>> get a long list of methods. So it can be confusing which method to
>> use. Just to eplain the difference between sendXXX and requestXXX is
>> quite "hard enought". So having this 3rd option that is very rarely
>> used is on option I would like to eliminate.
>>
>> I have yet to see any documentation, end users requesting about it,
>> unit test etc that uses this feature.
>>
>> There are 5 methods with the default thingy
>>
>> There are 8 methods with send
>> There are 12 methods with sendBody
>> There are 2 methods with request
>> There are 6 methods with requestBody
>>
>> A total of: 33 methods.
>>
>>
>> But I will turn my attention to other issues to tackle ;(
>>
>>
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>>
>>
>>
>> On Fri, Nov 14, 2008 at 5:26 PM, Hiram Chirino <[hidden email]> wrote:
>>> The idea is that in Dependency Injection scenario is it's simpler to 1
>>> inject one thing (the template) into another object rather than 2
>>> things (the object and the endpoint).
>>>
>>> It's an ease of use issue.  And camel is all about ease of use.
>>>
>>> Is this really complicating things that much?  I would think there are
>>> tougher issues to tackle.
>>>
>>> On Thu, Nov 13, 2008 at 1:04 PM, Claus Ibsen <[hidden email]> wrote:
>>>> Hi
>>>>
>>>> I guess the endpoint resolution can be done once. So I still don't see
>>>> the valid point of this default
>>>>
>>>> final Endpoint ep = context.getEndpoint("uri");
>>>>  ProducerTemplate template = new DefaultTemplate(context);
>>>>  while (condition) {
>>>>    template.send(ep, body);
>>>>  }
>>>>
>>>>
>>>> /Claus Ibsen
>>>> Apache Camel Committer
>>>> Blog: http://davsclaus.blogspot.com/
>>>>
>>>>
>>>>
>>>> On Thu, Nov 13, 2008 at 3:57 PM, Hadrian Zbarcea <[hidden email]> wrote:
>>>>> I think the point is that you can have something like:
>>>>>
>>>>> ProducerTemplate template = new DefaultTemplate(context, uri);
>>>>> while (condition) {
>>>>>    template.send(body);
>>>>> }
>>>>>
>>>>> This would work too, of course:
>>>>>
>>>>> ProducerTemplate template = new DefaultTemplate(context);
>>>>> while (condition) {
>>>>>    template.send(uri, body);
>>>>> }
>>>>>
>>>>> ... but it would force an endpoint resolution at every iteration.
>>>>>
>>>>> Hadrian
>>>>>
>>>>>
>>>>> On Nov 13, 2008, at 5:17 AM, Claus Ibsen wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Hmm is there any documentation with such a sample how to reuse it?
>>>>>>
>>>>>> I would still like to keep Camel simpler and not support "corner case
>>>>>> use-cases", that is not documented or anyhow possible for end-users to
>>>>>> figure out how to use.
>>>>>>
>>>>>> We could maybe reduce some of the default endpoint send/request
>>>>>> methods on ProducerTemplate to reduce the number of methods end-users
>>>>>> get when they press control + space. If we could keep one for these
>>>>>> few uses-cases with reuse?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 12, 2008 at 5:17 PM, Hadrian Zbarcea <[hidden email]>
>>>>>> wrote:
>>>>>>>
>>>>>>> I just talked to Hiram to figure out why it got there in the first place.
>>>>>>> He gives a
>>>>>>>
>>>>>>> -1 for removing,
>>>>>>>
>>>>>>> and I change my vote to 0 :).  The idea comes from the spring jms
>>>>>>> template
>>>>>>> and it's quite handy when you want to reuse the template and keep sending
>>>>>>> to
>>>>>>> the same uri.  The endpoint uri resolves once.  Well, I can see it's
>>>>>>> usefulness.  I'd say let's keep it.
>>>>>>>
>>>>>>> More opinions welcome,
>>>>>>> Hadrian
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Nov 12, 2008, at 8:22 AM, Jon Anstey wrote:
>>>>>>>
>>>>>>>> I've never used this, nor could I imagine when I'd ever want to use it.
>>>>>>>>
>>>>>>>> +1 for removing
>>>>>>>>
>>>>>>>> On Wed, Nov 12, 2008 at 9:34 AM, Hadrian Zbarcea <[hidden email]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi Claus,
>>>>>>>>>
>>>>>>>>> Now I get it :).  In any non trivial case it's useless and could be
>>>>>>>>> confusing/error prone I agree.
>>>>>>>>>
>>>>>>>>> I think it is there mostly for convenience for developers, so if we
>>>>>>>>> take
>>>>>>>>> it
>>>>>>>>> out the inconvenience would be that they'd have to specify the endpoint
>>>>>>>>> (uri) explicitly, which from my point of view is good.
>>>>>>>>>
>>>>>>>>> A strong +1 from me on this, but I'd like another opinion too.
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>> Hadrian
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Nov 12, 2008, at 1:56 AM, Claus Ibsen wrote:
>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>> Yes I did not make my point clear.
>>>>>>>>>>
>>>>>>>>>> It's the fact that CamelContext requires a default endpoint URI to be
>>>>>>>>>> configured. Then you can use ProducerTemplate.sendBody("Hello World")
>>>>>>>>>> and then it will send this body the default endpoint URI. Normally you
>>>>>>>>>> have to provide the URI as well such as:
>>>>>>>>>> ProducerTemplate.sendBody("direct:in", Hello World");
>>>>>>>>>>
>>>>>>>>>> The class DefaultEndpoint should of course be there as the base class
>>>>>>>>>> ;)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> /Claus
>>>>>>>>>>
>>>>>>>>>> On Tue, Nov 11, 2008 at 10:40 PM, Hadrian Zbarcea <[hidden email]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Claus,
>>>>>>>>>>>
>>>>>>>>>>> DefaultEndpoint is the base class for all Endpoints and provides a
>>>>>>>>>>> default
>>>>>>>>>>> implementation of the Endpoint methods.
>>>>>>>>>>>
>>>>>>>>>>> Am I misunderstanding your question?
>>>>>>>>>>>
>>>>>>>>>>> Hadrian
>>>>>>>>>>>
>>>>>>>>>>> On Nov 11, 2008, at 2:22 PM, Claus Ibsen wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi
>>>>>>>>>>>>
>>>>>>>>>>>> I am wondering if this "default" endpoint is used by anyone? I am
>>>>>>>>>>>> wondering what the purpose really is and what it solves. Is it
>>>>>>>>>>>> possible to consider to remove this?
>>>>>>>>>>>> Would remove many methods for ProducerTemplate so less for end users
>>>>>>>>>>>> to get confused by.
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>>
>>>>>>>>>>>> /Claus Ibsen
>>>>>>>>>>>> Apache Camel Committer
>>>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> /Claus Ibsen
>>>>>>>>>> Apache Camel Committer
>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Cheers,
>>>>>>>> Jon
>>>>>>>>
>>>>>>>> http://janstey.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> /Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Regards,
>>> Hiram
>>>
>>> Blog: http://hiramchirino.com
>>>
>>> Open Source SOA
>>> http://open.iona.com
>>>
>
>
> So I'm cool with removing the defaultEndpointUri from the CamelContext
> btw - creating a default ProducerTemplate without specifying a default
> endpoint URI could just barf if you tried to send to the default
> endpoint.
>
> However having a default endpoint URI on a ProducerTemplate is a good
> thing; it lets folks send messages without having to worry, in their
> Java code - of specifying where it goes unless they want to mediate
> between multiple endpoints which they know about.
>
> e.g.
>
> public class MyFoo {
>  @Produce(ref="someEndpoint")
>  ProducerTemplate template;
>
>  ...
>  template.sendBody("<hello>world!</hello>/>");
>
> you then don't have to inject 2 objects; one the URI/endpoint and one
> the producer.
>
>
>
> --
> James
> -------
> http://macstrac.blogspot.com/
>
> Open Source Integration
> http://fusesource.com/
>