Note that for orchestration, there is also the bpmscript component
which should do a good job.

On 8/19/06, Philip Dodds <[EMAIL PROTECTED]> wrote:
Thanks for all the feedback - this is great stuff!  I've put some
comments inline below,

P

On 8/18/06, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
> This is a great idea !
> While the jsr181 component is really helpfull to hide all jbi / xml stuff,
> the only other solution is to use the lwcontainer or to create a new
> component from scratch.  So i'm all in favor for a new pojo component
> more related to jbi.
>
> A few thoughts ...
>
> 1) Annotation drive injection is imho a great tool, but i'm not sure it will
> give all the features that spring brings like transaction proxies,
> jndi lookups, etc...  Well, i guess it could, but it may be a lot of work.
> I was thinking about using annotations on the jsr181 component to
> support EJB via pitchfork.

I agree that some of the inject stuff is great but the spring
additions can make it more powerful,  I'm interested as to whether we
could look at the SCA inject process and compare it a little with
pitchfork - though the idea of a spring context around somewhere to
make stuff available is definiately a good basis for a number of
things.

>
> 2) Classpath problem.  As the SU will contain java code, you have to be
> able to create a classloader for this SU.  Xbean already does this, but we
> can find other ways.  We could state that the /classes and /lib directories
> inside a SU would be used to create a classloader.  This could also be done
> for all xbean based components and would avoid the need to write / generate
> the <classpath /> tag.

I have been thinking so far that the POJO approach wouldn't use XBean
however I have been wondering if convention over configuration should
kick in - it if you have an xbean.xml then it will look simply process
that - therefore you could override POJO's annotations in there and
also do spring injection etc.  However if the XBeanDeployer doesn't
find an xbean.xml then it creates an Endpoint for each of the
annotated POJO's it finds in the direct classpath.  I have been
wondering if the same could be applied to the JSR181 - if you don't
have a xbean.xml then it can look for annotations?  Also for a BPEL if
there isn't an xbean.xml then we look for bpel processes?  Its just a
thought but could simplify the Service Units.
>
> 3) Threading model.  On the jsr181 component, the threading model is the 
servlet
> model: a single thread-safe instance if used to process all requests.
>  However, using
> spring aop features, you can easily configure pooling or thread based pojos.
> Should we define a new annotation set for that ?
> We could also take a look at how SCA defines that: you can define the scope
> of a bean (per request, session, application, if i recall).

Maybe we should look at cross engine annotations?  I'm not sure about
the SCA threading model but i have been starting to go through the
tuscany project a little more closely so I'll have a dig around :)


>
> 4) JBI related features.  While the jsr181 component can only handle
> synchronous request / response calls, we should aim to provide a clean
> support for asynchonous request / response patterns.  A consumer should
> be able to send an InOut exchange asynchronously and a way to provide
> a callback which would be called when the answer is received.

I wonder if the continuations approach that has been bounced around
might be useful here? Or the SCA callback approach?

>
> 5) Support for beanflow.  I think this component would be a better candidate
> than the jsr181 one to provide built-in support for beanflow.  This could
> be very usefull on top of #4 (async messages).

I still need to get my head around beanflow use cases  ;)

>
> 6) Use of the client api (or a simplified version), support for URIs ...
> James had worked some time ago on a cleaner client api, but
> setepped back to keep compatibility.  The javadocs is still online :(
> See 
http://incubator.apache.org/servicemix/maven/servicemix-core/apidocs/org/apache/servicemix/client/Client.html
> and 
http://incubator.apache.org/servicemix/maven/servicemix-core/apidocs/org/apache/servicemix/client/Destination.html
>
> I think by providing built-in support for beanflow in this component, we could
> easily implement a pojo based orchestration engine.
> When an exchange is received by the component, it create a pojo and start
> the flow.  This flow will first receive the exchange, could send an
> async request / response,
> each response would call a given method on the pojo, etc ...

I like the idea of a simple POJO orchestration engine and I like the
idea that URI's might play into that integration!
>
> Sorry for this long email ;)
>
> On 8/18/06, Philip Dodds <[EMAIL PROTECTED]> wrote:
> > I have knocked up some thoughts on a JBI POJO engine that could be
> > used to provide a mechanism for annotating POJO specifically for more
> > messaging level operations that the JSR181 service engine is aimed
> > for.
> >
> > The idea is to provide a simple framework to replace the Spring Client
> > Toolkit that is now defunt.
> >
> > Have a look at the idea -
> > http://goopen.org/confluence/display/SM/JBI+Pojo+Service+Engine
> >
> > And all comments/thoughts are welcome!!
> >
> > P
> >
>
>
> --
> Cheers,
> Guillaume Nodet
>



--
Cheers,
Guillaume Nodet

Reply via email to