I'm leaning towards combining them because separating commonalities out into a third project is basically creating an "SPI2". Also, most of the stuff that would be pulled out is related to injection and reflection which I don't think we want to expose as an API at this point.

Jim

On Jun 20, 2006, at 8:09 AM, Jeremy Boynes wrote:

I definitely agree that we should not be putting implementation into
spi. We've been down the duplication path before and it did not work -
the system and java containers quickly started to skew from each other
(e.g. autowire only works for system components).

Is there a way in which we can factor implementation "shared" by the
system and java containers into a separate module? That would provide a
common basis for other containers based on a POJO IoC model; however,
implementation dependencies may well pull in a lot more of core than
appropriate. It would only be worth doing if we expected a lot more
containers that can use that infrastructure - I'm not sure that will be
the case as others are likely to have a different programming model.

Given that I think the approach of merging them together combined with a
example of a simple POJO container is the least worst option.

--
Jeremy

Jim Marino wrote:
In trying to eliminate reliance on core2 by container.java in the
sandbox and have it only rely on the extensibility SPI, it occurred to me that this would mandate moving a lot of implementation classes from core2 into SPI. I believe having container.java as a separate project
rely on core2 is the wrong approach. This leaves three options:

- move the required classes to SPI
- make container.java not dependent on core classes by duplicating them
- merging container.java with core.

I think moving the classes to SPI is not the best approach since they
are implementations. Having duplicate classes does not seem to be the optimal approach either as that will result in a maintenance burden and
a lot of code repetition.  As background, the sharing of  classes
between core2 and container.java arises from the fact that the runtime
uses a POJO model to assemble system services, and hence  there is
commonality between the two.

I prefer to do the latter as it appears to be the cleanest. Also,
java.container is not a very good example of how to extend the
recursive core due to its "advanced" capabilities. I'd rather include a
simple Java container geared to demonstrating how to extend the
runtime. It would be helpful if people provide input over the next
day...I plan to implement choice 3 tomorrow if there are no alternatives.

Jim

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to