[ http://issues.apache.org/jira/browse/GRFT-25?page=all ]
Christophe Lombart closed GRFT-25:
----------------------------------
Resolution: Fixed
The object model has been reviewed. I'm going to add the class diagram on the
Graffito site.
> PROPOSAL : New Graffito Object Model
> ------------------------------------
>
> Key: GRFT-25
> URL: http://issues.apache.org/jira/browse/GRFT-25
> Project: Graffito
> Type: Improvement
> Components: Model
> Versions: 1.0-a1-dev
> Reporter: Christophe Lombart
> Assignee: Christophe Lombart
> Fix For: 1.0-a1-dev
> Attachments: graffito-model.png
>
> Introduction
> ------------
> This document describes a proposal for a new Graffito Object Model.
> In my point of view, the model has the following weaknesses :
> 1. The CmsObject interface contains too many attributes. Title, description
> and owner should be not mandatory. Futhermore, this interface contains
> getObjects() and getProperties() which could be duplicate attributes.
> 2. The Document interface forces to have a binary content. Binary content is
> only interesting for Document management & asset management. We can expect to
> use Graffito for a CMS application containing only articles. In a such case,
> an article can be composed only of a set of String : title, summary, content,
> authors, ... and not binary content.
> 3. The Content interface is not an appropriate name. DocumentStream seems to
> be more explicit.
> 4. We need to have a better internationalisation support.
> 5. It is difficult to extend the model.
> The New Object Model
> --------------------
> The proposed model is splitted into different modules (see in attachement the
> UML class diagram) :
> * The Graffito code module.
> * A series of optional modules.
> 1. The Graffito Core Module
> ---------------------------
> This module contains all ancestor objects like CmsObject, Folder, Content.
> Content is the ancestor of any kind of content object (Document, topic,
> article, ...). Versionning is not mandatory is all case. The
> "VersionnedContent" is the ancestor used in a version management context. As
> you can see, only content can be versionned. Later, we can support
> versionning on Folders.
> 2. Optional modules
> -------------------
> Depending on the application requirements, the Graffito users can select one
> or more optional modules. If the Graffito model doesn't fit to the
> application requirements, it should be possible to plug a customized module.
> One subproject per module has to be defined in the Graffito project.
> 2.1 Document Management module
> ------------------------------
> This module manage any kind of binary documents (Ms Word, pdf, ...). By
> default, this DM module is supporting internationalisation. In order to
> increase the performance, the DocumentStream should be defined as a proxy.
> All documents are versionned.
> 2.2 Article Management module
> -----------------------------
> This module can manage translated articles or single language articles. All
> articles are versionned.
> 2.3. Forum
> ----------
> This module is a simple object model that can be used for a Forum
> application. Obviously, topic (the forum content) are not versionned.
> 2.4. Other modules
> ------------------
> Now, it should be easy to extend the Core Graffito module or any other
> optional modules. For example, someone can add a news management, asset
> management or customize the article module.
>
> 3.Open points
> --------------
> * Review the project structure in order to support modules.
> * CmsObject interface : getProperties, getObjects() : David, are you using
> both attributes ?
> * Internationalisation : providing by default in the different module or not
> ?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira