On 10/13/06, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
I have checked in some new code in servicemix-bean to be able to handle InOut exchanges and acting as a consumer.
Sounds cool! BTW I've also added the ability for the BeanComponent to auto-discover POJOs on the classpath by the user specifying package names to search through, then any bean with an @Endpoint annotation will be auto-exposed. We can use the same technique to auto-expose regular JSR 181 POJOs with servicemix-jsr181 too.
However there are a few things that do not work yet and some things I did not find a clean way to handle. We can now inject several stuff using @Resource annotation (not yet JNDI references), mainly a ComponentContext and a DeliveryChannel. @PostConstruct is also supported,
Great!
but I think we need to have scoped beans and create new beans for each request received (or maybe pool them).
Agreed. If we are creating and injecting POJOs each time, there's really no need to pool (as we can just inject anything which needs to be pooled, like JDBC/JMS connections et al)
There is a Callback annotation which has a condition expression evaluated using jexl each time an consumer exchange is received (i.e. a response to an InOut or a DONE status of an InOnly exchange that the bean has created and sent). The condition is evaluated using jexl. But we need to find a way to not call the same condition several times (maybe keep the old evaluation result and only call the callback when the value changes from false to true). Last, I haven't coded yet how to return the response when using an InOut request. And we also need a way to receive / throw faults.
Yeah. Was thinking, if the method returns an object value, we use some kinda marshaller (which could be specified explicitly via an annotation or we could use smart defaults) - to turn it into a message body. -- James ------- http://radio.weblogs.com/0112098/