[MERLIN] package update

Stephen McConnell <[email protected]>
Newsgroups gmane.comp.jakarta.avalon.phoenix.devel,gmane.comp.apache.user
Message-ID <[email protected]>
Consolidation of several related Merlin projects has been completed and 
committed earlier today to the avalon-sandbox CVS. The 
avalon-sandbox/merlin directory now contains the Merlin sources and all 
resources required to build a Merlin installation.

Structure and build procedures are described below.

STRUCTURE:
----------

merlin
|
+-- assembly assembly implementation
+-- assembly-spi assembly SPI interfaces and classes
+-- merlin-cli merlin command line handler
+-- merlin-core merlin kernel, block, and container
+-- merlin-spi merlin SPI interfaces and classes
+-- meta meta package implementation
+-- meta-spi meta SPI interfaces and classes
+-- merlin-extensions
+- merlin-jndi merlin JNDI connector
+-- merlin-smp site and installation resources
+- target
+- docs generate site documentation
+-- target
+- inst the generated installation (see
build procedure detailed below)


BUILD PROCEDURE:
----------------

The Merlin project now requires the Maven project management tool. You 
can either checkout maven (from the jakarta-turbine-maven CVS 
repository) or download Maven beta 0.8. Please note that I'm currently 
running Maven CVS HEAD which includes some Avalon specific resources and 
some fixes to the manifest management side of things. I have not tested 
a build against the 0.8 download, however, a 0.9 release is scheduled 
for availability within a matter of days. The current 0.8 release is 
available at the following URL:

http://jakarta.apache.org/builds/jakarta-turbine-maven/release/1.0-beta-8/

If you have already a MERLIN_HOME environment variable defined, then all 
you need to do is invoke the "merlin-install" goal (although it is 
recommended that discard your current Merlin lib directory beforehand).

$ maven merlin-install

Alternatively you apply the following step-by-step process. The 
"merlin-dist" goal builds a Merlin installation directory under the 
default /target/inst directory. Please note that the installation build 
does not generate a demonstration apps at this time (this should be 
resolved shortly through the addition of a merlin plugin for Maven). For 
the moment an old version of a couple of demonstration block is included 
in the CVS to enable validation of your installation.

$ maven merlin-dist

Following the creation of an installation you need to declare the 
environment variable MERLIN_HOME with a value corresponding to the 
directory in which you choose to deploy the merlin system. Please also 
make sure that you include MERLIN_HOME/bin in your PATH environment 
variable (that's needed if you want to run Merlin from anywhere). You 
can then copy the inst directory to MERLIN_HOME following which the 
Merlin command line utilities should function properly. You can confirm 
this (on NT) by opening a new DOS window and invoking the following command:

$ merlin -help

Please note that the help information (available in English, French and 
German) does not correctly reflect command line semantic just at the 
moment - some more work needed here). You could also validate your 
installation by launching Merlin with an initial set of demonstration 
components using the following command (NT variant):

$ merlin %MERLIN_HOME%\repository\demo\block.xml

or

$ merlin %MERLIN_HOME%\repository\playground-1.0.jar

If you're really interested in seeing what Merlin is doing in the 
background, just add the -debug parameter on the command line. For example:

$ merlin %MERLIN_HOME%\repository\demo\block.xml -debug

Support for the installation and execution of Merlin as an NT process is 
now included in the package (refer bin directory) - special thanks to 
Leif for helping to set this up.

For additional information please check the documentation. The 
"merlin-site" goal aggregates the sources from across the main Merlin 
sub-projects to build a consolidated project presentation. The goal 
should be invoked from the root merlin directory.

$ maven merlin-site

Finally, a couple of notes ..

Please keep in mind that while Merlin is nearing completion and 
readiness for a first release, it is still alpha, APIs are changing, and 
much of the documentation needs to be updated. It is not recommended to 
use the project outside of research and experimental activities at this
time unless you have a passion for living on the edge.

Secondly, the transition from Ant based builds to Maven means that the 
current Gump targets are broken and will need to be removed pending a 
solution from the Maven/Gump communities. Although there are mechanisms 
with Maven for automatic generation of ant build files for a project, 
the generated build files are not sufficiently synchronized with Maven 
to enable reliable build replication at this time. A second Maven issue 
that has appeared concerns the use of SNAPSHOT versions across the 
Merlin dependencies. To-date I have not managed to get this functioning 
properly.

Lastly, the project descriptors include a remote repository reference to 
www.osm.net. The repository at OSM is simply a temporary resource while 
we get something in place on Apache. However, please not that the 
repository is actually mounted on a development machine about six inches 
away from my keyboard. As such you may experience interruptions during a 
build. Once the actual Maven build process has been validated by others, 
we will be able to focus on moving the repository over to Apache.

Enjoy!

Cheers, Steve.

p.s. All feedback appreciated.

-- 

Stephen J. McConnell

OSM SARL
digital products for a global economy
mailto:[email protected]
http://www.osm.net
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.