Re: Problem with DefaultCamelContext EndpointRegistry

2013-07-02 Thread Chris Wolf
Claus,

Thanks, but the fact that attempting to add another instance of the
same Endpoint type results in the
name getting and instance number appended means that some
consideration must have been
given to accommodating multiple instances of the same Endpoint in the
registry, right?

In any case, I gave up on the idea of writing a custom component to
solve the dynamic
consumer problem and instead, create consumer routes, at runtime, with
static consumer URIs,
which solves my problem.

Thanks,

Chris

On Fri, Jun 14, 2013 at 7:16 AM, Claus Ibsen claus.ib...@gmail.com wrote:
 Only singleton endpoints should be in the registry.

 Non singleton is prototype based and therefore a new instance is
 created when you call getEndpoint.



 On Wed, Jun 12, 2013 at 7:41 PM, Chris Wolf cwolf.a...@gmail.com wrote:
 Ok, have a partial answer - since my Endpoint is not a singleton, I see that
 DefaultCamelContext.getEndpointKey(String uri, Endpoint endpoint)
 appends that %3A2 -
 i.e. :2 - which appears to be an instance qualifier.  The trouble is,
 DefaultEndpoint.getEndpointUri() will always return the URI *without*
 that instance qualifier,
 so it won;t be found in the endpoint registry.

 Is there an example of a Component whose Endpoint is not a singleton,
 that I can look at?
 Or are non-singleton Endpoints some new, untested feature?

 Thanks,

 Chris

 On Wed, Jun 12, 2013 at 3:28 PM, Chris Wolf cwolf.a...@gmail.com wrote:
 I am trying to develop a new component, but it needs to be able to
 have it's endpoint be registered in
 the CamelContext endpoint registry.   Whenever the runtime tries to
 call DefaultCamelContext.getEndpoint(String uri)
 it returns null, even though, in the debugger, I can expand
 DefaultCamelContext.endpoints.map

 ...and see that, for sure, the endpoint is in the registry, except the
 key now has %3A2 appended, so of course,
 the EndpointKey, which looks like:

 dsftp://localhost:21000?binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5

 ...won't match, so that explains why
 DefaultCamelContext.getEndpoint(String uri) returns null.


 DefaultCamelContext.endpoints.map:  (other entries removed for clarity)
 {dsftp://localhost:21000binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5%3A2=java.lang.ref.SoftReference@f7e5307}

 *** So why does the key in the endpoints.map have %3A2  appended to it? 
 ***

 Thanks,

 Chris



 --
 Claus Ibsen
 -
 www.camelone.org: The open source integration conference.

 Red Hat, Inc.
 FuseSource is now part of Red Hat
 Email: cib...@redhat.com
 Web: http://fusesource.com
 Twitter: davsclaus
 Blog: http://davsclaus.com
 Author of Camel in Action: http://www.manning.com/ibsen


Re: Problem with DefaultCamelContext EndpointRegistry

2013-06-14 Thread Claus Ibsen
Only singleton endpoints should be in the registry.

Non singleton is prototype based and therefore a new instance is
created when you call getEndpoint.



On Wed, Jun 12, 2013 at 7:41 PM, Chris Wolf cwolf.a...@gmail.com wrote:
 Ok, have a partial answer - since my Endpoint is not a singleton, I see that
 DefaultCamelContext.getEndpointKey(String uri, Endpoint endpoint)
 appends that %3A2 -
 i.e. :2 - which appears to be an instance qualifier.  The trouble is,
 DefaultEndpoint.getEndpointUri() will always return the URI *without*
 that instance qualifier,
 so it won;t be found in the endpoint registry.

 Is there an example of a Component whose Endpoint is not a singleton,
 that I can look at?
 Or are non-singleton Endpoints some new, untested feature?

 Thanks,

 Chris

 On Wed, Jun 12, 2013 at 3:28 PM, Chris Wolf cwolf.a...@gmail.com wrote:
 I am trying to develop a new component, but it needs to be able to
 have it's endpoint be registered in
 the CamelContext endpoint registry.   Whenever the runtime tries to
 call DefaultCamelContext.getEndpoint(String uri)
 it returns null, even though, in the debugger, I can expand
 DefaultCamelContext.endpoints.map

 ...and see that, for sure, the endpoint is in the registry, except the
 key now has %3A2 appended, so of course,
 the EndpointKey, which looks like:

 dsftp://localhost:21000?binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5

 ...won't match, so that explains why
 DefaultCamelContext.getEndpoint(String uri) returns null.


 DefaultCamelContext.endpoints.map:  (other entries removed for clarity)
 {dsftp://localhost:21000binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5%3A2=java.lang.ref.SoftReference@f7e5307}

 *** So why does the key in the endpoints.map have %3A2  appended to it? ***

 Thanks,

 Chris



-- 
Claus Ibsen
-
www.camelone.org: The open source integration conference.

Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen


Problem with DefaultCamelContext EndpointRegistry

2013-06-12 Thread Chris Wolf
I am trying to develop a new component, but it needs to be able to
have it's endpoint be registered in
the CamelContext endpoint registry.   Whenever the runtime tries to
call DefaultCamelContext.getEndpoint(String uri)
it returns null, even though, in the debugger, I can expand
DefaultCamelContext.endpoints.map

...and see that, for sure, the endpoint is in the registry, except the
key now has %3A2 appended, so of course,
the EndpointKey, which looks like:

dsftp://localhost:21000?binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5

...won't match, so that explains why
DefaultCamelContext.getEndpoint(String uri) returns null.


DefaultCamelContext.endpoints.map:  (other entries removed for clarity)
{dsftp://localhost:21000binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5%3A2=java.lang.ref.SoftReference@f7e5307}

*** So why does the key in the endpoints.map have %3A2  appended to it? ***

Thanks,

Chris


Re: Problem with DefaultCamelContext EndpointRegistry

2013-06-12 Thread Chris Wolf
Ok, have a partial answer - since my Endpoint is not a singleton, I see that
DefaultCamelContext.getEndpointKey(String uri, Endpoint endpoint)
appends that %3A2 -
i.e. :2 - which appears to be an instance qualifier.  The trouble is,
DefaultEndpoint.getEndpointUri() will always return the URI *without*
that instance qualifier,
so it won;t be found in the endpoint registry.

Is there an example of a Component whose Endpoint is not a singleton,
that I can look at?
Or are non-singleton Endpoints some new, untested feature?

Thanks,

Chris

On Wed, Jun 12, 2013 at 3:28 PM, Chris Wolf cwolf.a...@gmail.com wrote:
 I am trying to develop a new component, but it needs to be able to
 have it's endpoint be registered in
 the CamelContext endpoint registry.   Whenever the runtime tries to
 call DefaultCamelContext.getEndpoint(String uri)
 it returns null, even though, in the debugger, I can expand
 DefaultCamelContext.endpoints.map

 ...and see that, for sure, the endpoint is in the registry, except the
 key now has %3A2 appended, so of course,
 the EndpointKey, which looks like:

 dsftp://localhost:21000?binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5

 ...won't match, so that explains why
 DefaultCamelContext.getEndpoint(String uri) returns null.


 DefaultCamelContext.endpoints.map:  (other entries removed for clarity)
 {dsftp://localhost:21000binary=truedirectory=target%2Fres%2Fhomefilter=%23cpmdFileFilteridempotent=truelocalWorkDirectory=target%2Fres%2Ftmp%2Flocalmove=archive%2F%24%7Bfile%3Aname%7Dpassword=adpt5separator=UNIXusername=adpt5%3A2=java.lang.ref.SoftReference@f7e5307}

 *** So why does the key in the endpoints.map have %3A2  appended to it? ***

 Thanks,

 Chris