Java Content Management System (CMS)
Apache Jackrabbit is an open source content repository for the Java platform. The Jackrabbit project was started on August 28, 2004, when Day Software licensed an initial implementation of the Java Content Repository API (JCR). Jackrabbit was also used as the reference implementation of JSR-170, specified within the Java Community Process. The project graduated from the Apache Incubator on March 15, 2006, and is now a Top Level Project of the Apache Software Foundation.
JCR specifies an API for application developers (and application frameworks) to use for interaction with modern content repositories that provide content services such as searching, versioning, transactions, etc.
- Fine and coarse-grained content access
- Hierarchical content
- Structured content
- Node types and mixins
- Property types - text, number, date
- Binary properties
- XPath queries
- SQL queries
- Unstructured content
- Import and export
- Referential integrity
- Access control
- JTA support
- Multiple persistence models
- Apache Jackrabbit Architecture (cont..) :
The general architecture of Jackrabbit can be described in three Layers:
A Content Application Layer,
an API Layer and a Content Repository Implementation Layer.
Content Applications interact through the JSR-170 API with the Content Repository Implementation. There are numerous applications that are available for JSR-170 repositories, some of them are very generic (like a WebDAV server) other applications can be very specific and make use of the content repository as a store for the information that is used by the applications. Java Applications can use a JSR-170 content repository as a replacement for anything from property-files, XML-configuration, certain portions of relational database functionality to straight file system or blob-management. Using a content repository allows an application to deal with an arbitrarily large hierarchical space in a scalable manner automatically profiting from the repository services such as versioning, query, transactions or namespaces which make a content repository an ideal data store for many applications.
A "Generic Content Application" (an application that has no particular functional focus but just allows for generic introspection and manipulation of the repository) uses the capabilities of the node types, access control and other facilities to display a user interface or a network protocol to the end user, seemingly independent from the content that is stored in the repository. Examples of such generic applications are "The Content Explorer", "WebDAV Server" or a "Subversion Server". (Or generic Portal, CMS or DMS applications).
A "Specialized Content Application" operates under the assumption that there are certain node types that it operates on, and that it is familiar at least partially with the data model exposed by defined node types. Mostly these node types are defined by the application itself and ship with the application. These applications use a content repository as their persistence layer as a natural evolution from the use of an RDBMS or a file system. Examples of "Specialized Content Applications" have a very wide range from a "DVD Collection Management", to a "Message Board", to "Workflow and BPM" but also possibly complete next generation "Enterprise Resource Planning Systems".
Content Repository API
The Content Repository API Layer is split into two major sections.
The Content Repository API defined by JSR-170
A number features of a content repository, that have been removed from the JSR-170 specification since they are difficult to implement on existing non-java-based content repositories and administrational Repository tasks that have also been deliberately excluded from JSR-170 There are only very few (mostly administrational) applications which make use of the non-JSR-170 APIs provided by Jackrabbit.
The boxes in the architecture chart do not symbolize package names or class names directly but mostly semantically grouped blocks of functionality.
Content Repository Implementation
The content Repository Implementation portion of the architecture chart reflects the major building blocks of the jackrabbit content repository implementation.
The size of the blocks symbolizes roughly the amount of code and therefore the complexity of the individual functional block. Again the functional blocks do not directly map to package or class names.
There are three scopes in a content repository: A repository scope, a workspace scope and a session scope.
Every function that is operated against a repository can be attributed to at least one of these scopes, some functions can operate on more than one scope.
- ItemImpl, PropertyImpl, NodeImpl
- ItemId, PropertyId, NodeId
This is not a complete list but includes some of the most important component of the content repository implementation.
- Apache Lenya :
Apache Lenya is a Java/XML open-source content management system based on the Apache Cocoon content management framework. Features include revision control, scheduling, search capabilities, workflow support, and browser-based WYSIWYG editors.
Lenya was originally started by Michael Wechner in early 1999 to manage the content of the journal of pattern formation. Michael previously did basic research in physics by writing computer simulations on dendritic growth.
In early 2000 Michael co-founded Wyona, which continued to develop Lenya on the basis of the interactive newspaper edition of Neue Zürcher Zeitung. The name Lenya is a combination of the names of his two sons Levi and Vanya.
In the spring of 2003, Wyona donated Lenya to the Apache Software Foundation, where Lenya was incubated and became a Top Level Project in September 2004.
In 2006 Michael has started a new CMS called Yanel (an anagram of Lenya) featuring versioned interfaces as an approach to provide backwards compatibility at all times and hence replacing the classical approach of periodical releases by continuous deployment.
If you have additional requirements beyond the features listed below, you have access to all Apache Cocoon features to develop them.
Browser-based WYSIWYG Editors are provided that validate input against a RELAX NG Schema. This prevents invalid markup as produced by other WYSIWYG editors and enables enforcement of web site style guidelines. Lenya ships with the BXE and Kupu editors out of the box. Asset management and link management are integrated into BXE and Kupu.
A forms editor is available for situations where a full-blown WYSIWYG editor is overkill or where legacy browsers need to be supported. Pages that are being edited are automatically locked for other users, preventing conflicting changes to the same page. Each edit of a page creates a new revision, and you can revert to any previous revision of a page.
Lenya includes a customizable workflow engine that uses an easy XML format to define workflows. Standard one- and two-stage workflows are included. Users can be notified by email about pending approvals.
Workflow events such as publishing or deactivating a page can be scheduled.
Separate authoring, staging and live areas are supported. For convenience, the staging area is disabled by default.
All workflow steps are logged, providing an audit trail.
Pages can be created in multiple languages with no impact on your site structure. Lenya automatically displays your page in the default languge if it is not available in a specific language.
The user interface is currently localized in Spanish, Italian, French, German, English, Dutch and Japanese.
The "publications" concept allows reuse of the information architecture of a site and brings modularity to the content level. Different publications (sites) can share content and business logic, and new publications can be created with a cloning process.
XHTML+CSS templating is supported, eliminating the need to learn yet another templating language. Wherever possible, Lenya uses CSS for styling, thereby enforcing the separation of content and layout.
The navigation framework automatically creates navigation items such as menus, breadcrumb paths and tabs. A site map can be easily created.
Lenya produces clean URLs without request parameters and is thus optimally accessible to search engines.
There are no restrictions on the nesting of templates. You can use any template you have defined at any level of your site structure thanks to the URI parameterizer.
- You can move, copy, rename, archive or delete individual pages or whole parts of your site with an easy to use site view that shows you the pages of your site in an explorer-like view.
- Each page has tabs for easy access to meta data, assets, workflow status, revisions, access control and scheduling.
- The archive function allows you to deactiviate pages and store them in an archive.
- Deleted pages can be retrieved from the trash.
- Each page can have Dublin Core metadata assigned. Other metadata standards can be added if required.
- Link management ensures that internal links are not shown if the target page doesn't exist or the user has no access to it. Link management also warns users about broken links when they publish a page.
- Before publishing a page, Lenya checks whether parent pages are already published, to avoid inconsistent sites.
- Deployment is flexible: Sites can be served dynamically by the authoring server (for small deployments) or another servlet container. It is also possible to export content statically or to use Apache HTTP Server as a proxy.
- If used with a reverse proxy, URLs can be rewritten based on the site structure of the live site.
Each page or parts of your site can be protected by SSL. You can protect just the parts of your site that need protection for best performance.
The access control mechanism allows you to restrict access to parts of your site to members of a group or individuals. You can restrict access by function, such as viewing, editing, approval or administration.
Users can be authenticated against an LDAP server.
Access can also be controlled by IP ranges.
A Windows Installer makes installation on Windows a 3-click process. (The binary version and installer are not available in the release 2.0. You find more information on the download page.)
Apache Lucene is integrated for full-text and fielded searching.
Under the Hood
Lenya is based on Apache Cocoon. All Cocoon components can be used to develop customized functionality.
Lenya uses Unit Tests to discover regressions in the code.
A publication API defines an interface for common CMS operations.
A "fallback" mechanism allows you to selectively override core functionality in your site where needed. Default implementations are provided for convenience and ease of development.
Ant is used for portable scripting.
- Apache Sling :
Sling is different from a lot of other Web application frameworks in the sense that it truly focuses on the web aspect of the "web application" development and through its development paradigm suggests an intuitive RESTful development of a true web application. Other frameworks focus more on the application development and therefore are ideal extensions to Sling.
The Sling project was started on August 27, 2007, when Day Software proposed to donate the source base of its internal web framework powering the Day Communiqué WCM to the Apache Software Foundation The project was accepted to the Apache Incubator with Apache Jackrabbit being the sponsoring project. On June 18, 2009 the project graduated as Apache top-level project.
- Content resolution that maps a request URL to a content node in the content repository
- Servlet resolution that maps a content node and a request method to a Servlet handling the request
- Default servlets supporting WebDAV, content creation from web forms and JSON representation
- OSGi-based extensibility through Apache Felix - the Felix Web Console was originally developed by the Apache Sling project
- REST based web framework
- Content-driven, using a JCR content repository
- Powered by OSGi
- Apache Open Source project
- Apache Sling in a hundred words
Apache Sling in five bullets points
Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store and manage content.
Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way.
The embedded Apache Felix OSGi framework and console provide a dynamic runtime environment, where code and content bundles can be loaded, unloaded and reconfigured at runtime.
As the first web framework dedicated to JSR-170 Java Content Repositories, Sling makes it very simple to implement simple applications, while providing an enterprise-level framework for more complex applications.
The following is a short list of high-lights of Sling:
The Sling application is built as a series of OSGi bundles and makes heavy use of a number of OSGi core and compendium services.
To implement content based Web applications with Sling, an API has been defined, this extends the Servlet API and provides more functionality to work on the content.
Sling takes a unique approach to handling requests in that a request URL is first resolved to a resource, then based on the resource (and only the resource) it selects the actual servlet or script to handle the request.
The central mantra of Sling is the Resource, which represents the resource addressed by any request URL. It is the resource that is first resolved when handling a request. Based on the resource, a first servlet or script is then accessed to actually handle the request.
Servlets and Scripts
Servlets and Scripts are handled uniformly in that they are represented as resources themselves and are accessible by a resource path.
Sling uses a very thin launcher to integrate with an existing servlet container, launching Sling as a Web application or providing a main class to represent a standalone Java application.
The following sections elaborate on each of these highlights.
OSGi is a consortium that has developed a specification to build modular and extensible applications. This offers various benefits. We deal mainly with two parts of the specifications: The Core Specification, which defines the OSGi Framework and Core Services, and the Compendium Services Specification, which defines a host of services that extend the functionality of the OSGi Framework.
The OSGi Framework is made up of three layers – Module, Lifecycle, and Services – that define how extensible applications are built and deployed. The responsibilities of the layers are:
Defines how a module, or a Bundle in OSGi-speak, is defined. Basically, a bundle is just a plain old JAR file, whose manifest file has some defined entries. These entries identify the bundle with a symbolic name, a version and more. In addition there are headers which define what a bundle provides Export-Package and what a bundle requires to be operative Import-Package and Require-Bundle.
The lifecycle layer defines the states a bundle may be in and describes the state changes. By providing a class, which implements the BundleActivator interface and which is named in the Bundle-Activator manifest header, a bundle may hook into the lifecycle process when the bundle is started and stopped.
For the application to be able to interact, the OSGi Core Specification defines the service layer. This describes a registry for services, which may be shared.
Based on the OSGi Framework specification, the Compendium Services specification defines a (growing) number of extension services, which may be used by applications for various tasks. Of these Compendium Services, Sling is using just a small number:
Sling comes with its own implementation of the OSGi Log Service specification. The respective bundle not only provides this implementation, it also exports the SLF4J, Log4J and Commons Logging APIs needed for the Sling application to perform logging.
Sling leverages the OSGi Http Service to hook into a servlet container to provide the Web Application Framework mechanism.
Configuration Admin Service
To simplify configuration of services in Sling, the OSGi Configuration Admin service is used. This provides a uniform API to configure services and to build configuration management agents.
The OSGi Metatype Service defines a way to describe the data types. Sling uses this service to describe the configurations that may be created using the Configuration Admin Service. These meta type descriptions are used by configuration management agents to present to user interface to manage the configurations.
Event Admin Service
Sling uses the OSGi EventAdmin service to dispatch events when scheduling tasks.
One of the most important (beside the Log Service) services used by Sling is the Declarative Services Specification. This specification defines how to declaratively create components and services to have the Declarative Services runtime actually manage the lifecycle, configuration and references of components.
The Sling API is an extension to the Servlet API which provides more functionality to interact with the Sling framework and also to extend Sling itself and to implement Sling applications.
Traditional Web Application framework emply more or less elaborate methods to select a Servlet or Controller based on the request URL, which in turn tries to load some data (usually from a database) to act upon and finally to render the result somehow.
Sling turns this processing around in that it places the data to act upon at the center and consequently uses the request URL to first resolve the data to process. This data is internally represented as an instance of the Resource interface. Based on this resource as well as the request method and more properties of the request URL a script or servlet is then selected to handle the request.
The Resource is one of the central parts of Sling. Extending from JCR's Everything is Content, Sling assumes Everthing is a Resource. Thus Sling is maintaining a virtual tree of resources, which is a merger of the actual contents in the JCR Repository and resources provided by so called resource providers.
Each resource has a path by which it is addressed in the resource tree, a resource type and some resource metadata (such as file size, last modification time). It is important to understand, that a Resource instance actually is only a handle to the actual data. By virtue of the adaptTo(Class'type') method, a resource may be coerced into another data type, which may then be used while processing the request. Examples of data types are javax.jcr.Node and java.io.InputStream.
Servlets and Scripts
Scripts are usually provided as content in a JCR repository. But since Sling is using a resource tree, a script actually is represented as a Resource and may be provided from within a Bundle (by virtue of the bundle resource provider) or even from the platform file system (by virtue of the file system resource provider).
Accessing scripts in the resource tree, allows for a very easy to understand mapping from resource type to some script path.
Having found the script resource, we still need access to the appropriate script language implementation to evaluate the script. To this avail, Sling is making use of the Resource.adaptTo(Class'Type') method: If a script language implementation is available for the extension of the script name an adaptor for the script resource can be found, which handles the evaluation of the script.
Besides scripting languages, such as ECMAScript, Groovy, JSP, Sling also supports regular servlets. To be able to use servlets for request processing, such servlets must be registered as OSGi services for the javax.servlet.Servlet interface and provide a number of service registration properties, which are used to use the servlets. In fact servlets thus registered as OSGi services are mapped into the resource tree by means of a servlet resource provider. This resource provider mapps the servlets into the resource tree using the service registration properties to build one or more resource paths for the servlet.
As a result of mapping servlets into the resource tree and the possibility to adapt resource to an adaptor data type, scripts and servlets may be handled completely transparently: The servlet resolver just looks for a resource matching the resource type and adapts the resource found to javax.jcr.Servlet. If the resource happens to be provided by a servlet resource provider, the adapter is of course the servlet itself. If the resource happens to be a script, the adapter is a servlet facade which internally calls the script language implementation to evaluate the script.
Sling may be launched as a standalone application using the Sling Application or as a Web Application running inside any Servlet API 2.4 or newer Servlet Container.
The Sling Application is a standalone Java Application which is really small: Just the main class and some glue classes. The OSGi framework as well as the OSGi API libraries are packaged as a JAR file, which is loaded through a custom classloader. This enables to update the framework and/or OSGi API libraries from within Sling by updating the system bundle.
The Sling Servlet is equally small as the Sling Application. It uses the Felix HttpService bridge as the glue between the servlet container and the OSGi framework.
As we have seen, Sling may be launched as a standalone Java Application or as a Web Application inside any compliant Servlet Container. To hide the differences of the launching mechanism, Sling internally registers a Servlet with an OSGi HttpService. Regardless of how Sling is launched, the Felix implementation of the OSGi HttpService specification is used. When Sling is launched as a standalone Java Application, Felix HttpService uses an embedded version of the Jetty servlet container. When Sling is launched as a Web Application, the Felix HttpService Bridge is used.
Optionally, PAX Web's implementation of HttpService can be used when Sling is launched as a standalone Java Application. See the Maven Launchpad Plugin page for information on how to do this.
- Alfresco CMS :
Alfresco is a free/libre enterprise content management system for Microsoft Windows and Unix-like operating systems. Alfresco comes in three flavors:
Alfresco Community Edition is free software, LGPL licensed open source and open standards. It has some important limitations in terms of scalability and availability, since the clustering feature has been removed from the community repository and is only available in the enterprise edition.
Alfresco Enterprise Edition is commercially & proprietary licensed open source, open standards and enterprise scale. Its design is geared towards users who require a high degree of modularity and scalable performance.
Alfresco Cloud Edition (Alfresco in the cloud) is the SaaS version of Alfresco.
Alfresco includes a content repository, an out-of-the-box web portal framework for managing and using standard portal content, a CIFS interface that provides file system compatibility on Microsoft Windows and Unix-like operating systems, a web content management system capable of virtualizing webapps and static sites via Apache Tomcat, Lucene indexing, and Activiti workflow. The Alfresco system is developed using Java technology.
John Newton (co-founder of Documentum) and John Powell (a former COO of Business Objects) founded Alfresco Software, Inc. in 2005. Its investors include the investment firms SAP Ventures, Accel Partners and Mayfield Fund. The original technical staff consisted of principal engineers from Documentum and from Oracle.
While Alfresco's product initially focused on document management, in May 2006 the company announced its intention to expand into web content management by acquiring senior technical and managerial staff from Interwoven; this included its VP of Web Content Management, two principal engineers, and a member of its user-interface team. In 2007 Alfresco hired the principal sales engineer from Vignette.
In October, 2009, the 2009 Open Source CMS Market Share Report described Alfresco as a leading Java-based open source web content management system.
In 2010, Alfresco sponsored a new open-source BPM engine called Activiti.
In July 2011, Alfresco and Ephesoft announced a technology partnership to offer their users document capture and Content Management Interoperability Services brought together for intelligent PDF capture and search and workflow development.
In January 2012, Alfresco 4.0 was released with significant improvements over the user interface. The new Alfresco aims to move further features from Alfresco Explorer to Alfresco Share, as Alfresco Explorer is intended to be deprecated over time.
In January 2013, Alfresco appointed Doug Dennerline, former President of SuccessFactors, former EVP of Sales at Salesforce.com, and former CEO of WebEx, as its new CEO.
Enterprise content management for documents, web, records, images, and collaborative content development.
Alfresco is capable of the following :
- Document management
- Web content management (including full webapp & session virtualization)
- Repository-level versioning (similar to Subversion)
- Transparent overlays (similar to unionfs)
- Records management, including 5015.2 certification
- Image management
- Learning content management support for learning management systems (e.g. Moodle)
- LOR Learning Object Repository (edu-sharing)
- Auto-generated XForms with AJAX support
- Integrated publishing
- Repository access via CIFS/SMB, FTP, WebDAV, NFS and CMIS
- Activities workflow
- Lucene search
- Federated servers
- Multi-language support
- Portable application packaging
- Multi-platform support (officially Windows, GNU/Linux and Solaris)
- Browser-based GUI (official support for Internet Explorer and Firefox)
- Desktop integration with Microsoft Office, OpenOffice.org and LibreOffice.
- Clustering support
Pluggable authentication: NTLM, LDAP, Kerberos, CAS
Multiple database support: MySQL, PostgreSQL (Community Edition), Oracle Database, IBM DB2, Microsoft SQL Server (Enterprise Edition).
- Ametys CMS :
Ametys is a free and open source content management system (CMS) written in Java. It is based on JSR-170 for content storage, Open Social for gadget rendering and a XML oriented framework. It is primarily designed to run large corporate websites, blogs, intranets and extranets on the same server.
As of May 2012, Ametys claims to run more than 30 000 websites.
Ametys is Java based and runs on any computing platform capable of running the Java Runtime Environment and an application server.
Ametys is a professional open-source CMS (content management system) written in Java.
Ametys was created in 2003 by Web and Java passionated experts and was then ported to the level of a professional open source CMS by Anyware Services (headquarters in France) in 2009.
Since 2005 and deployments of Ametys in higher education, specific components for uPortal and Jasig projects were developed. Ametys evolved through the collaboration of the community of developers, users and integrators.
The downloadable version includes user authentication via LDAP and CAS, and a WYSIWYG editor administration.
Ametys 3.4 was released in August 2012 and saw several improvements and new functionality including new plugins as UGC, glossary, FAQ, and blog management. It also included new practices of Social web.
- Ametys is primarily used by large companies and public institutions. Ametys users include :
- Industrial companies - Namely Pharmaceuticals company websites using Ametys according to Wappalyzer
- Higher education - Ametys is deployed in more than 20 universities in France like Paris Sorbonne University
- Public administration stakeholders - Direction des Journaux Officiels
- The official Ametys site provides a list of users: Ametys CMS References
- Ametys comes with many features :
- Multi-site and multilingual platform
- Front-end editing
- RSS feed support
- Document library manager, Alfresco and other document library integration
- LDAP Integration
- Website Tools : comments feed, Share buttons, Twitter feed integration, OpenSocial gadgets
- Blogs and wikis
- Newsletter management
- Web Form management
- Online survey management
- Jakarta Slide :
Welcome to the Jakarta Slide project! Slide is a content repository which can serve as a basis for a content management system / framework and other purposes. It features:
- Full WebDAV Support
- Basic DeltaV WebDAV Versioning Support
- Support for a variety of backend systems for storing the content including different databases and file system storage
- Transactions and Locking for data integrity
- Flexible control over permissions at a per file level via support for the WebDAV ACL
- DASL support for any backend, extensible for using backends search capabilities for higher scalability and less latency
- Binding support
- Simple installation as .war deployment
- 'ready-to-run' binary distribution for Tomcat
- A fully featured WebDAV client library and command line client
The Slide project main module is a content repository, which can be seen as a low-level content management framework. Conceptually, it provides a hierarchical organization of binary content which can be stored into arbitrary, heterogenous, distributed data stores. In addition, Slide integrates security, locking, versioning, as well as many other services.
It can integrate and manage data stored within external repositories, requiring only small abstraction layers to be written for each repository. That way, Slide can integrate the data from various physical locations in a hierachical and unified way. Slide uses can range from managing intranet application content to using it as a file server.
Slide also offers a WebDAV access module (implemented as a servlet). WebDAV is an IETF standard endorsed by companies like Microsoft, IBM, Novell, Adobe and many others. It makes Slide an ideal choice for web-based content management. All the data managed by Slide can be accessed through WebDAV, and enable remote administration and manipulation of the data managed by Slide using standard third party tools, along with the custom ones provided in the Slide distribution as additional tools.
Slide is an open-source content management system from the Jakarta project. It is written in Java and implements the WebDAV protocol. Slide is a set of APIs to implement the WebDAV client. Because of this, Slide can also be seen as a Content Management Framework. The use of WebDAV, which is a superset of HTTP, makes Slide an ideal candidate for web-based content management. Among the applications of Slide are its use as a file server, in intranet applications, and as an excellent repository for XML both as properties and versioned files for persistence of JavaBeans. It also has an extensible storage mechanism that can be used for Integration and adaptation.
The Apache Jakarta PMC has announced the retirement of the Jakarta Slide subproject at 2007-11-03. An alternative implementation that is actively maintained is the WebDAV component of the Apache Jackrabbit project that provides Java-based content repository software.
- Liferay Portal :
Liferay Portal is a free and open source enterprise portal written in Java and distributed under the GNU Lesser General Public License and proprietary licenses. It is primarily used to power corporate intranets and extranets.
Liferay Portal allows users to set up features common to websites. It is fundamentally constructed of functional units called portlets. Liferay is sometimes described as a content management framework or a web application framework. Liferay's support for plugins extends into multiple programming languages, including support for PHP and Ruby portlets.
Although Liferay offers a sophisticated programming interface for developers, no programming skills are required for basic website installation and administration.
Liferay Portal is Java-based and runs on any computing platform capable of running the Java Runtime Environment and an application server. Liferay is available bundled with a servlet container such as Apache Tomcat.
Liferay, Inc., is a professional open-source company that provides free documentation and paid professional service to users of its software. Mainly focused on enterprise portal technology, the company has its headquarters in Los Angeles, California, United States.
Liferay was created in 2000 by chief software architect Brian Chan to provide an enterprise portal solution for non-profit organizations. In 2004, the company was incorporated under the name Liferay, Inc., formalized its Germany subsidiary Liferay GmbH. In 2007, the company opened new Asian headquarters in Dalian, China, and the Spanish subsidiary Liferay SL. In March 2009, the company opened a new office in Bangalore, India.
Sun Microsystems and Liferay signed a technology-sharing agreement during May 2008. Sun Microsystems rebranded the offering GlassFish Web Space Server. ZDNet further describes the relationship in the May 2008 article Sun and Liferay launch web-presentation platform. In 2010 Sun was acquired by Oracle and the GlassFish Web Space Server was rebranded to Oracle GlassFish Server.
Liferay 6.1 was released in January 2012 and saw several improvements and new functionality including an improved document library, dynamic data lists and an app store
This section does not cite any references or sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (February 2012)
Liferay Portal is a JSR-286 and enterprise portal which includes a suite of applications (e.g., Content Management System, blogs, instant messaging, message boards, etc.). It is distributed in two different editions:
Liferay Portal Community Edition : A version with the latest features and support through the active community.
Liferay Portal Enterprise Edition : A commercial offering that includes services including updates and full support. This release goes through additional quality assurance cycles and is usually available around 1 or 2 months after the Community Edition and comes under a non-free license.
Liferay also provides a collaboration suite based on the Liferay platform:
Liferay Social Office : A social collaboration suite for enterprises.
Liferay comes with certain portlets preinstalled. These comprise the core functionality of the portal system. They include:
- Alerts and Announcements
- Alfresco, Documentum, and other document library integration
- Asset Publishing
- Blogs and blog aggregation
- Document and Image management
- Document Library Manager, Recent Documents
- Image Gallery
- Knowledge Basev
- LDAP Integration
- Message Boards
- Nested Portlets
- Page Ratings & Flags
- Site Map
- Site Navigation
- Social Equity
- Software Catalog
- Tags and Categories
- Themes, supporting Velocity and FreeMarker markup
- User Directory
- Web Content
- Web Form Builder
- WebDAV Integration
- Website Tools
- Wiki (supports Creole as well as MediaWiki syntax)
- Magnolia (CMS) :
Magnolia is an Open-Source content management system (CMS) developed by Magnolia International Ltd., based in Basel, Switzerland. It is based on Content repository API for Java (JSR-283).
Magnolia 1.0 was released November 15, 2003 by Obinary Ltd. Magnolia 2.0 was released November 15, 2004 with a focus on usability.
Obinary was renamed to Magnolia International Ltd. in September 2006. By that time, Magnolia had been downloaded more than 150,000 times.'
Magnolia 3.0, released on November 15, 2006, marked the switch from a pure Open Source product to a layered product strategy with the introduction of Magnolia Enterprise Edition. The proprietary version extends the open source version by adding user authentication through LDAP, a package manager to manage deployments, a JSR-168 connector and a WYSIWYG website designer
Magnolia 3.6 was released in July 2008 and focused on the ease of maintenance, robustness and performance.
In December 2008, Magnolia released "Magnolia-on-Air", a content management system designed for broadcasters and large organizations to manage their broadcast content.
In March 2009, Magnolia released Magnolia 4.0.
Magnolia 4.1 was released in June 2009. It introduces user-generated content templates that provide new functionality, including forums and public user registration. It also includes new features like a CMS-wide address book, multiple themes, RSS generation and aggregation.
Magnolia 4.4 was released in November 2010. It introduced support for concurrent editing and the ability to import and export content in different languages. It also included new workflow and dependency controls.
Magnolia 4.5 was released in March 2012. It introduced support for mobile websites and mobile content previews and interoperability with Microsoft Sharepoint, Alfresco, Photoshop, SAP, Oracle and others. It also added support for new enterprise standards like CMIS, JCR 2.0, HTML5 and Java 6.0.
Magnolia 5.0 was released on June 20, 2013. It includes a new user interface based on HTML5 and the Vaadin toolkit. The new user interface supports editing from both desktop and tablet computers. Other new features include a system of fully customizable, task-oriented "Apps", "Pulse" for real-time notifications, and "Favorites" for quick user-definable access to CMS functionality. A developer preview of Magnolia 5.0 was shown running on both a desktop and an iPad at Magnolia Conference 2012.
Coverage and Reviews
Since mid-2007, Magnolia has been covered by the independent CMS Watch report.
It is covered in the "Open Source Content Management in Java" report of Seth Gottlieb, Content Here
In August 2009, Gartner included Magnolia into their "Magic Quadrant for Web Content Management" report.
Modules offer Spring Framework and Struts integration, RSS feed support, standard templates, data caching and backup, and more. As of February 2012, the Magnolia website lists over 50 free modules.
Magnolia CMS users include the US Navy, Scottish Widows, Middle East Broadcasting Center (MBC), Atlassian and the City of Lausanne.
The official Magnolia CMS site has a directory of example users: Magnolia CMS References
In September 2010, Magnolia won the Swiss Open Source Award in the Contribution category.
In May 2011, the Red Herring editorial team selected Magnolia as part of the 2011 Top 100 Europe.
- RIFE :
RIFE is a content management framework designed for rapid web application development in Java, without using J2EE.
RIFE's design blends together in a consistent component object model two approaches, request-based and component-based. Through a centralized site structure (web engine), an application can be split up into reusable binary modules that can be integrated into other projects.
Welcome to RIFE
RIFE is a full-stack web application framework with tools and APIs to implement most common web features. Each of its toolkits is usable by itself and together they offer powerful integrated features that boost your productivity. RIFE ensures that every declaration and definition is handled in one place in the code. This simplifies the developer's task by reducing code replication, enforcing consistency, and easing maintenance.
RIFE's differentiators are:
- you get 90% of the features with 10% of the usual effort, thanks to its full stack
- logic-less HTML templates that can be previewed in any browser and edited with standard tools
- uniform component model, designed from the ground up for reusability: applications, sub-sites, pages, porlets, widgets, ... can be easily packaged and placed in any other context
- integrated native Java web continuations and flow continuations
- metaprogramming, driven by your domain model, but without polluting it
- flexible declaration and configuration with support for plain Java as well as XML
- core support for web data flow as well as page logic flow
- integrates with existing solutions such as Spring and standard JDBC datasources
- multi-dimensional conversational state management with scoping
- language-independent template engine with support for XHTML, HTML, XML, Text, SQL, Java
- persistence layer with content management integration and versioning
- designed for the creation of consistent maintainable applications as well as on quick delivery
- embraces standard protocols and specifications, providing larger building blocks by wrapping lower layers with high-level functionalities
- out-of-container testing with full introspection capabilities of the executed flow and components
- lightweight execution model that has been proven in production
- built for Java 5 with intelligent downgraded support for Java 4
- designed for developer comfort: minimal application restarts thanks to automatic detection of file modifications
What's inside the full stack ?
RIFE's full stack provides you with most of the features you need to build a dynamic database-backed website. Each layer has been designed for tight integration with the others, but is still fully functional when used independently. You're not forced to use all the features and are free to still use other libraries like Spring, Hibernate, iBatis, Velocity, ...
Why RIFE's web engine ?
RIFE's design provides the best of request-based and component-based approaches and blends them together in a consistent component object model. The web engine provides a solution that values maintainability without compromising on productivity. Through a centralized site structure, an application can be split up into easily reusable binary modules that can be seamlessly integrated into other projects.
There are currently two major schools of web application development frameworks: request-based and component-based.
Request-based frameworks are very close to the original CGI specification. They use controllers and actions that directly handle incoming requests. Each request is fundamentally stateless. With the introduction of server-side sessions, a certain degree of statefulness has been achieved. The different frameworks basically differentiate themselves by the way they map logic to URLs and how data is structured and provided to the developer.
Component-based frameworks abstract the developer away from the internals of the request handling and encapsulate the logic into reusable components, often independent from the web medium. The state is automatically handled by the framework, based on the data that is present in each component instance. Together with some form of event handling, this development model is very similar to the features offered by desktop GUI toolkits. The different frameworks basically differentiate themselves by the provided component API and how components are combined together.
RIFE combines both by taking control of the entire data and logic flow in a request-based model. Developers remain close to the architecture of CGI applications and have full control over URLs, forms, parameters, cookies and pathinfos. However, instead of mapping actions and controllers directly to the request, RIFE provides a component object model that behaves identically in many different situations such as individual pages, intercepted requests, portal-like page fragments and integratable widgets. Components can be wired together and be packaged as groups that are components in their own right. They can be distributed separately and be seamlessly integrated into any other RIFE project. This provides the same form of reusability as component-based frameworks, but with the raw control of the request-based approach.
- RIFE is composed out of a large collection of modular parts, which include:
- web application engine,
- integrated web continuations,
- Inversion of control support
- support for template content transformation through for example XSLT,
- centralized meta-data facility,
- authentication framework,
- JDBC abstraction layer,
- database query builders,
- persistence layer,
- configuration framework,
- central application life-cycle management,
- cron-like scheduler,
- asynchronous mail queue,
- content syndication framework,
- resource abstraction,
- web services.
- Hippo CMS :
Hippo CMS brings real-time relevance to their audience and is the foundation for personalized communication across all channels: mobile, social and web. Hippo Content Management System is open-source, 100% Java and convinces with its lean product architecture that is built for uptime, security and performance.
The Hippo CMS project was initiated by Hippo. It's targeted at medium to large organisations managing content for multi-channel distribution like web sites, mobile, tablet, facebook, extranets and intranets. It follows open standards.
What is Hippo CMS ?
Hippo CMS is a Java based, Open Source Web Content Management platform. Hippo is created to help you deliver Personalized Experiences across a wide variety of Channels and Devices, around the globe, to increase conversion and to improve brand loyalty.
Hippo CMS uses a clean, modular architecture with an emphasis on the separation of the content from the presentation logic. This enables content editors to create content once, and then publish it to regular web sites, mobile sites, Facebook, REST APIs, digital magazines, mobile apps, and so on. Under the hood, Hippo CMS supports many open standards such as JCR and REST to simplify development and integrations with existing systems.
Next to creating and editing content, Hippo CMS enables webmasters to create new channels or configure existing page templates using its channel manager and template composer. Using the Relevance Module, specific content can be targeted at specific visitors based on the visitor’s current context, past personal history and matching personas created by the marketing team.
The Hippo Delivery Tier (also known as HST) provides the tools for rapid development of websites and other channels such as REST endpoints or RSS feeds. Both the Hippo CMS user interface and the Delivery Tier are highly customizable and extensible.
Hippo CMS comes in two flavors: our Community Edition is distributed under the Apache 2 license and the Enterprise Edition, which includes additional modules such as the Relevance Module and Reporting. More information about these two editions and their differences can be found here. If you want to play around with the Community Edition of Hippo CMS, you can download our evaluation package.
The Hippo product suite or Hippo CMS (Enterprise Content Management) comprises a collection of components which by means of separation of concerns maximizes extensibility, interoperability and scalability. The components available include:
A web application providing the user interface for content management and administrative functionality. Its GUI plugin architecture is based upon Apache Wicket web application framework. Hippo Repository
The central component that stores content and provides content management and administration functionality. Content and functionality are exposed by Content repository API for Java, JSR-170 and are implemented on the reference implementation Apache Jackrabbit. Hippo Site Toolkit and Hippo Portal
Hippo Site Toolkit
This component provides the tools for rapid development of websites and a REST API. A templating engine is offered that can be controlled from Hippo CMS. Furthermore, a tag library and expression language offer development of a JSP or FreeMarker based view layer.
Open Source and Open Standards
Hippo CMS is user friendly, has an open architecture and is designed for interoperability with existing environments. Hippo CMS is built to integrate external sources of content into one. Therefore, it uses all relevant open standards to allow this integration. For many existing sources, connectors are available in the codebase.
- The open architecture of Hippo CMS has the following key points:
- Faceted repository
- Open source
- Content repository API for Java, JSR-170
- Works with open standards
- Reuse of content
- Separation of content, design, logic and the CMS itself.
- User friendly user interface
- Native XML, 100% Java
- No vendor lock-in
- OpenCms :
OpenCms is an open source content management system written in Java. It is distributed by Alkacon Software under the LGPL license. OpenCms requires a JSP Servlet container such as Apache Tomcat.
It is a CMS application with a browser-based work environment, asset management, user management, workflow management, a WYSIWYG editor, internationalization support, content versioning, and many more features including proxying of requests to another endpoint.
OpenCms was launched in 1999, based on its closed-source predecessor MhtCms. The first open source version was released in 2000.
OpenCms has been used by large organizations such as the LGT Bank of Lichtenstein, BP South Africa, and UNICEF Netherlands.
OpenCms - Professional Content Management
OpenCms from Alkacon Software is an enterprise-ready open source web content management system (CMS) based on Java and XML. OpenCms is platform independent - Runs on: Windows, Linux, Unix, Solaris, Mac OS. OpenCms supports all top databases: MySQL, Oracle, PostgreSQL, MS SQL. OpenCms works with the most popular Application Servers: Tomcat, JBoss, BEA, Websphere, Glassfish and Resin Professional. OpenCms has a browser based GUI, compatible with all top browsers: Internet Explorer, Mozilla Firefox, Chrome, Safari, Opera. Download OpenCms, the open source enterprise level website content management system, for free.
OpenCms from Alkacon Software is a professional, easy to use website content management system. OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently.
The fully browser based user interface features configurable editors for structured content with well defined fields. Alternatively, content can be created using an integrated WYSIWYG editor similar to well known office applications. A sophisticated template engine enforces a site-wide corporate layout and W3C standard compliance for all content.
OpenCms is based on Java and XML technology. It can be deployed in an open source environment (e.g. Linux, Apache, Tomcat, MySQL) as well as on commercial components (e.g. Windows NT, IIS, BEA Weblogic, Oracle).
As true open source software, OpenCms is free of licensing costs.
Advantages of OpenCms
OpenCms is a website content management system (CMS) that allows to maintain a public website, an extranet or an intranet with little or no help by an external agency or internet professional. Departments and individual users can thus concentrate on creating the content for the website, and publish it in an easy and intuitive way. The build in 2 phase (4 eye) approval workflow allows optional quality assurance before contents go "live" to the website.
OpenCms provides a professional, cost effective Open Source alternative to high expensive and proprietary "commercial" solutions, ready to be deployed by organizations or enterprises of any size. When compared to other Open Source solutions, OpenCms stands out for it's rich feature set, it's maturity and the high level of adoption worldwide. For OpenCms, support is fully available by the active OpenCms development community and also by a number of companies around the world that offer consulting and project services, support agreements and training.
OpenCms is platform independent
Using OpenCms is fully browser based. The OpenCms software is installed on a web server, content managers access the system from any location with their web browser. Security is ensured by using strong encryption https protocols for the login process if required.
All of the web server's software components are based on standard Java technology. Java is today the enterprise application development environment of choice, and has also attracted a large Open Source community. Using high quality Open Source Java components like OpenCms in the enterprise provides an appealing cost-saving opportunity.
OpenCms helps to reduce IT costs
Using quality Open Source software like OpenCms, enterprises can dramatically reduce licensing costs and total cost of ownership (TCO). With the current shift to Open Source operating systems like LINUX, the move to Open Source applications is the logical next step.
OpenCms helps to reduce IT costs because
1. There are NO LICENSING COSTS for the OpenCms core, no matter on how many servers you install the software.
2. you have FULL ACCESS TO THE CORE SOURCE CODE which can be extended and remodeled in any way, without restrictions.
3. optional SUPPORT IS AVAILABLE from a number of companies, reducing dependency on the deploying software consultancy.
4. it is based on STANDARD JAVA TECHNOLOGY, supports a wide number of commercial and Open Source databases and operating systems, and thus can easily fit in almost all existing IT environments.
An enterprise class website content management system like OpenCms is never a product used "out of the box", no matter what all the well trained sales people try to tell you. This is true for all commercial or Open Source products, as well as for OpenCms. The bottom line is, all CMS systems must be configured and setup by a professional consultancy, or by people trained in the product. Since OpenCms is available as Open Source and based on 100% Java, getting to know the system or finding a partner for OpenCms is easy, because Java knowledge is readily available. Using well known standard Java and XML, as well as related standards like e.g. Servlets, JSP, JDBC, also enables you to leverage existing know-how that might already be available in your enterprise or organization.
- OpenEdit :
OpenEdit is a JAVA based, open source software used to build powerful, yet lightweight web applications. Licensed under a royalty free, perpetual and transferable GNU LGPL license, Open source provides freedom on setting up your systems as you wish and freedom in the long term.
OpenEdit Digital Asset Management with Content Management was built using OpenEdit Framework.
Over the years, OpenEdit has been refined and implemented for numerous web application projects, mostly used in enterprise global environments. OpenEdit has evolved from a pure content management solution, into a web application framework used to create and maintain dynamic websites and custom web applications, such as Content Management, Digital Asset Management, Ecommerce, Social Networking Tools, etc.
A solid working knowledge of productivity software and other IT tools has become a basic foundation for success in virtually any career. Beyond that, however, I don't think you can overemphasise the importance of having a good background in maths and science.....
"Every software system needs to have a simple yet powerful organizational philosophy (think of it as the software equivalent of a sound bite that describes the system's architecture)... A step in thr development process is to articulate this architectural framework, so that we might have a stable foundation upon which to evolve the system's function points. "
"All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change"
"The ultimate measurement is effectiveness, not efficiency "
"It is argued that software architecture is an effective tool to cut development cost and time and to increase the quality of a system. "Architecture-centric methods and agile approaches." Agile Processes in Software Engineering and Extreme Programming.
"Java is C++ without the guns, knives, and clubs "
"When done well, software is invisible"
"Our words are built on the objects of our experience. They have acquired their effectiveness by adapting themselves to the occurrences of our everyday world."
"I always knew that one day Smalltalk would replace Java. I just didn't know it would be called Ruby. "
"The best way to predict the future is to invent it."
"In 30 years Lisp will likely be ahead of C++/Java (but behind something else)"
"Possibly the only real object-oriented system in working order. (About Internet)"
"Simple things should be simple, complex things should be possible. "
"Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines."
"Model Driven Architecture is a style of enterprise application development and integration, based on using automated tools to build system independent models and transform them into efficient implementations. "
"The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs. "
"Software Engineering Economics is an invaluable guide to determining software costs, applying the fundamental concepts of microeconomics to software engineering, and utilizing economic analysis in software engineering decision making. "
"Ultimately, discovery and invention are both problems of classification, and classification is fundamentally a problem of finding sameness. When we classify, we seek to group things that have a common structure or exhibit a common behavior. "
"Perhaps the greatest strength of an object-oriented approach to development is that it offers a mechanism that captures a model of the real world. "
"The entire history of software engineering is that of the rise in levels of abstraction. "
"The amateur software engineer is always in search of magic, some sensational method or tool whose application promises to render software development trivial. It is the mark of the professional software engineer to know that no such panacea exist "
Core Values ?Agile And Scrum Based Architecture
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration.....more
Core Values ?Total quality management
Total Quality Management / TQM is an integrative philosophy of management for continuously improving the quality of products and processes. TQM is based on the premise that the quality of products and .....more
Core Values ?Design that Matters
We are more than code junkies. We're a company that cares how a product works and what it says to its users. There is no reason why your custom software should be difficult to understand.....more
Core Values ?Expertise that is Second to None
With extensive software development experience, our development team is up for any challenge within the Great Plains development environment. our Research works on IEEE international papers are consider....more
Core Values ?Solutions that Deliver Results
We have a proven track record of developing and delivering solutions that have resulted in reduced costs, time savings, and increased efficiency. Our clients are very much ....more
Core Values ?Relentless Software Testing
We simply dont release anything that isnt tested well. Tell us something cant be tested under automation, and we will go prove it can be. We create tests before we write the complementary production software......more
Core Values ?Unparalled Technical Support
If a customer needs technical support for one of our products, no-one can do it better than us. Our offices are open from 9am until 9pm Monday to Friday, and soon to be 24hours. Unlike many companies, you are able to....more
Core Values ?Impressive Results
We have a reputation for process genius, fanatical testing, high quality, and software joy. Whatever your business, our methods will work well in your field. We have done work in Erp Solutions ,e-commerce, Portal Solutions,IEEE Research....more
Why Choose Us ?
The intellectual commitment of our development team is central to the leonsoft ability to achieve its mission: to develop principled, innovative thought leaders in global communities.Read More
Today's most successful enterprise applications were once nothing more than an idea in someone's head. While many of these applications are planned and budgeted from the beginning.Read More
We constantly strive to redefine the standard of excellence in everything we do. We encourage both individuals and teams to constantly strive for developing innovative technologies....Read More
If our customers are the foundation of our business, then integrity is the cornerstone. Everything we do is guided by what is right. We live by the highest ethical standards.....Read More