From graffito-commits-return-236-apmail-incubator-graffito-commits-archive=www.apache.org@incubator.apache.org Thu Jul 28 05:47:33 2005 Return-Path: Delivered-To: apmail-incubator-graffito-commits-archive@www.apache.org Received: (qmail 85351 invoked from network); 28 Jul 2005 05:47:33 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 28 Jul 2005 05:47:33 -0000 Received: (qmail 7081 invoked by uid 500); 28 Jul 2005 05:47:32 -0000 Mailing-List: contact graffito-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: graffito-dev@incubator.apache.org Delivered-To: mailing list graffito-commits@incubator.apache.org Received: (qmail 7068 invoked by uid 500); 28 Jul 2005 05:47:32 -0000 Delivered-To: apmail-incubator-graffito-cvs@incubator.apache.org Received: (qmail 7064 invoked by uid 99); 28 Jul 2005 05:47:32 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 27 Jul 2005 22:47:21 -0700 Received: (qmail 85307 invoked by uid 65534); 28 Jul 2005 05:47:19 -0000 Message-ID: <20050728054719.85306.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r225709 - in /incubator/graffito/trunk/doc: graffito-model-server.dia graffito-model-server.png graffito-model.dia graffito-model.png new_object_model_proposal.txt Date: Thu, 28 Jul 2005 05:47:19 -0000 To: graffito-cvs@incubator.apache.org From: clombart@apache.org X-Mailer: svnmailer-1.0.2 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: clombart Date: Wed Jul 27 22:47:11 2005 New Revision: 225709 URL: http://svn.apache.org/viewcvs?rev=225709&view=rev Log: Add Graffito object model Added: incubator/graffito/trunk/doc/graffito-model-server.dia (with props) incubator/graffito/trunk/doc/graffito-model-server.png (with props) incubator/graffito/trunk/doc/graffito-model.dia (with props) incubator/graffito/trunk/doc/graffito-model.png (with props) incubator/graffito/trunk/doc/new_object_model_proposal.txt Added: incubator/graffito/trunk/doc/graffito-model-server.dia URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/doc/graffito-model-server.dia?rev=225709&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/graffito/trunk/doc/graffito-model-server.dia ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/graffito/trunk/doc/graffito-model-server.png URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/doc/graffito-model-server.png?rev=225709&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/graffito/trunk/doc/graffito-model-server.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/graffito/trunk/doc/graffito-model.dia URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/doc/graffito-model.dia?rev=225709&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/graffito/trunk/doc/graffito-model.dia ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/graffito/trunk/doc/graffito-model.png URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/doc/graffito-model.png?rev=225709&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/graffito/trunk/doc/graffito-model.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/graffito/trunk/doc/new_object_model_proposal.txt URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/doc/new_object_model_proposal.txt?rev=225709&view=auto ============================================================================== --- incubator/graffito/trunk/doc/new_object_model_proposal.txt (added) +++ incubator/graffito/trunk/doc/new_object_model_proposal.txt Wed Jul 27 22:47:11 2005 @@ -0,0 +1,52 @@ +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 Code 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 ? + + + +