Smart Content Management System
Smart Content Management System (smart-cms) is basically intended to act as a simple content repository and management system. Initially the focus will be fully on simply storing and accessing the Content through an API and provide both concrete and RESTful implementations.
Currently implemented features are as follows:
- A conceptual container, Workspace, to bound contents and their definition
- A XML based definition of of what type of contents are expected in the CMS - Content Type
- Content Type definition can be used to generate code in Java for domain and data access layers using maven plugin.
- A content can be defined, created of primitive data types - integer, long, double, string, date, boolean, binary; their collection; user defined composite data type with no depth limitation.
- A set representations can be defined for representing a content in different forms
- A set of variations can be defined for representing a field in different forms
- All contents are stored in HBase (the default chosen SPI implementation), if and as required other SPI will be implemented.
- Full Text search is provided through Solr integration
- Content and Content Type can be locked across Smart CMS cluster through distributed locking mechanism provided through ZooKeeper
- Support for numerical Sequence that is thread-safe over a cluster
- Asynchronous and synchronous event listeners for operations on content
- Content can be accessed via Java API and RESTful Web Services
- The Java Web Services Client implements client side caching and conditional GET, PUT, POST, DELETE
- Maven plugin can start stop all the tools required for running the CMS.
- Data can be migrated from one server to the other easily using scripts via Native API or Web Service API. Helps in work flow where content is first uploaded in Staging server and then pushed to Production server.
Repositories will be organized as workspace, which will have content organized in container. So when a user wants to access content s/he will first have to access a workspace and from there on walk down the containers and then to their contents. Contents will also be accessible through Full Text Search Engine powered by Apache Solr. The CMS will support a flexible authorisation scheme in future.