|This article needs additional citations for verification. (March 2009)|
||This article appears to be written like an advertisement. (June 2013)|
|Stable release||2.5 / September 24, 2013|
|Type||Content Management System|
|License||GNU General Public License v3|
DotCMS is a free software / open source web content management system (WCM) for building/managing websites, content and content driven web applications. DotCMS includes features such as support for virtual hosting, WebDav, structured content, clustering and can run on multiple databases PostgreSQL, MySQL, MSSQL and Oracle. It also includes standard WCM features like page caching, templating, and an API. There are a number of features and modules in dotCMS, including RSS feeds, AJAX calendar, a reporting engine, news listing, blogs, forums, user tracking and tagging, built in search engine and language internationalization to name a few.
DotCMS was initially developed as a Java alternative to the PHP CMSes on the market, as well as to provide a counterpoint to high cost, enterprise applications. It is the result of over 5 years of development by dotMarketing, Inc, which also developed and released the open source project management tool dotProject. Both dotCMS and dotProject were conceived and originated by William Ezell. In order to achieve compliance with JSR-168 portlet specification dotCMS was built upon the Liferay portal, though it has since forked Liferay at version 3.2.2. DotCMS 1.0 was initially open sourced and made available in 2005 under the dotMarketing Public License. In 2006, dotCMS released version 1.2 which included the structured content engine. In 2007 dotCMS released version 1.5, which included a new user interface and permissions. In October, 2007 dotCMS 1.5 was the runner up for Packt Publishing's "Best New Open Source CMS" award, followed in 2008 by a second place finish for Packt's "Best Other Open Source CMS (best non PHP CMS)". DotCMS was runner-up in the 2009 Packt Publishing category, "Best Other Open Source CMS." 
In Sept 2013 version 2.5 was released, this latest release continues to add features that address real world challenges faced by content managers, web developers and java developers in the modern enterprise.
- Push Publishing of content, pages, assets, sites.
- Remote OSGi plugin deployment.
- RESTful JSON/XML/POST content save.
- Themes and Responsive design
- Template Builder / Designer
- Automatic Link Checker
- Time Machine / Static Snapshot
- Scheduled Publishing
- Dynamic Deployment of Portlets (OSGi)
- New Navigation Tool
- Wiki Tool
- BETA - Remote Publishing
- OSGI/Dynamic Plugin Improvements
- Related Content Improvements
- Custom Fields are now supported on the Front End of dotCMS Forms and SubmitContent Macro
- Added new methods to the Restful API for Index Management providing easier backup/restore functionality
- Error Pages - You can now control the logo on the default error pages ie.. 403, 404, 500
- DotCMS Browser - You can now copy/paste at root level of Host
- The Drop Old Assets and Fix Asset Inconsistencies are much improved in both performance and functionality
- Permission Performance is greatly improved. This included applying permissions from the Role Manager on All Hosts
- Reindex Performance is greatly improved. We have seen over 10 times the speed on some installs
- Upgraded WebDav library and fixed many bugs with WebDav including issues with limited users
- DOJO has been upgraded to 1.8 for latest Browser support
- Upgraded Elastic Search to 19.9
- Upgraded TinyMCE to 3.5.7
- DotCMS is now fully translated into Chinese, French, Italian, Dutch, German, Russian, and Spanish
- The logging config now logs Velocity logging to its own file
- We made a few changes to the stater
- Solved a cluster issue which could prevent dotCMS from starting in 2.1
- Fixed a MSSQL permission caching issue https://github.com/dotCMS/dotCMS/issues/844
- Enterprise Site Search
- Accessibility Checker in the WYSIWYG
- Scheduled Workflow Tasks
- Easier Administration and Manageability
- New RESTful APIs to access Content and Widgets
- Integrated Help System
- .html is now the Default HTML Page Extension
- Customizable/Extendable Workflow Engine
- Files as Content
- Full-Text Document and Metadata Indexing
- Content Editing UI improvements and Pessimistic Content Check-in / Checkout
- Key/Value Field Type
- ElasticSearch for performance and horizontal scalability
- OSGI Implemented (BETA)
- Spring 3 MVC Support
- Velocity Logging Improvements
- Streamlined cache infrastructure based on a non-blocking LRU algorithm. You now have control of what gets cached to disk and what does not.
- You can now see how much memory each Cache region consumes in the UI along with other important cache stats.
- Fixed multiple JS and Browser related issues.
- Improved CAS and LDAP support.
- Internationalized the JSON/XML Servlet.
- Category Manager UI completely redone
- Category Field UI on Edit Content screen is redone
- Tag Manager
- Tags can now be Global OR Host Specific
- Dutch Translation Improved
- Added ability for Cache to invalidate without using the DB in a cluster. This is huge for clusters which get backend load.
- Improved UI/XP of content relationships
- Removed old school popups from content searches.
- IE 9 and FireFox 5 are fully supported in the backend.
- IE 6 and 7 are now supported through the use of the ChromeFrame Plugin.
- An Admin can now tail dotCMS logs from the CMS Maintenance scree.
- The content importer now supports importing relationships (via a lucene query) and files
- The spell checker is now fully integrated into the WYSIWYG Editor
- Performance improvements for permissions
- LDAP will now auto create roles that do not exist
- For Enterprise clients, the TagCloud Macro now caches for 24 hours by default (can be overridden).
- Content can now be created via email (see documentation).
- Fields can now have variables associated with them - will be used for future development.
- Backend now translated into Dutch thanks to Koen Peters and Isaac.nl!
- Online Image Editor allows content contributors to edit images without needing additional software. Users can resize, crop, rotate, "save as" different image types and adjust hue, saturation, brightness and coloration of images stored in dotCMS.
- New Image Renditions and Clipboard allows content editors to use edited versions (renditions) of source images without having to store multiple versions of the same image. An Image clipboard allows users to create the rendition they want to use, add it to their clipboard, and paste it into their content for re-use.
- Inline Editing allows content editors frictionless editing of site content, inline, without needing to return to the admin portal.
- Host Dashboard gives web site owners and marketers a snapshot of key site trends and usage statistics.
- Activity Stream Reporter provides web managers detailed reports into content contributors’ and other users' usage and activity within the web content management system.
- Page Caching allows an administrator to cache pages statically for a set period of time for maximum scalability.
- Extended SEO Descriptions and Keywords give page editors fine grained control over relevant SEO metadata.
- Cache Tags give web developers a way to statically cache arbitrary blocks of template, container, page or content code to increase page performance.
- New Auto Updater allows for easier system upgrades and helps insure you are running the latest version of dotCMS.
- Italian Language translation now included out of the box.
- Multi-lingual backend now includes Spanish, French, German and Conversational Chinese translations.
- Red-lining : "what's changed" tracks additions, deletions before publishing.
- New I/O friendly disk cache implementation speeds page delivery and overall throughput.
- JSP/Velocity integration tool eases legacy/enterprise system integration by allowing JSPs to be wrapped by velocity templates and content.
- Improved starter site ships with Events calendar, more demonstrations, Google Maps and Google Analytics.
- Multi-host sites will exclude system content by default, more cleanly separating content that lives on specific hosts.
- Multi-host sites log you into the host that you are viewing by default.
- Community contributed JSON Tool - server side JSON handling that allows you to consume and reuse JSON from remote systems - thanks Michael Fienen (@fienen)!
- Community contributed email Tool - scripting friendly tool allows email communication from within Velocity - thanks Chris Falzone (@chris_falzone)!
- A number of minor bug fixes and improvements.
The 1.9 release is a significant revision to the code base and has a number of changes and improvements, including:
- Scripting support for PHP, Groovy, Python and Ruby
- Integrated Form builder
- i18n compliance for the administration interface
- Complete UI redesign for the administration interface
- Binary content fields for structures
- Additional form structure and new form submission engine
- Completely refactored permissions system
- CMIS (Content Management Interoperability Services) 1.0 spec compliance—making dotCMS the first WCM to do so. DotCMS is an Oasis TC Member.
DotCMS is a CMS written in the Java programming language, and comes bundled with the Apache Tomcat Application Server. The freely available community edition can run on PostgreSQL and MySQL and paid for versions can run on MSSQL and Oracle. It is capable of integrating with user's authentication schemes, such as Active Directory or LDAP, and will support operation in a clustered or load balanced environment. It leverages a number of open source projects such as:
- Apache Struts Web Framework
- Apache Lucene Search Engine
- Apache Velocity Templating Language
- Liferay Portal
- Apache Tomcat Application Server
- JBoss Cache distributed caching system
- Hibernate Object Relational Mapping
The driving concept behind content stored within dotCMS is that it is addressed through a system of structures. Structures are administrated through a back end portlet where fields are assigned to them. Fields are named and given a content type and then ordered. Each structure can then be permissioned and used when creating content, and allows different types of content with consistent components to be referenced for display on the front end. A "web page content" structure could be assigned a title and body, for instance, while "events" have titles, dates, times, locations, descriptions, links, etc. Structures therefore allow the CMS to tailor itself to the content demands of the institution using it, because they can create and define structures that are specific to their needs. Those structures can then be created through relationships, allowing content from one structure to be associated content items in another. There is no limit to the number of structures one can use within dotCMS.
- Official website
- @dotCMS - Twitter
- facebook.com/dotCMS - Facebook Page
- groups.google.com/group/dotcms - Mailing List
- github.com/dotCMS/dotCMS - GitHub Repository
- github.com/dotcms/dotcms/issues - Issue Tracking
- List of licensing options from DotCMS .