cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reinhard Poetz <reinh...@apache.org>
Subject Re: [Proposal] New Block building system
Date Fri, 29 Oct 2004 06:04:16 GMT
Stefano Mazzocchi wrote:
> Reinhard Poetz wrote:
> 
>> More information and explanations can be found at 
>> http://wiki.apache.org/cocoon/CocoonBlockBuilder
> 
> 
> [not critizing, just curious] can you explain why you think that having 
> block/lib is going to be jar hell while lib/block is not?

I would really like to see block/lib instead of lib/block but without Pier's 
shielding classloader I don't see how we do NOT end in jar versioning hell.

Following situation:

Block A uses betwixt-0.5.jar, block B uses betwixt-0.6.jar and you want to run 
both blocks in the same web application. Without shielding it's not possible to 
use libraries separatly.

My temporary solution is using a library repository that only contains one 
betwixt jar:

<jars>
   <file id="betwixt">
     <title>Jakarte Commons Betwixt</title>
     <description>
       ...
     </description>
     <used-by>Cocoon</used-by>
     <lib>blocks/betwixt-0.6</lib>
</jars>

The descriptor of block A looks like this:

<block id="http://bla/blockA">
   <name>block A</name>

   <libraries>
     <lib id="betwixt" location="core"/>
   </libraries>

</block>

for block B

<block id="http://bla/blockB">
   <name>block B</name>

   <libraries>
     <lib id="betwixt" location="core"/>
   </libraries>

</block>

This way only one betwixt version can be used and if e.g. block B uses the 
outdated version 0.5 it wouldn't compile any more. I know far from being 
perfect, but maybe you or others have ideas how we can solve this problem in a 
better way.

-- 
Reinhard

Mime
View raw message