Gary Shea wrote:

On Tue, 12 Nov 2002, at 03:52 [+0100], Stephen McConnell ([EMAIL PROTECTED]:

Presumably you have the demo running ok.
The demo file in src/etc/kernel.xml declares to the kernel that the
runtime merlin depedencies are contained in a directory named
"extensions". If that is not supplied then Merlin will not have
required classes available.


At the moment I don't think I should need an 'extensions
library',


You don't - Merlin does.

Quick qualification here now that I'm awake and brain is functining properly, <library/> tag basically adds additional extension disectories into the kernel. Normally this tag isn't needed, however, if a component is using merlin classes such as the default container, then merlin is needed either here or inside a <classpath/> eleement.

Long day?

Way too long.  But that was yesterday!

:-)


since everything is in the main classloader. Actually not
quite everything is in there; I added jars to the Class-Path: manifest
entry of the app as needed so the code would run, which eventually
sucked in all of the 'extensions' jars with the exception of excalibur
threadcontext, excalibur collections (which I assume is obsolete),
excalibur configuration, and excalibur container. If the problem is
that one of them is missing, it's showing up in a very strange way!


Are you running with the merlin script ? It runs with a jar reference
and the jar has jar depedecy declarations. Thos depedent jar files
should not be in the classpath - thy should be in the "extensions"
directory (and only get dragged in on demand).


No matter how I set the <library/> entry, I can't get merlin to run
without all the 'extension' jars in the manifest Class-Path:. I've
tried the experiment of removing one jar from the Class-Path and then
changing classpath and library to see if it would find the jar, and the
app always dies in early Merlin processing.



Class-path outside of merlin is the wronog thing to play with. If you
look at the merlin.bat file you will see that it is booting itself with
a single jar. The manifest of that jar contains the delcaration of the
depedent jar files - and the JRE checks the extension directory for
these. Remember - this is at the boot stage so I'm takling about the
-Djava.ext.dirs=.\extensions parameter. After merlin boots, the kernel
is loaded at which time you can declare more extension directories using
the <library/> element or declare jars using the <classpath/>.

Bingo! It is the -Djava.ext.dirs. I run my app out of a jar, it didn't
occur to me to look at the script...

Cool - your up-and-running!

Cheers, Steve.


Gary



In the kernel.xml file you should see something like:

<!--
Declaration of installed extension directories and kernel level
classpath.
In this demo we are referencing the Merlin classes in the embedded
demo so
we need to include Merlin and its' extension depedencies in directory
referenced within the library element.
-->

<library dir=".">
<include name="extensions"/>
</library>

This tells Merlin where to look for dependent jar files.



Why does merlin.jar need to be found both in the main classloader
and then again (I'm guessing) by another classloader? Jeez, I thought
the chaining worked the other way!


Because the extensions supplied on the java command declares the stuff
prive to merlin. Whereas the extension declared inside the kernel and
the classpath statements are all application space.


It's always like this...



This sounds like bootstrap to me - my guess is that your lauching Merlin
differently. Anyway - its late and I could be wrong - if its the the
boot then send me you kernel.xml (but if it was that you would be
getting the info) and the log trace.

Cheers, Steve.



Gary





Cheers, Steve.





in the root profile. The class should be available through the main
classloader -- it's in the same jar that everything else is! Based on
what I've been able to figure out about the code, it's a matter of
getting a profile, but I'm not sure what profile.

I currently have no
profiles... but this didn't seem like something that would require a
profile from me!


--
To unsubscribe, e-mail: <mailto:avalon-users-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-users-help@;jakarta.apache.org>








--

Stephen J. McConnell

OSM SARL
digital products for a global economy
mailto:mcconnell@;osm.net
http://www.osm.net




--
To unsubscribe, e-mail: <mailto:avalon-users-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-users-help@;jakarta.apache.org>






--
To unsubscribe, e-mail: <mailto:avalon-users-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-users-help@;jakarta.apache.org>






--

Stephen J. McConnell

OSM SARL
digital products for a global economy
mailto:mcconnell@;osm.net
http://www.osm.net




--
To unsubscribe, e-mail: <mailto:avalon-users-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-users-help@;jakarta.apache.org>





--
To unsubscribe, e-mail: <mailto:avalon-users-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-users-help@;jakarta.apache.org>




--

Stephen J. McConnell

OSM SARL
digital products for a global economy
mailto:mcconnell@;osm.net
http://www.osm.net




--
To unsubscribe, e-mail:   <mailto:avalon-users-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-users-help@;jakarta.apache.org>

Reply via email to