Marc Portier wrote:

Reinhard Poetz wrote:

Today, Jorg and I had a long chat about this. In short, we failed to
find a solution that works with Maven 2 as it is today. The problem is
that Cocoon block requirements have a different purpose than Maven 2
dependencies. Cocoon block requirements desribe what a block needs to
run while Maven 2 dependencies describe what a project needs to compile.
Additionally we want to describe our dependencies as contracts and not
as direct dependencies to a JAR.



how is that different?

well, in Cocoon we don't have "direct" dependencies between blocks. A Cocoon block only requires other blocks that implement a certain contract. Have a look at this example:

<block xmlns="http://apache.org/cocoon/blocks/cob/1.0";
 id="http://cocoon.apache.org/blocks/anyblock/1.0";>

 <requirements>
  <requires
    interface="http://cocoon.apache.org/contracts/portal/1.0";
    name="portal"
    default="http://cocoon.apache.org/blocks/portal/1.0.2";
  />
 </requirements>

</block>

Here the block "http://cocoon.apache.org/blocks/anyblock/1.0"; requires a block that implements the contract "http://cocoon.apache.org/contract/portal/1.0";.

One block that obiously implements this contract is "http://cocoon.apache.org/blocks/portal/1.0.2";.

Compare this with a Maven project descriptor. There we say which *concrete" dependencies (jars, blocks) one project has. In this special case this is a block dependency.

> I would guess this just means your 'contract' is available in a separate
> jar/artifact from your implementation?

I'm not sure if I understand completly what you're asking/suggesting here. Do you mean that we should make the contract a JAR dependency too?

> is that a constraint that is hard to keep up with?


I'm not sure. I have to think more about it. In any case, having the contracts as JAR dependencies is an interesting thought!

--
Reinhard Pötz           Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}

                                       web(log): http://www.poetz.cc
--------------------------------------------------------------------

Reply via email to