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]>

Reply via email to