<snip/>

> Which implies that the ProxyContext class needs to move to the loader
> package.
> (i.e. part of the low-level bootstrap).

[Karasulu, Alex] 

The ProxyContext seems to fit well where you put it within the repository
package.  Correct me if I'm wrong but don't we need everything within the
repository spi and impl to be available during kernel bootstrapping on the
system classpath?  Kernel bootstrapping, as I understand it from the past
few emails, needs to do the following:

(listed so you can correct me where I stray)

1). Discover kernel configuration parameters within various sources in the
environment (based on defaulting policy).

2). A small subset of the configuration information is used to establish the
system repository to be able to access or snarf down the required artifacts
for creating and populating a ClassLoader used to start the Merlin kernel. 

3). All this happens within the system ClassLoader.  The kernel is then
started in its own ClassLoader.  Now this means we need the classes within
the repository packages within the system classpath as well as the loader
classes: all preferably within one tight jar.  Other jars are added to the
kernel ClassLoader as we pull them down or find them in the system repo.

Let me know if I'm on track here.

> I think the utility classes like ExceptionHelper, StringHelper, and
> property passing can all be pushed into the loader package.  

[Karasulu, Alex] 

We need to have access to a bunch of classes and interfaces to bootstrap the
kernel and these classes must reside within a single kernel bootstrap jar as
mentioned above.  These bootstrap classes (Loaders, Env variable access
utilities and helper classes etc) must be present to establish the system
repository.  However they need to reside in their appropriate packages.
With the classes in the bootstrap jar there is no reason to have duplicates
within their respective subproject jars today.

So I guess we are going to have the following jar used for virtually every
Merlin scenario:

merlin-bootstrap.jar

This jar must contain most of the repository classes and interfaces I would
imagine along with the KernelConfig and Env classes.  The jar would need to
be on the system classpath.  The other api, spi, impl jars for extention,
composition, activation would be loaded later from the system repo.

Now do the classes loaded from the system repo and the kernel go into their
own classloader?  Should this be the case always including in the unit
testing to avoid the problem you clarified with maven?

I'm beginning to think the loader and bootstrap stuff are closely related.
I'm just thinking out load here.  Shouldn't we keep these in the same
project or do we want to separate it? Perhaps this is another example of
semantics.  Is Merlin, the CLI program, one project and the kernel
bootstrapping (loading) code another?  If so let's find some names to
distinguish between the two and clarify their roles because their names are
confusing me and would probably confuse other unfamiliar developers.

> I would
> also like to leverage property parsing when dealing with values in block
> and kernel descriptors.

 [Karasulu, Alex] 

Do you mean implementing a form of macro expansion within the XML files
similar to the way Ant scripts work with properties?

Alex




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

Reply via email to