[ http://issues.apache.org/jira/browse/GRFT-25?page=comments#action_66784 ] David Sean Taylor commented on GRFT-25: ---------------------------------------
Before changing anything, please allow me to tag the source first. I will then put out jar files on my maven repo for this tagged 'version'. Comments <DST>: 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. <DST> I use getProperties only. When you say title, description, and owner should not be mandatory, are you saying to move them to properties? 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. <DST> Seems to make sense 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. <DST> well it requires writing Java code, but it hasnt been that difficult from the Java POV > 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