CMS Service Proposal
====================

GOAL
----

Create a flexible CMS service which can transparently support different CMS engines.
The goal is not to create a new CMS engine specific to Jetspeed but define an interface 
which can support the most important CMS engine.
We will start with a default implementation based on Slide (http://jakarta.apache.org/slide).



Features
--------

* Content Types
        + Catalog/folder
	+ Unstructured content : HTML, MS Office document, pdf, ...
	+ External URI : link to other external content 
	+ XML content
	
	Each content type match to a java class (see org.apache.jetspeed.om.cms & org.apache.jetspeed.om.cms). So, it should be possible 
	to create other content classes like images, ...


* Security :  require complete integration/mapping with the Jetspeed security model

* versioning

* Index & query

* Workflow

* Notification

* Content editing


* Webdav support


* Portlets : viewers, content administration, editor, notification, workflow follow-up, ...

* Multi CMS engine support : we can imagine to support different CMS engine by using 

* other ideas ?

Development steps
-----------------


Phase 1:


Phase 2:


Phase 3:



Service API
-----------

* Object model


* Retrieve Resource

* Create Resource

* Assign security

...<TO DO>...


Default implementation : Slide
------------------------------

* Slide configuration : see CmsResources.properties & domain.xml in the conf folder.
* Security : implemented by using a specific Slide store (see on org.apache.jetspeed.services.cms.slide.JetspeedDescriptorStore)

* Default Repository : 
	+ meta data : HSQL
	+ content :  file system

