# OpenWGA

OpenWGA is a Content Management System (CMS) running on the Java Enterprise Edition Platform. It is used to build, manage and publish websites and content-centric web applications. The system is developed and maintained by German company Innovation Gate GmbH.

## Components and Editions of the CMS platform

The central part of the platform is the OpenWGA Server, a web server process responsible for publishing web applications. It itself is a web application of the Java Enterprise Edition Platform and is available in two editions:
* The Community Edition contains the content publishing engine, support for storing content data on MySQL, PostgreSQL, Microsoft SQL Server and HSQLDB databases and includes basic capabilities for user authentication. It is licensed as Open Source Software under GNU GPLv3 or higher and usable without fee. A special exception to the GNU GPL allows distribution of custom-licensed OpenWGA plugins along with the OpenWGA server.
* The Enterprise Edition builds upon the Community Edition to add support for database platforms (Lotus Domino, IBM DB2, Oracle Database), user authentication systems (LDAP directory servers, multiple shared authentication) and external data sources (CMIS repositories, Lotus Domino Databases) that are considered "enterprise grade" by the product creators. It consists of the GPL licensed community edition plus a custom-licensed "Enterprise Plugin" containing the additional features. Access to the Enterprise Edition is available via a paid subscription model by Innovation Gate GmbH.
Another part of the platform is the OpenWGA developer studio, an Integrated development environment for developing and testing OpenWGA web applications, based on the Eclipse IDE framework.

## History

OpenWGA was long time developed under the name of WGA and was by this time a commercial Web Content Management System only available to the German market. With releasing it under Open Source License it was rebranded to OpenWGA. The acronym originally stood for "WebGate Anywhere", containing a reference to the predecessor software "Webgate", a CMS running on the IBM Lotus Domino Platform. The WGA/OpenWGA software has no connection with Windows Genuine Advantage, also known as WGA.
| Release | Version | Notable Enhancements |
| 2001 | 1.0 | No complete CMS but merely a Java-based interface server for adding content data to CMS "WebGate" via third party authoring clients like Microsoft Word and other office products |
| 2002 | 2.0 | Complete CMS server on J2EE platform storing content (and design) data in Lotus Domino Databases |
| 2003 | 2.1 | New administrative tools: "WGA Admin Page" for monitoring and "WGA Manager" (Java Webstart Application) for configuring the server; Introduction of WebTML actions |
| February 2004 | 2.2 | First version of WebTML portlet framework; Switching data interface for Lotus Domino to DIIOP CORBA protocol instead of "native interface", fixing various resource exhaustion problems |
| July 2004 | 3.0 | Introduction of content storage for relational database systems; Reworked Browser Authoring Interface; WebTML forms |
| December 2004 | 3.1 | WGA Scheduler; Incremental Content Store Synchronisation |
| 2005 | 3.2 | Integrated Lucene fulltext index; TMLScript overhaul; ACL Roles |
| 2006 | 3.3 | External storage of designs in design directories; Design sharing; WebTML forms and labels |
| 2007 | 4.0 | Focus on Web application development; WGA Plugins architecture; Modernization of WebTML portlet framework incl. AJAX functionality; OpenWGA Content Manager replaces "Browser Authoring Interface"; WGA Design Assistant allows configuration of WGA design directories |
| 2008 | 4.1 | Optimized content file handling with resource-neutral fetching of large file data; Addressing content via human-readable title path URLs |
| April 2010 | 5.0 | Release as OpenWGA Community Edition under GPL; Refactored and simplified administrative model including new OpenWGA admin client; OpenWGA developer studio; Content relations; Exposure to international market |
| August 2010 | 5.1 | Pluggable language behaviour; Beginning Drag&Drop support in OpenWGA Content Manager; Externalize serving of large files to HTTP server |
| November 2010 | 5.2 | CMIS connectivity; Support for PostgreSQL databases; Image editing features inside OpenWGA Content Manager |
| March 2011 | 5.3 | Content modules; Virtual Hosts; Search Engine Optimizations |
| July 2011 | 5.4 | Plugin Store; Inheritable read access restrictions for pages; Content Module Templates; Customizable application designs |
| December 2011 | 5.5 | Basic Website Kit; HDBModel application framework; Support for Microsoft SQLServer in Community Edition |
| May 2012 | 6.0 | New base stream with 3 years of support; Basic App Kit; Shared server connection pool |
| May 2013 | 6.1 | OpenWGA Server API |
| September 2013 | 6.2 | WebTML portlet applications capable of multi-window usage; Problem Registry; Services APIs |
| April 2014 | 6.3 | File derivates; RESTful web service; cluster communication framework; Optimized "distinct file contents" storage for binary data |
| September 2014 | 7.0 | New base stream with 3 years of support; Customization of Authoring UI; Performance Improvements |
| February 2015 | 7.1 | Switch to unoconv service for the analysis and indexing of office files; Refactored fulltext index, separately indexing distinct file attachments |
| June 2016 | 7.2 | Version 7.2 released: MVC: Added TMLScript controller and renderer modules |
| October 2016 | 7.3 | Version 7.3 released: New SEO panel |
| March 2017 | 7.4 | Version 7.4 released: Language dependent optimised fulltext index |
| December 2017 | 7.5 | Version 7.5 released |
| July 2018 | 7.6 | Version 7.6 released with new Content Manager UI |
| July 2019 | 7.7 | Version 7.7 released |

## Content management characteristics

OpenWGA provides the following characteristic features known in content management and publishing:
* Hierarchically organized, versionable, multi language content in a freely definable structure
* Storage of binary content data along with content
* Automatic fulltext indexing of content
* Browser-based WYSIWYG content authoring
* Configurable read/write authorisations on multiple levels: Application, Hierarchy, Document
* Approval Workflow
* Web service access to content data via RESTful HTTP webservice, CMIS, SOAP and WebDAV
* Synchronisation of Content Data across servers
* User personalisation via individual user profiles

## Template / Application development

OpenWGA uses its own templating languages called WebTML and TMLScript. WebTML is a syntax of XML-formatted tags, prefixed with "tml:", that mark dynamic parts of page templates, providing mainly data output and flow control beside offering higher level features. TMLScript is an expression language used to specify expressions and define routines in WebTML that complies to the rules of JavaScript Version 1.6.
The following example demonstrates the usage of WebTML and TMLScript (inside the "condition" attribute) in a HTML page template:
The design of an OpenWGA web application is either provided as OpenWGA design directory for direct editing or as an OpenWGA plugin for wider distribution.