[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xml-cocoon-dev
Subject:    Re: Cocoon 2.2 - Build and deployment with Maven2
From:       Reinhard Poetz <reinhard () apache ! org>
Date:       2005-12-18 12:51:06
Message-ID: 43A55B3A.8040104 () apache ! org
[Download RAW message or body]

Andreas Hochsteger wrote:
> 
> Reinhard Poetz schrieb:
> 
>> Andreas Hochsteger wrote:
>>
>>> Ah, very insightful!
>>> This would be a good start.
>>>
>>> But with this interim solutions we have to be aware of the fact, that 
>>> the block has to define all potential XSL:FO implementations as 
>>> optional dependencies. This might not be the possible in every case.
>>> Think about choosing some commercial XSL:FO implementation to be used 
>>> for all blocks wich depend on the XSL:FO contract or providing your 
>>> own implementation for another contract.
>>
>>
>> Why is just adding the block dependency that I *want* to use not 
>> enough? The only issue that I can think of is that it doesn't prevent 
>> the developer from using implementation internal classes. Right?
>>
> 
> For blocks and deployments which are fully under the control of the 
> developer this is right.
> 
> The point I'm trying to make has something to do with SoC and more 
> specific with the role of the deployer:
> The block A, which uses an XSL:FO processor should IMHO only depend on 
> the XSL:FO contract (API) since it can not assume which concrete 
> implementation will be used in a certain deployment scenario.
> 
> An application developer which uses block A (developed by somebody else) 
> now wants to use a certain XSL:FO implementation for his application. It 
> would not make sense that this application developer has to modify the 
> pom of block A just to put his prefered XSL:FO implementation to the 
> list of dependencies.
> 
> In short:
> Isn't it enough to let the pom of block A just depend on the XSL:FO 
> contract?

That's one of the differnces between block requirements and Maven2 dependencies. 
  Maven2 dependencies are concrete implementations and block requirement always 
point to a contract which have to be implemented by a block.

What we _could_ do is having real artifacts for our contracts and not just URIs. 
  Well, I think that future experiments with a working deployment system will 
help us to understand better what we really need. For now I will implement it 
the way it was designed a long time ago (based on the block.xml and it's IMO 
well-designed features) and we can use this as starting point for further 
discussions.

-- 
Reinhard Pötz           Independent Consultant, Trainer & (IT)-Coach 

{Software Engineering, Open Source, Web Applications, Apache Cocoon}

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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic