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]



Reply via email to