Hi Lenya devs,

I added a new option for module descriptors:

  <published>false</published>

This way, you can mark modules explicitly as published or unpublished.
If a module is marked as unpublished, this means that it is not
part of the API and might change without notice. Now we can put all
our unpublished code into modules without breaking external code which
depends on it, and notify the users that they should remove these
depenencies.

You can also use this for your own modules, e.g.

  newsletter        -> published=true   (API)
  newsletter-james  -> published=false  (specific implementation)

This means that you can change the James-specific code without
endangering the backwards compatibility for users who depend their
code on your newsletter module. If they extend your newsletter-james
module, they are on their own.

If you omit the <published> element, it defaults to "true".

The build process prints a warning for each dependency to an
unpublished module. This way, extending them is still allowed
but explicitly discouraged.

----

ATM we have the following internal dependencies to unpublished modules:

* administration -> ac-impl
* administration -> ldap

  This is because the user classes have to be hard-coded in the
  admin GUI. IMO we should use a configurable factory instead.

* ldap -> ac-impl

  The LDAPUser class extends the FileUser class. To get rid of
  the warning, we'd have to include some code duplication.
  Or maybe there's a way to make the class hierarchy more flexible?

* usecase-impl -> ac-impl

  I'm not sure if this is still necessary, I'll check this.


-- Andreas

--
Andreas Hartmann
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
http://www.wyona.com                      http://lenya.apache.org
[EMAIL PROTECTED]                     [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to