hello,

the attached files are containing UML
diagrams that are illustrating the classloader
system i just created.

regards

daniel s. haischt
--

> -----Ursprüngliche Nachricht-----
> Von: Peter Donald [mailto:peter@;apache.org]
> Gesendet: Samstag, 2. November 2002 03:43
> An: Avalon-Phoenix Developers List
> Betreff: Re: Customizable ClassLoader trees
>
>
> On Sat, 2 Nov 2002 11:01, Daniel S. Haischt wrote:
> > my OpenEJB block uses a similar hirarchical
> > classloader system. because i did the classloader
> > by myself as a part of my iChilli app server
> > i am configuring the classloaders within the
> > block's config.xml file.
> >
> > additionally the iChilli app server that i
> > am currently developing starts several servers
> > (a web container, an ejb container, a jms server etc.)
>
> sounds neat. I went and had a look at ichiili.sourceforge.net but
> it does not
> seem to have a lot in CVS that can be twiddled with at this stage.
>
> > because a ejb container needs to now when a
> > content of a specific directory will change
> > it is possible to add a <monitored>true</monitored>
> > flag to a specific classloader. that enables
> > a server (ex.: openejb) to register itself
> > as a ClassLoaderListener. that way a ClassLoader
> > will deliver added/deleted/changed events to
> > the appropriate server.
>
> cool. BTW you may want to have a look at
> jakarta-avalon-excalibur/monitor +
> jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/componen
> ts/monitor
> that does a similar thing. The excalibur classes are a generic monitoring
> toolkit while the phoenix ones monitor deploy directorys and redeploy on
> changes.
>
> > allthough as i said i created this classloader
> > systems a couple of weeks ago and i did it within
> > three days, so i didn't test every possible
> > scenario that could occure while using the
> > classloaders.
> >
> > if you want i can send u my configuration files
> > and some UML digrams that illustrate what i have
> > described above.
>
> that would be great.
>
> --
> Cheers,
>
> Peter Donald
> ---------------------------------------------------
> "Therefore it can be said that victorious warriors
> win first, and then go to battle, while defeated
> warriors go to battle first, and then seek to win."
>               - Sun Tzu, the Art Of War
> ---------------------------------------------------
>
>
> --
> To unsubscribe, e-mail:
<mailto:avalon-phoenix-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail:
<mailto:avalon-phoenix-dev-help@;jakarta.apache.org>


Attachment: classloading.zip
Description: Zip compressed data

-----Ursprüngliche Nachricht-----
Von: Daniel S. Haischt [mailto:sirabyss@;gmx.net]
Gesendet: Donnerstag, 24. Oktober 2002 04:09
An: David Blevins
Cc: 'LASKOWSKI,JACEK (HP-Poland,ex1)'
Betreff: AW: AW: [OpenEJB-dev] [OT] classloader structure for iChilli


hello,

i just want to share the current classloading architecture that i
currently have. attached u'll find a zip file that contains a couple
of files that will be referenced by this mail.

1. ichilli-config - Phonix block config:
----------------------------------------

this file contains the main configuration
for the iChilli block for phoenix. this example
config file contains a couple of server definitions
and for each server definition a corresponding block
that contains server parameters.

a server block also defines its classloader structure
using the <classloaders/> element. a <classloader/>
element will be identified by a <name/>, <monitored/>
and several <entry/> elements.

 - the name defines the name of the CL
 - the monitored element identifies whether
   this entry should be monitored by the phoenix
   SchedulerService for changes. that means if
   a file changes or a file will be added a
   changed/deleted/added event will be fired.
 - the entry element contains a file or a directory.
   as u can see it is possible to use wildcards.
 - it is possible to define properties that can
   be used later in the XML file using the
   ${my.property} syntax. those properties will be
   passed right to the Java instance of the actuall
   server, so they can be used later. some properties
   are reserved/predefined like the ${block.context}
   property.

2. instantiation sequence:
--------------------------

this is a description of the sequence diagram
'iChilliStartup'.

 a) during the Phoenix startup the iChilli block will
    be configured, contextualized and initialized.
 b) if the block is running it will loop over all
    the various server defintions and builds the
    server's classpath hirarchy. finally the
    ClassLoaderFactory initializes the server thread
    and sets the thread's context class loader to the
    root loader of the server.

    the ClassLoaderFactory and the ServerFactory are
    maintaining a list of classloaders/servers.

3. Maintaining changes
----------------------

a server (for example OpenEJB) implements the ...

 IchilliClassLoaderListener interface

... which enables the server to recieve ...

 - added
 - changed
 - deleted

... events. that way it will be possible to figure out
whether new web applications or enterprise beans were
added to the respective directories.

GOOD NIGHT!!!

daniel s. haischt
--
--
To unsubscribe, e-mail:   <mailto:avalon-phoenix-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-phoenix-dev-help@;jakarta.apache.org>

Reply via email to