Let me have another stab at the minimum version with 3.2.5 and then I'll send you the file directly if I have problems..
Thanks! Eric > -----Original Message----- > From: Stephen McConnell [mailto:[EMAIL PROTECTED] > Sent: Monday, January 26, 2004 11:20 AM > To: Avalon framework users > Subject: Re: [merlin] introduction to embedding > > > Eric Pugh wrote: > > cause > --------------------------------------------------------------------- > > Exception: java.lang.NoClassDefFoundError > > Message: org/apache/log/LogTarget > > </snip> > > > It seems like the logging isn't getting set up properly > because it needs > > LogTarget? Which doesn't seem to exist? > > Loks to me like you probably have an implementation jar file in your > project.xml that also references logkit. > > > Basically, I am trying to find the shortest path to getting > a working kernel > > up and running. > > Under 3.2.5 the shortest path is: > > InitialContext context = new DefaultInitialContext(); > Artifact artifact = > Artifact.createArtifact( "merlin:merlin-impl;3.2.5" ); > Builder builder = new DefaultBuiilder( artifact ); > Factory factory = builder.getFactory(); > Object merlin = factory.crteate(); > > But I'm taking lots of shortcuts and skipping all of the hard work of > parametrization. > > > I'll attach my current .java class for you to see. (note, > > it is rather rough!). > > Attachement never made it - can you send it to me privately? > > Cheers, Steve. > > > Eric Pugh > > > > > > However, it is being masked by this error: > > > > > >>-----Original Message----- > >>From: Stephen McConnell [mailto:[EMAIL PROTECTED] > >>Sent: Sunday, January 25, 2004 11:36 PM > >>To: Avalon framework users > >>Subject: Re: [merlin] introduction to embedding > >> > >> > >>Sonu Vijay wrote: > >> > >> > >>>Hi, > >>> > >>>What does the "merlin.deployment" property exactly > >>>specify.I read abt it yesterday somewhere on avalon > >>>site but can't find it now. > >> > >>The DefaultFactory class in the merlin/kernel/impl package is > >>responsible for (a) establishing an initial factory > criteria, and (b) > >>creating a kernel instance using a default or modified criteria > >>argument. When the DefaultFactory prepares the initial criteria, it > >>builds up the default values using a combination of: > >> > >> - hard coded defaults > >> - defaults derived from merlin.properties files in > >> * MERLIN_HOME/merlin.properties > >> * ${merlin.dir}/merlin.properties > >> * ${user.home}/merlin.properties > >> - system properties > >> > >>Property names and the corresponding allowable values are > declared in > >>the following page: > >> > >> http://avalon.apache.org/merlin/merlin/kernel/properties.html > >> > >>The merlin.deployment property defines a comma separated sequence of > >>blocks to be included in the root merlin application block > on startup. > >> > >>Stephen. > >> > >> > >> > >> > >>>thanks > >>> > >>> > >>>--- Stephen McConnell <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>>Mathews Julien wrote: > >>>> > >>>> > >>>> > >>>>>Yeah Stephen, This helps in making things more > >>>> > >>>>clear. > >>>> > >>>> > >>>>>Stephen wrote: > >>>>>The > >>>>> > >>>>> > >>>>> > >>>>>>avalon-repository > >>>>>> system uses artifact references as the key to > >>>> > >>>>locating meta data > >>>> > >>>> > >>>>>> about embedded classloaders. The classloader > >>>> > >>>>meta data is > >>>> > >>>> > >>>>>> maintained as a properties file with the .meta > >>>> > >>>>extension. For > >>>> > >>>> > >>>>>> example the above artifact meta address > >>>> > >>>>translates to: > >>>> > >>>> > >>>>>>The content of the meta file is automatically > >>>> > >>>>generated using the > >>>> > >>>> > >>>>>>avalon-plugin avalon:artifact goal. > >>>>> > >>>>> > >>>>> > >>>>>How does the avalon:artifact goal generate the > >>>> > >>>>meta information in the > >>>> > >>>> > >>>>>.meta info. I mean where does is get the info abt > >>>> > >>>>the "implementation > >>>> > >>>> > >>>>>dependencies" etc. > >>>>> > >>>>> > >>>>>>From some project.xml or some meta tags or where > >>>> > >>>>? > >>>> > >>>>The avalon:artifact goal scans the project PMC > >>>>(Maven's project > >>>>definition) and looks at all of the dependencies > >>>>that are listed. For > >>>>each dependency, the plugin looks for a declared > >>>>dependency properties > >>>>and does some special processing for properties > >>>>named > >>>>"avalon.classloader". For example the following is > >>>>a dependency > >>>>declaration within the merlin/kernel/impl > >>>>project.xml: > >>>> > >>>> <dependency> > >>>> <groupId>merlin</groupId> > >>>> <artifactId>merlin-api</artifactId> > >>>> <version>3.3-SNAPSHOT</version> > >>>> <properties> > >>>> > >>>><avalon.classloader>spi</avalon.classloader> > >>>> </properties> > >>>> </dependency> > >>>> > >>>>The plugin will look for the property name > >>>>"avalon.classloader" and if > >>>>the property value is "api" then the dependency will > >>>>be loaded into an > >>>>api classloader. If the property is "spi" the > >>>>dependency will be loaded > >>>>into a spi classloader which is created as a child > >>>>of the spi loader. > >>>>If no "avalon.classloader" property is declared that > >>>>dependency will be > >>>>loaded into a impl classloader which is created as a > >>>>child of the spi > >>>>loader. > >>>> > >>>>The avalon-repository bootstrapping system will > >>>>attempt to construct a > >>>>classloader chain that looks like the following: > >>>> > >>>> |----------------------| > >>>> | api classloader | > >>>> |----------------------| > >>>> ^ > >>>> | > >>>> |----------------------| > >>>> | spi classloader | > >>>> |----------------------| > >>>> ^ > >>>> | > >>>> |----------------------| > >>>> | imp classloader | > >>>> |----------------------| > >>>> > >>>> > >>>> > >>>> > >>>>>Could you pls explain a little bit. > >>>> > >>>>The avalon:artifact source file is a jelly script in > >>>> > >>>>avalon/util/plugin/plugin.jelly. > >>>> > >>>>Cheers, Stephen. > >>>> > >>>> > >>>> > >>>> > >>>>>Thanks > >>>>>Mathews > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>>From: Stephen McConnell <[EMAIL PROTECTED]> > >>>>>>Reply-To: "Avalon framework users" > >>>> > >>>><[EMAIL PROTECTED]> > >>>> > >>>>>>To: Avalon Users <[EMAIL PROTECTED]> > >>>>>>Subject: [merlin] introduction to embedding > >>>>>>Date: Sun, 25 Jan 2004 16:17:19 +0100 > >>>>>> > >>>>>> > >>>>>>This is a little introduction to embedding > >>>> > >>>>Merlin. The descriptions > >>>> > >>>> > >>>>>>starts off with an overview of the Avalon > >>>> > >>>>Repository bootstrapping > >>>> > >>>> > >>>>>>system - which at the end of the day is the core > >>>> > >>>>embedding technology > >>>> > >>>> > >>>>>>used within the merlin platform. > >>>>>> > >>>>>>Simple Embedding Example: > >>>>>>------------------------- > >>>>>> > >>>>>>1. creating an initial context > >>>>>> > >>>>>> File cache = new File( "my-cache" ); > >>>>>> InitialContext context = new > >>>> > >>>>DefaultInitialContext( cache ); > >>>> > >>>> > >>>>>> The above code defines a cache directory for > >>>> > >>>>the repository > >>>> > >>>> > >>>>>> system to use when loading resources needed in > >>>> > >>>>your embedded > >>>> > >>>> > >>>>>> application - and provides the directory as an > >>>> > >>>>argument when > >>>> > >>>> > >>>>>> creating a new InitialContext object. The > >>>> > >>>>InitialContext is > >>>> > >>>> > >>>>>> you hook into the repository system and the > >>>> > >>>>embedding machinery. > >>>> > >>>> > >>>>>>2. declare what you want to embed > >>>>>> > >>>>>> String spec = > >>>>>> > >>>> > >>>"artifact:avalon-logging/avalon-logkit?version=1.0-SNAPSHOT" > >>> > >>> > >>>>>> Artifact artifact = > >>>>>> Artifact.createArtifact( spec ); > >>>>>> > >>>>>> An artifact is a logical reference to a jar > >>>> > >>>>file (or other type > >>>> > >>>> > >>>>>> of resource) that the repository can access. > >>>> > >>>>The avalon-repository > >>>> > >>>> > >>>>>> system uses artifact references as the key to > >>>> > >>>>locating meta data > >>>> > >>>> > >>>>>> about embedded classloaders. The classloader > >>>> > >>>>meta data is > >>>> > >>>> > >>>>>> maintained as a properties file with the .meta > >>>> > >>>>extension. For > >>>> > >>>> > >>>>>> example the above artifact meta address > >>>> > >>>>translates to: > >>>> > >>>> > >>>[host]/avalon-logging/jars/avalon-logkit-impl-1.0-SNAPSHOT.jar.meta > >>> > >>> > >>>>>> The content of the meta file is automatically > >>>> > >>>>generated using the > >>>> > >>>> > >>>>>> avalon-plugin avalon:artifact goal. Two real > >>>> > >>>>examples are attached > >>>> > >>>> > >>>>>> (the logkit factory and the merlin factory > >>>> > >>>>meta). > >>>> > >>>> > >>>>>> The contents of the meta file includes: > >>>>>> > >>>>>> * a ordered list of jar files that are > >>>> > >>>>required to > >>>> > >>>> > >>>>>> construct a classloader for the embedded > >>>> > >>>>application > >>>> > >>>> > >>>>>> * the name of a factory class to be used as > >>>> > >>>>the embedded > >>>> > >>>> > >>>>>> instance creator > >>>>>> > >>>>>>3. create the factory > >>>>>> > >>>>>> Using the initial context and the artifact you > >>>> > >>>>now have everything > >>>> > >>>> > >>>>>> you need to create you embedded instance. > >>>>>> > >>>>>> Builder builder = m_context.newBuilder( > >>>> > >>>>artifact ); > >>>> > >>>> > >>>>>> Factory factory = builder.getFactory(); > >>>>>> > >>>>>> Behind the scenes the avalon-repository system > >>>> > >>>>has gone off, pulled > >>>> > >>>> > >>>>>> down the meta data, downloaded and cached all > >>>> > >>>>of the classloader > >>>> > >>>> > >>>>>> entries, constructed a new classloader, and > >>>> > >>>>instantiated the > >>>> > >>>> > >>>>>> factory. > >>>>>> > >>>>>>4. parameterizing the factory > >>>>>> > >>>>>> The factory object is the central entry point > >>>> > >>>>of > >>> > >>>=== message truncated === > >>> > >>> > >>>__________________________________ > >>>Do you Yahoo!? > >>>Yahoo! SiteBuilder - Free web site building tool. Try it! > >>>http://webhosting.yahoo.com/ps/sb/ > >>> > >>> > >> > >>------------------------------------------------------------ > --------- > >> > >>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >> > >> > >>-- > >> > >>|------------------------------------------------| > >>| Magic by Merlin | > >>| Production by Avalon | > >>| | > >>| http://avalon.apache.org/merlin | > >>| http://dpml.net/merlin/distributions/latest | > >>|------------------------------------------------| > >> > >>------------------------------------------------------------ > --------- > >>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] > > > -- > > |------------------------------------------------| > | Magic by Merlin | > | Production by Avalon | > | | > | http://avalon.apache.org/merlin | > | http://dpml.net/merlin/distributions/latest | > |------------------------------------------------| > > --------------------------------------------------------------------- > 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]