activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: [Camel] simplified discovery of Component/Endpoints available
Date Wed, 04 Apr 2007 17:06:10 GMT
Agreed! I do find the use of the getUrlPrefixes() stuff in
DefaultComponent smelly :)

I think it'd be better if the component didn't need to worry about
what the prefixes might be & that was decoupled (e.g. calling
addComponent(name) or doing the auto-discovery of URI scheme ->
component implementation was kinda invisible to the Component
implementation.


On 4/4/07, Hiram Chirino <hiram@hiramchirino.com> wrote:
> I like it.
>
> But looking at DefaultCamelContext.resolveEndpoint() I think it can
> lead to a little non determinism since 2 components could resolve the
> same endpoint.  I'm thinking that to make things more deterministic,
> uri should always start with the component name as the uri prefix.
> That way we can look up the component out of a map instead of looping
> though all of them to see if they can resolve the uri.
>
> If the component has not been registered yet, we can then fall back
> and auto create the component if by using the discovery techniques we
> are used to using.
>
>
> On 4/4/07, James Strachan <james.strachan@gmail.com> wrote:
> > I found the old implementation of EndpointResolver a bit smelly; so
> > I've tried to clean it up to make it easier for folks to write new
> > components.
> >
> > The basic idea is
> >
> > * folks should generally only need to write a Component & Endpoint
> > implementation; no other classes needed other than maybe
> > Producer/Consumer
> >
> > * components can create new endpoints via the resolveEndpoint(uri)
> > method; the can just derive from DefaultComponent and get most of the
> > URI magic for free; just overloading the actual factory method to
> > create an Endpoint
> >
> > * adding a file in
> > META-INF/services/org/apache/came/component/${scheme} can plugin
> > auto-discovered components
> >
> > * users can explicitly instantiate, configure & register components to
> > the CamelContext; or via the Injector the CamelContext can auto-inject
> > them with their required dependencies. (e.g. folks could have a single
> > DataSource or ConnectionFactory in a spring context which could be
> > auto-injected etc)
> >
> > I've written a little bit of documentation for component developers here...
> > http://cwiki.apache.org/CAMEL/writing-components.html
> >
> > I've just committed the above changes. Thoughts?
> >
> > --
> >
> > James
> > -------
> > http://radio.weblogs.com/0112098/
> >
>
>
> --
> Regards,
> Hiram
>
> Blog: http://hiramchirino.com
>


-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message