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