On Tue, 6 Nov 2001 11:30, Paul Hammant wrote:
> Peter
>
> I'll reply to other points more fully in the morning, but for now (given
> this paragraph is what I think is your central wish)...
;)
> >Essentially what I want to be able to do is to create a
> >servlet/mailet/whateverlet server that abides by all the rules but does
> > not need to resort to ugly classloader hacks to get working. Not sure -
> > may need more gestation time ;)
>
> For the sake of example - can we talk in terms of Jesktop (my bizarre
> GUI app hoster). Jesktop hosts GUI apps that need Swing, some
> DesktopKernel access and some "Frimble" access for abstraction of
> Windowlike containment.
What we are talking about is the following. Almost all container based
systems define ClassLoader pattern using the following model
System ClassLoader <--- Client API ClassLoader <--- + --- Container
|
|
+ --- Component1
|
|
+ --- Component2
|
|
+ --- Component3
|
|
+ --- Component4
The client API contains the essential interfaces needed for the components to
talk to the Container. In the case of servlets, servlet.jar would be in
client API ClassLoader, catalina.jar in container classloader, and
turbine.jar, cocoon.jar, velocity would each be in separate classloaders.
Phoenix itself follows above model. Eventually the client API will be made up
of just the phoenix-client.jar and avalon-framework.jar libraries. The
container is in separate ClassLoader from all the different .sar files.
It has been a while since I looked at jesktop but from what I recall the
Client API ClassLoader would contain classes for Frimble, DesktopAware,
ConfigletAware etc (or whatever they are called).
However the problem arises because Phoenix follows this model. Usually you
use phoenix to build the "container" part of another application (be it
James: the Mailet container, Jesktop the ...frimble???... container). Thus we
need some way to inject the Client API ClassLoader for hosted apps into the
equation so that it is a parent ClassLoader of the ClassLoader via which
blocks are loaded.
That any clearer ? ;)
--
Cheers,
Pete
------------------------------------
The two secrets to success:
1- Don't tell anyone everything.
------------------------------------
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>