Red Hat Web Application Framework & CMS

Yesterday I did a quick evaluation of the Red Hat Web Application Framework as well as Red Hat CMS.  Red Hat acquired the rights to both from ArsDigita.  Below are some rough notes....

 

Red Hat Web Application Framework

What does it provide?

  • Persistence Layer (OR Mapping)
    • Handled by inheriting from DomainObject and defining .pdl mapping file.
    • PDL = Persistence Definition Language (Example Below)

// next comes the "object type" keyword followed by the name of
// the object type
object type Publication {
   // the first block of code within the object type is a set of
   // mappings from the Attribute Java type and Attribute name to
   // the database column to which they correspond.
   BigDecimal id = publications.publication_id INTEGER;
   String name = publications.name VARCHAR(400);
}

 

  • Handles Session and Transaction Management
  • Objects Retreived via OID (Object ID)
  • Set of objects retrieved via DataQuery – can apply Filters
  • Dynamic SQL is generated on the request for the first object

// get all of the Publications in the system.  Calling "retrieve" triggers
// the "retrieve all" event defined in the PDL file.  Note that
// the string passed in to the method is the model name (tutorial)
// followed by the object type name (Publication) separated by a dot (.).
DataCollection pub = SessionManager.getSession().retrieve("tutorial.Publication");

// now we want to filter on the ID of the publication
pub.addFilter(pub.getFilterFactory().addLessThan("id", new Integer(100), false));

// finally, we can loop through the publications and print out its name
// the query to get the information out of the database is executed
// when next() is called for the first time

while (pub.next()) {
  System.out.println(pub.get("name"));
}

  • Component Kernel
    • User & Group configuration
    • Object Permissions
    • Resources
  • Services
    • Object Auditing – Tracks when and by who an object was last modified
    • Categorization – Hierarchy of categories for categorizing objects (Article, Press Release, etc.)
    • Form Builder – Build web forms using a web based administration tool
    • Globalization
    • Mail/Messaging/Notification
    • Portal/Portlet support
    • Search Service – Using Lucene (http://jakarta.apache.org/lucene/) or Oracle interMedia
    • Workflow – Contains a set of tasks that can be enabled, disabled, finished.  Tasks can be assigned groups/permissions.
    • Versioning – Provides rollback, roll-forward capabilities and object diff functionality.

http://www.redhat.com/docs/manuals/waf/rhea-dg-waf-en-6.1/index.html
http://www.redhat.com/software/rha/

Red Hat CMS

  • Built on top of Red Hat Web Application Framework
  • Content Types – Article, Press Release
    • Defines different types of content and their properties/attributes
  • Content Items – Contains the actual data for a piece of content
  • Content Bundle – A group of related content items (all content for all the different languages)
  • Workflows – All items start in Author State.  Author state only allows the changes to be submitted to the next step.  They then proceed through multiple Edit Steps.  After each edit step the content can be approved for rejected.  Rejected content is sent back to the previous step.  Final step is for the content item to be marked as deploy and assigned a lifecycle
  • Lifecycle – Defines what happens when a content item is published. Lifecycle consists of multiple phases.  A listener is used to move the item among its various phases.
  • Role based security
  • Editing and Live Server – Editing server is used to manage and edit the content.  The Live Server delivers content to the end user.
  • Content is organized into Containers – Folders, Content Bundles
  • After a content item is published it goes through a publishing process
    • Content item is cloned and has properties copied
    • Set Versioning attributes
    • Pending version is added to the database
    • Lifecycle is kicked off
    • Lifecycle system responsible for polling the database for publishined items and kicking off their assigned Lifecycle
    • PublishLifecycleListener promotes the pending version
    • Unpublishes the currently published version
    • Updates Versions
    • Set’s the content item to live
    • Generates a list of all live published content items which point to the content item being published and sets up associations.  All items pointing to this item are queued for re-publishing to have their links updated.
    • Generates a list of all the live published content items that the current content item point
  • Standard presentation involves generating an XML representation of the content item and applying an XML Style Sheet (XSL)
  • Xml Rendering is  done via the DomainObjectXMLRenderer in the Red Hat WAF
  • Content Type authoring is setup via configuration files (authoring kit, authoring steps)
  • Authoring Steps are individual steps in the creation of content (Properties, Page Content, etc.).  They are associated with UI elements for the step.
  • Templates can be written in JSP or XSLT
  • Authoring Kits, Content Loaders & Initializers are all configured via xml configuration files.   

# re: Red Hat Web Application Framework & CMS

Wednesday, June 23, 2004 7:22 AM by Olivier HAULT    
Very good initiative. Now, we know all from where Sharepoint/ASP.NET folks find their inspiration (sorry, I'm missing Wiki). Let us let the open source manage the real inovation and Microsoft to make an implementation for Windows. MS V.next will have understood it.

Post a Comment

 
 
Prove you're not a spammer: 
4 + 4 =