Date: 14 septembre 2006 19:13:08 HAEC
Subject: [ECM] packages names.
Hi,
Fellowing the recent discussions on components namming, here is a proposal.
org.nuxeo.ecm.platform.* is everything that is not core :)
org.nuxeo.ecm.platform.foundation
=================================
All packages in foundation are compulsary packages to make the platform run.
org.nuxeo.ecm.platform.foundation.ui
------------------------------------
Will contain all generic ui infrastructure used by GUI.
This includes :
- the Type Service
(org.nuxeo.ecm.platform.foundation.ui.typeservice)
- the Form service
- the Action Service
This services should (at the end) be usable both in web and rcp
environment.
org.nuxeo.ecm.platform.foundation.web
-------------------------------------
Will contain all web infrastructure used by Nuxeo 5.
- the Seam Cache management service
- the Business delegates
- ...
org.nuxeo.ecm.platform.foundation.jee
-------------------------------------
Will contain all jee infrastructure used by nuxeo 5.
This includes :
- the containment model of Nuxeo 5 (Server/Domain/Workspace)
(org.nuxeo.ecm.foundation.engine.containmentmodel)
- Security helpers ?
org.nuxeo.ecm.platform.foundation.rcp
-------------------------------------
Will contain rcp specific components.
Will use the standard Eclipse packaging rules :
- org.nuxeo.ecm.platform.foundation.rcp.ui : for GUI
- org.nuxeo.ecm.platform.foundation.rcp.core : for logic
org.nuxeo.ecm.platform.ec
=========================
Represent what we used to call Zope Products :
- addtionnal ECM services
- additionnal Business components
org.nuxeo.ecm.platform.ec.*.ui
-------------------------------
Will contains all presentation related code that is usable on both jee
and rcp.
This should be mainly usage of extension points that are inside
org.nuxeo.ecm.platform.foundation.ui.
org.nuxeo.ecm.platform.ec.*.web
-------------------------------
Will contains all presentation related code.
For exemple, the client side of the NxAudit Enterprise Component will be
org.nuxeo.ecm.ec.audit.ui.
Typically we will have such web components for :
- all pluggable generic ecm non core services
- audit
- workflow
- transformation
- relations
- ...
- all pluggeable specific business objects
- Invoice
- Blog post
- Archive record
org.nuxeo.ecm.platform.ec.*.api
-------------------------------
Will contains the api (interface) exposed by the EC.
org.nuxeo.ecm.platform.ec.*.internal
------------------------------------
Will contains all logic and process related code.
For exemple, the engine side of the NxAudit Enterprise Component will be
org.nuxeo.ecm.platform.ec.audit.internal
Typically we will have such web components for :
- all pluggable generic ecm non core services
- audit
- workflow
- transformation
- relations
- ...
- all pluggeable specific business objects
- Invoice
- Blog post
- Archive record
Depending on the kind of enterprise components we can have :
- one engine EC without ui
( for exemple transformation, because in some cases the UI won't be needed)
- one ui EC without engine
( for exemple Blog post because there is no need for a specific
business behavior)
- one engine EC with several ui
for exemple an ecm.ec.mail.engine with 3 ui
- ecm.platform.ec.mail.ui.webmail (webmail ui)
- ecm.platform.ec.mail.ui.fetcher (action to fetch a mailbox into a
folder)
- ecm.platform.ec.mail.ui.sendto (action to send a document via mail)
org.nuxeo.ecm.platform.ec.*.rcp
-------------------------------
Will contains EC specifc code for RCP.
This will be splitted as in eclipse in .
- org.nuxeo.ecm.platform.ec.*.rcp.ui for gui
- org.nuxeo.ecm.platform.ec.*.rcp.core for logic
Well this is just a proposal, comments are welcome.
Tiry