Hi,

What does the "merlin.deployment" property exactly
specify.I read abt it  yesterday somewhere on avalon
site but can't find it now.

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]

Reply via email to