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>
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>