On Jan 3, 2007, at 8:54 PM, Dain Sundstrom wrote:

I like this. It would make *deep* embedding much easier if there where a single object to start with that encapsulated the details of the Assembler and ContainerSystem.

Yea, if you read all of this thread where I propose the properties stuff[1] to Vincent who was doing a Cactus integration, the ultimate feeling from him was that he would prefer a more Jetty-like approach where he could simply "build" things himself.

I guess I would describe this assembler as more of a "push" approach rather than a "pull" approach that we have now in the classic assembler. Push == you construct and call us, Pull == we'll construct and call you. I.e. with a Pull you have to implement an interface that we consume to pull our data out. Not ideal for everyone.


BTW would there be methods to add and remove ServerServices?

I guess we could do that, but that code is in a completely different package not seen by openejb-core at compile time so the actual "how" would have to be clever. Maybe we simply offer a similar interface in the openejb-server module and make the Finder approach simply one way to add ServerServices.

-David

[1] http://www.mail-archive.com/[email protected]/msg00171.html


-dain

On Jan 3, 2007, at 3:28 PM, David Blevins wrote:

So this kind of idea has been in my head for a while. Basically, the idea is for an interactive assembler implementation which people could call to add/remove containers, resources, and beans at runtime. We'd also use it to support other services which could now also do the same.

The classic assembler is a one-shot builder, it constructs everything and it's job is done. What I'm imagining the Dynamic Assembler to be is more of an API for people who want to make calls to build up and add to the container system at runtime. It'd leverage the InfoObject tree we have now to allow people to do things like:

addContainer(ContainerInfo info)
addEjbJar(EjbJarInfo info)
addResource(ResourceInfo info)

There would be equivalent methods for removing any of the above. We might even have equivalent overloaded versions that might look like this:

addContainer(String id, Class impl, String type, Properties containerProps)
addEjbJar(org.apache.openejb.EjbJar ejbJar)
addEjbJar(URL jarLocation)
addResource(URL jdbcUrl)

Not a completely flushed out idea, just kind of brain storming and looking for feedback.

-David


Reply via email to