Stephen,

I was taking a stab at porting over the Turbine Merlin Component service to
the latest and greatest.  I noticed a lot of SNAPSHOT versions.  Should I be
looking at the MerlinServlet as the best example to mimic?  I worked with
it, but am getting exceptions like this:

---- exception
report ----------------------------------------------------------
Turbine/Merlin problem.
Exception: org.apache.avalon.repository.RepositoryException
Message: Unable to establish a factory for the supplied artifact:
 artifact: [jar: avalon-logging:avalon-logkit-impl;1.0-SNAPSHOT]
 build: 20040125.130218
 factory: org.apache.avalon.logging.logkit.DefaultLoggingFactory
 source:
file:/C:/java/maven/repository/avalon-logging/jars/avalon-logkit-impl-1.0-SN
APSHOT.jar
 repository: cache:.\target, http://dpml.net/, http://ibiblio.org/maven/
----
cause ---------------------------------------------------------------------
Exception: java.lang.NoClassDefFoundError
Message: org/apache/log/LogTarget
---- stack
trace ---------------------------------------------------------------
java.lang.NoClassDefFoundError: org/apache/log/LogTarget
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)
java.lang.Class.getConstructor0(Class.java:1922)
java.lang.Class.getConstructor(Class.java:1019)
org.apache.avalon.repository.main.AbstractBuilder.createDelegate(AbstractBui
lder.java:107)
org.apache.avalon.repository.main.DefaultBuilder.<init>(DefaultBuilder.java:
276)

It seems like the logging isn't getting set up properly because it needs
LogTarget?  Which doesn't seem to exist?

Basically, I am trying to find the shortest path to getting a working kernel
up and running.  I'll attach my current .java class for you to see.  (note,
it is rather rough!).

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]

Reply via email to