lenya-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Hartmann <andr...@apache.org>
Subject Re: [1.4] Separate API and Implementation?
Date Fri, 07 Apr 2006 11:55:47 GMT
Thorsten Scherler wrote:
> El vie, 07-04-2006 a las 13:30 +0200, Andreas Hartmann escribió:
>> Thorsten Scherler wrote:
>>> El jue, 06-04-2006 a las 17:40 +0200, Andreas Hartmann escribió:
>>>> Hi Lenya devs,
>>>>
>>>> currently, it's not clear which classes+interfaces form
>>>> the Lenya API (i.e., have to stay backwards compatible
>>>> and therefore may be used by client code).
>>>>
>>>> Examples are AbstractUsecase and DocumentUsecase:
>>>> Can you extend these classes without the danger of
>>>> incompatible changes in future 1.4.x versions?
>>> I am unsure what to tell you. We have a couple of usecases that extend
>>> this classes. IMO this default implementations should reflect the least
>>> common denominator
>> +1
>>
>>> and as soon as 1.4.x is in the release cycle they
>>> *should* be backwards compatible.
>> IMO AbstractUsecase and DocumentUsecase are general enough
>> to put them into the API.
>>
> 
> agreed, but we still would need an implementation right?

Hmmm, what do you mean? They are abstract implementations
of the Usecase interface ...

The question is really where to draw the line.

IMO some requirements for classes/interfaces in the API are

- it is generic, i.e. it fits all usage patterns
   (nothing like "This only works in certain circumstances ...")

- it can be guaranteed to work in future versions (e.g.,
   it doesn't use internal classes of other products in
   its signature)

- it doesn't reference any classes/interfaces which are
   not part of the API (completeness of the API is required)


Indicators when to put an implementation in the API are:

- it reflects a best practise
- there's no other (sensible) way to do it
- it would be very hard to implement it in the client code
- it's a mere utility to simplify the usage of components

WDYT? What other criteria do apply?

-- Andreas


-- 
Andreas Hartmann
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com                      http://lenya.apache.org
andreas.hartmann@wyona.com                     andreas@apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lenya.apache.org
For additional commands, e-mail: dev-help@lenya.apache.org


Mime
View raw message