The most important technologies involved with the Community Apps extension are Spring 2.0 and JPOX, an opensource implementation of the JDO 2.0 specs.
The application can be divided in three layers:
- Domain object layer, that defines the object that must be persisted
- The persistence layer, composed by Java DAOs that use Spring JDO templates to persist the instances of the domain objects
- The service layer, that provide an easy access to the frontend layer
- The frontend layer, composed commonly by Cocoon components based on cforms
The first three parts are wrapped into an internal Hippo SVN project called Persistence; it can be built and packed into a jar, using
maven clean jar
The jar is already present into the maven hippo repositories with the following credentials (the version may be outdated, check SVN to see if there are more recent versions available):
groupId : hippo artifactId : hippo-community-apps version : 2.01.02
The last layer has a double implementation:
- The CMS administration forms, that have a common graphical layout; they don't need to be changed, but simply linked to the CMS dashboard system. Right now the last code of these forms is based on cforms and is located into the cms-hcamanager subproject. See Community apps CMS configuration (general) for integration in Hippo CMS.
- The website forms, that behaves depending on the functional specifications of the web application.
Configuration
The Spring application context is provided separately by the jar; for each module it loads a sub application context, that is provided by the community-apps jar (e.g pollApplicationContext.xml); this means that the developer can easily include/exclude the modules editing the main configuration file.
All the spring contexts are configured with a property file called persistence.properties that must be copied into the classpath of the web application.
Javadocs
The Javadocs of Hippo Community Apps version 2.01.02 are available online on http://repository.hippocms.org/javadoc/hippo-community-apps/v2.01.02/.