I suspect my comment about block level dependencies is a red herring...
I have two jars that contain components. One contains only the
XML:DB-related code, consisting of exactly one component (an
XMLDBConnection). The other jar contains the rest of the (primarily
singleton) components in the app.
If I understand things correctly, this means I have two blocks.
My guess is that if I inform merlin about the two blocks in blocks.xml,
that'll take care of the application block finding the XMLDBConnection
components from the XML:DB block.
So, I have blocks.xml which enumerates the two blocks. I have added
BLOCK-INF/block.xml files to both jars.
No service
in the app block is used outside that block, so I've left the
<services/> section empty. The XML:DB block.xml exports the
XMLDBConnection service. The body of the app block is basically the
merlin2 kernel.xml stuff between the <container></container> tags, with
the XMLDBConnection component removed to the XML:DB block.
The two jars both have Avalon-Block entries with Block-Name: fields,
but I haven't figured out yet where those values get used.
At the moment I'm getting:
java.lang.IllegalArgumentException: Missing package declaration in
block: file:/home/shea/work/proj/mfg/head/ft/tmp/m21/order.jar
at the very beginning of the 'Block installation phase'.
I'm a bit concerned at this point, because I have a half-dozen
different packages containing components in the app jar file!
I wouldn't object to a hint at this point ;)
Gary
p.s. I'm kinda bummed about having to put the former content of the
kernel.xml inside the jar file in block.xml, because I _loved_ having
kernel.xml sitting out in the filesystem where I could tweak it without
having to get ant involved.
On Tue, 7 Jan 2003, at 02:38 [+0100], Stephen McConnell ([EMAIL PROTECTED]:
>
>
> Gary Shea wrote:
>
> >Congrats on getting it rolled out... I'm still digging around, getting a
> >feel for it. I haven't seen evidence yet of how to show block-to-block
> >dependencies, but if there's javadoc for it, I'll find it no problem.
> >Everything else I've looked at seems sensible enough...
> >
>
> Actually, you may find this a little harder than anticipated bacause
> management of block level depedencies are not implemented yet.
>
> Conceptually - consider the following:
>
> 1. component type declares static dependencies
> 2. component profile establishes a deployment template for the type
> 3. an appliance is the object that is established to handle
> deployment of a component based on a supplied template and any
> other supplimentary data the user provides
>
> All of the above is handled in the avalon-sandbox/assembly package.
>
> Now do a jump to the block concept. A block is equivalent to an
> appliance except that it is managing a container heirachy (which is
> component but needs special treatment during deployment).
>
> Specifically:
>
> 1. a Container is a type of component
> 2. Block is a specialization of Appliance that manages
> a container heirachy
> 3. a block exposes services and dependencies (like a Type does)
> 3. which means a Block basically bahaves as a dynamic Type and
> displays appliance behaviour
>
> Now I need to explain why I going into all of this detail - basically
> a block exposes depedencies and services related to its implementation
> (where the blocik implememntation is the containment heirachy). In
> addition the block can exopose service and dependencies which are
> basically the external contract of the block. For example, a block
> may be composed of many related compoents and containers, however,
> these components and containers are isolated within the block and
> specific services and dependecies are exposed.
>
> Depedency management is fully implementated at the component and
> container levels. Bloc-level dependency management is not
> implemented yet. For the time being this is not a problem as
> containers do not typically expose dependencies. But it something
> comming because its something I really need (some of my component
> assemblies are simply getting too complicated and I need a composite
> component deployment and packaging solution.
>
> With the introduction of block level dependencies a containers will be
> assembled based on the dependency ordering (as opposed to the current
> physical ordering).
>
> This approach means that it will be possible in the future to do
> dynamic plugging in of complex system into an environment because
> we only need to be concerned with the block level dependencies (all of
> the container heirachy and component stuff is encapsualted and hidden
> away).
>
> >
> >Something that came up in connection with web start... that program is
> >kind of pissing me off. Turns out that when jarsigner does its thing,
> >it only attaches sig info (the md5 digest I suppose) to the Name:
> >sections that are associated with files. WebStart insists that every
> >single Name: section be signed, or it considers the jar incorrectly
> >signed and won't load it. So any required entries in the manifest that
> >do not directly correspond to a file automatically break Web Start. I
> >submitted a bug report, but Web Start releases are only every six months
> >to a year. There are open source implementations but they aren't very
> >complete. Urk.
> >
>
> I've just signed a couple of the jar files and I see what the problem is.
> The signing process adds name entries for each file (class, xml, whatever)
> in the jar file together with the digest for that class file. If WebStart
> is requiring that every Name: entry has a corresponding digist - then we
> are in trouble.
>
> The purpose of the Avalon-Block is to mark the jar file as a file to be
> scanned for component type defintions. This ensures that we are not
> wasting time scanning jar files that don't have components defined. An
> alternative approach to the manifest entry would be to simply look for a
> blocks.xml resource and if that exists - we know we need to scan the jar
> for type and service defintions. This could actually be an improvement
> because it means that we would no longer need to worry about
> supplimentary manifest entries (but it would mandate the requirement for
> a block.xml within the jar file).
>
> Would that solve the problem?
>
> Cheers, Steve.
>
> >
> >So anyway, the obvious question, is the Avalon-Block header needed?
> >It occurs to me that I can simply create a file called Avalon-Block!!!
> >Urk...
> >
> > Gary
> >
> >
>
> --
>
> Stephen J. McConnell
> mailto:[EMAIL PROTECTED]
> http://www.osm.net
>
>
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>