I have committed it now. It's the # notation that we can do in Camel 2.0. There might be a few components that have special options to Ref a bean we can remove and use the # syntax instead.
Updated wiki at: how do I configure endpoints. Are the other relevant pages at wiki to add this? /Claus Ibsen Apache Camel Committer Blog: http://davsclaus.blogspot.com/ On Mon, Dec 8, 2008 at 11:56 AM, <[EMAIL PROTECTED]> wrote: > +1 I like it! > > > On 06/12/2008, Claus Ibsen <[EMAIL PROTECTED]> wrote: >> Hi >> >> For background see CAMEL-895 and this thread by James >> http://www.nabble.com/-2.0--simplifying-annotations%2C-DSL-and-XML-to-remove-uri-%2B-ref--tp20775864s22882p20775864.html >> >> Motivation >> ======= >> Currently the URI configuration of camel endpoints is used a lot. It's >> fast, precise and intuitive for end-users. And it supports most of >> their use-cases. >> The URI options is given as string parameters just like http. Camel >> will then parse this and type convert and call the correct setter on >> the concrete xxxEndpoint object. >> Camel can do the traditional type converts for numeric, boolean, >> string, enum and what not. However the problem is... >> >> The problem >> ========= >> That we can not set complex objects on endpoint using URI options. >> Each individual component need to add special code to support this and >> it's irritating me. Why can't we do it smarter. >> And if we do it smarter then we get this out-of-the-box so suddenly >> *all* components support this. >> >> The idea >> ====== >> The idea is to support the # syntax for URI options (I think Apache >> CXF has this as well). >> >> So if you want to set a complex object type on a given endpoint you >> can refer to a bean in the registry using the # notation. An example: >> file://inbox/?idempotent=true&idempotentRepository=#myJpaRepo >> >> Then end users can configure the myJapRepo in the Spring XML using >> standard spring bean ids. >> >> Benefits >> ====== >> - It's easy for end users as they can look at the xxEndpoint and see >> which properties it has (setters). And they can use the # notation to >> set it for complex objects as well. >> - When you add options to an endpoint you get this notation for free, >> no need to add special code to the xxxComponent to do the lookup >> yourself >> - Even some options on default endpoints is now exposed and >> configurable, such as the executorService >> - We can reduce existing code >> - Easier for end users to understand that # is for regestry lookup >> instead of inventing our own custom names such as: >> idempotentRepositoryRef >> - And as a real bonus we don't have to wiki document the special >> options idempotentRepositoryRef. We get all this for free with # so we >> can just document the idempotentRepository option >> >> Any thoughts? >> >> >> /Claus Ibsen >> Apache Camel Committer >> Blog: http://davsclaus.blogspot.com/ >> > > > -- > James > ------- > http://macstrac.blogspot.com/ > > Open Source Integration > http://fusesource.com/ >
