========================================
Release notes - eXo Platform ${org.exoplatform.platform.version}
========================================


Date: ${build.date}
Version: ${org.exoplatform.platform.version}

I.    MAIN CHANGES
II.   STARTUP INSTRUCTIONS
III.  UPGRADE NOTES
IV.   KNOWN ISSUES

= I. MAIN CHANGES =

Main changes since Platform 4.4

* Features
** Enterprise Skin
** Web Conferencing
** Like on comments
** Insert images in microblog
** Share multiple documents in microblog Stream
** Space and profile banner
** Improved navigation
** Reply to comment
** Combine search terms and tags
** Improved Chat app communication layer thanks to WebSockets
* Improvements
** Pluggable USer Profile IM list
** Configurable spaces administrators
** Commons RDBMS
** New Cache strategy & configuration
** New Organization Service Cache
** Better Files indexing and search (in Elasticsearch)
** Improved custom skin mechanisms
** Hot JCR workspace reindexing
** New MBean to reload Javascripts
** Javascript modules minification disabling option
** Java 9 compatibility (runtime)
* Upgrades
** Upgrade to Tomcat 8.5
** Upgrade to JBoss EAP 7.0
** Upgrade to Elasticsearch 5.6
** Upgrade to Shindig 2.5
** Upgrade to Infinispan 8.2
** Upgrade to Groovy 2.4.12
** Upgrade to JQuery 3.2.1
** Upgrade to CKEditor to 4.7.2
** Upgrade caja from r4251 to r5054
** Upgrade com.google.javascript:closure-compiler from r1592 to v20131014
** Upgrade commons-fileupload:commons-fileupload from 1.3.2 to 1.3.3
** Upgrade org.apache.commons:commons-lang3 from 3.2 to 3.3.2
** Upgrade org.eclipse.jdt:ecj from 4.4.2 to 4.6.3
** Upgrade net.sf.ehcache:ehcache-core from 2.2.0 to 2.6.9
** Upgrade com.google.guava:guava from 11.0.2 to 18.0
** Upgrade org.hsqldb:hsqldb from 2.3.3 to 2.4.0
** Upgrade org.jboss.logging:jboss-logging from 3.1.3.GA to 3.3.0.Final
** Upgrade org.jgroups:jgroups from 3.2.7.Final to 3.6.13.Final
** Upgrade joda-time:joda-time from 1.6.2 to 2.4
** Upgrade com.thoughtworks.xstream:xstream from 1.4.8 to 1.4.10
* Bug fixes

Main changes since Platform 4.3

* Features
** Text formatting in microblog
** Notifications should always include a link to originating app
** Preview documents on search results
** @mentions in documents comments
** Align Document versioning screen with wiki
** Invite space members from Members app
** Share Document to user
** Display space avatar in the activity streams
** Forum Redesign
** Add excerpt of the comment in notifications
** Text formatting for comments
** Disable Activities by type by configuration
** Elasticsearch in PLF
** Social RDBMS in PLF
** Wiki RDBMS in PLF
** New file storage (File RDBMS)
** Database implementation of File API
** Quartz in database by default
* Improvements
** Improvement in user suggestions when @mentioning
** Make people search accents and typos insensitive
** Merge Wars inside each App - only one war per App (Wiki, Calendar, Forum, Commons)
** Reduce PLF Startup time
* Upgrade
** Upgrade Tomcat to 7.0.72
** Upgrade JBoss to 6.4
** Upgrade com.ibm.icu:icu4j from 3.8.1 to 56.1
** Upgrade com.mattbertolini:liquibase-slf4j from 1.2.1 to 2.0.0
** Upgrade com.thoughtworks.xstream:xstream from 1.3.1 to 1.4.8
** Upgrade commons-codec:commons-codec from 1.4 to 1.10
** Upgrade commons-collections:commons-collections from 3.2.1 to 3.2.2
** Upgrade commons-io:commons-io from 2.1 to 2.4
** Upgrade javax.mail:mail from 1.4.7 to 1.5.5
** Upgrade javax.validation:validation-api from 1.0.0.GA to 1.1.0.Final
** Upgrade javax.ws.rs:jsr311-api from 1.0 to 1.1.1
** Upgrade net.sourceforge.cssparser:cssparser from 0.9.14 to 0.9.18
** Upgrade net.sourceforge.nekohtml:nekohtml from 1.9.20 to 1.9.22
** Upgrade org.apache.pdfbox:pdfbox from 1.7.1 to 1.8.11
** Upgrade org.apache.poi:poi* from 3.10.1 to 3.13
** Upgrade org.aspectj:aspectjrt from 1.8.6 to 1.8.8
** Upgrade org.chromattic:chromattic from 1.3.0-beta4 to 1.3.0
** Upgrade org.cometd.java:bayeux-api from 3.0.5 to 3.0.9
** Upgrade org.cometd.java:cometd-java-* from 3.0.5 to 3.0.9
** Upgrade org.elasticsearch:elasticsearch from 1.7.3 to 2.3.2
** Upgrade org.hibernate:hibernate-c3p0 from 4.1.12.Final to 4.2.21.Final
** Upgrade org.hibernate:hibernate-core from 4.1.12.Final to 4.2.21.Final
** Upgrade org.hibernate:hibernate-entitymanager from 4.1.12.Final to 4.2.21.Final
** Upgrade org.hibernate:hibernate-validator from 4.2.0.Final to 4.2.1.Final
** Upgrade org.hibernate.common:hibernate-commons-annotations from 4.0.4.Final to 4.0.5.Final
** Upgrade org.infinispan:infinispan-core from 5.2.9.Final to 5.2.15.Final
** Upgrade org.javassist:javassist from 3.14.0-GA to 3.20.0-GA
** Upgrade org.jibx:jibx-run from 1.2.5 to 1.2.6
** Upgrade org.liquibase:liquibase-core from 3.4.1 to 3.4.2
** Upgrade org.owasp.antisamy:antisamy from 1.4.5 to 1.5.3
** Upgrade org.quartz-scheduler:quartz from 2.1.7 to 2.2.2
** Upgrade org.slf4j:slf4j-* from 1.7.7 to 1.7.18
** Upgrade org.staxnav:staxnav.core from 0.9.6 to 0.9.8
** Upgrade org.xhtmlrenderer:flying-saucer-* from 9.0.6 to 9.0.8
** Upgrade org.xwiki.commons from 5.4.2 to 5.4.7
** Upgrade org.xwiki.platform from 5.4.2 to 5.4.7
** Upgrade org.xwiki.rendering:* from 5.4.2 to 5.4.7
** Upgrade pdf.js to 1.4.20
** Upgrade ckeditor to 4.5.9
* Bug fixes

Main changes since Platform 4.2

* Features
** Activity Permalinks
** Authentication with Social Networks
** CDI Support for Portlets
** Disable Users
** Document autoversioning
** Forgot Password
** Wildcard membership
** Infinispan full integration
** Navigation API
** Register Software
** Restricted Page Editor
** Responsive Web Layout
** Share documents in Content Explorer
** Tomcat clustering
** Social REST API
** Java 8 compatibility
* eXo Add-ons
** eXo Site Templates add-on
** eXo Tasks add-on
* Upgrade
** Upgrade Groovy from 1.7.11 to 1.8.9
** Upgrade Juzu from 1.0.0 to 1.1.0
** Upgrade Infinispan from 5.1.8 to 5.2.9
** Upgrade Lucene from 3.5.0 to 3.6.2
** Upgrade Apache Tika from 1.1 to 1.5,
** Upgrade Apache POI from 3.8 to 3.10.1
* Bug fixes

= II. STARTUP INSTRUCTIONS =

The file README.txt contains information on how to start the product.

= III. UPGRADE NOTES =

The upgrade procedure is only guaranteed and tested to be transparent from the previous maintenance version (x.y.z from x.y.z-1). So, we recommend to apply upgrade procedures for all versions between your current and the target one.
However, if you still insist on skipping versions, we strongly advise to read all upgrade notes of the versions you are skipping to see if your project is impacted by any previous upgrade procedure.

== Upgrading from the previous Platform version ==

* Prepare bundle:
** If eXo Platform is connected to a populated organizational data source, Organization Integration Service must be activated so that the data are synchronized. Please refer to chapter 7 "LDAP Integration" in Administrator Guide for the detail.
** Go to $PLATFORM-${org.exoplatform.platform.version}-TOMCAT_HOME/gatein/conf/ folder (Tomcat bundle) or $PLATFORM-${org.exoplatform.platform.version}-JBOSS_HOME/standalone/configuration/gatein/ folder (Jboss bundle).
** Rename upgrade—sample.properties to upgrade.properties
* Start server. The upgrade will be run automatically.
* Stop server.
* Remove/Rename the file upgrade.properties
* Restart the server. You're ready.

== Upgrading from Platform 5.0.2 to ${org.exoplatform.platform.version} ==
=== Description of the plugins used in this upgrade ===

No Upgrade plugin

== Upgrading from Platform 5.0.1 to 5.0.2 ==
=== Description of the plugins used in this upgrade ===

No Upgrade plugin

== Upgrading from Platform 5.0.0 to 5.0.1 ==
=== Description of the plugins used in this upgrade ===

No Upgrade plugin

== Upgrading from Platform 4.4.4 to 5.0.0 ==

=== Major Components Upgrades ===

* Tomcat 8.5
* JBoss EAP 7.0
* Elasticsearch 5.6
* Shindig 2.5
* Infinispan 8.2
* Upgrade to Groovy 2.4.12
* Upgrade to JQuery 3.2.1
* Upgrade to CKEditor to 4.7.2

=== Description of the plugins used in this upgrade ===

commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

#PLF-7186 Search Indexing Management page does not appear after PLF upgrade
commons.upgrade.Upgrade-PortalData.enable=true

# PLF-7253 Improve performances for the load space members.
commons.upgrade.SpaceMemberAnyMembershipUpgradePlugin.enable=true

#PLF-7169 : Upgrade from ISPN 5 to ISPN 8
org.exoplatform.jcr.locks.force.remove=true

=== Data migration ===

The following data migration are performed on the first startup of PLF ${org.exoplatform.platform.version}:
* Settings and Notifications data are moved from JCR to JPA
* Files are indexed in Elasticsearch instead of in the JCR
* All space members are moved to JPA
* Elasticsearch indexes are reindexed

We recommend to check that your database's statistics are up to date before starting the migration:
* MySQL: https://dev.mysql.com/doc/refman/5.7/en/analyze-table.html
* PostgreSQL: https://www.postgresql.org/docs/9.6/static/sql-vacuum.html
* Oracle: https://docs.oracle.com/database/121/SQLRF/statements_4005.htm#SQLRF01105
* SQL Server: https://docs.microsoft.com/en-us/sql/relational-databases/statistics/update-statistics

== Upgrading from Platform 4.4.3 to 4.4.4 ==
=== Description of the plugins used in this upgrade ===

No Upgrade plugin

== Upgrading from Platform 4.4.2 to 4.4.3 ==
=== Description of the plugins used in this upgrade ===

# ECMS-7624 Can't download file with name that contains +
commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

=== Search ===

*  JCR workspaces must be reindexed in order to apply the fix PLF-7276

== Upgrading from Platform 4.4.1 to 4.4.2 ==
=== Description of the plugins used in this upgrade ===

# PLF-7088 Problem while naming contents using apostrophes
commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

== Upgrading from Platform 4.4.0 to 4.4.1 ==

=== Description of the plugins used in this upgrade ===

# PLF-7186 Search Indexing Management page does not appear after PLF upgrade
commons.upgrade.Upgrade-PortalData.enable=true

# ECMS-7595: Cannot download a document : the Download button is not visible
commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

=== Search ===

* JCR data must be reindexed in order to apply the fix PLF-6326 for existing contents.
* Elasticsearch spaces index must be recreated in order to apply SOC-5549

=== Troubleshooting ===

In a cluster environment, database locks issues can happen when starting the nodes the first time after the upgrade.
The best solution to fix this is to start and stop completely one of the nodes to do the upgrade, then start the cluster.

== Upgrading from Platform 4.3.1 to ${org.exoplatform.platform.version} ==

=== Description of the plugins used in this upgrade ===

#PLF-6737: No signature of method: static org.exoplatform.services.deployment.Utils.sanitize() when using the Announcement template
commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

In addition, upgrade scripts are automatically run at startup in this version to migrate wiki and social data from JCR to JPA.
Wiki data migration is done synchronously, meaning that the eXo Platform instance will be available only once the data migration is done.
Social data migration is done asynchronously, meaning that the data migration will run after the eXo Platform start.

=== Architecture changes ===

Since the version 4.4.0, eXo Platform requires Elasticsearch.
eXo Platform is shipped with an embedded version of Elasticsearch which automatically starts when eXo Platform starts.
This embedded Elasticsearch instance is recommended for development and test but not for production.
For production it is recommended to run a standalone Elasticsearch cluster (please refer to Elasticsearch official documentation for more details).
In order to use a standalone Elasticsearch cluster, the following properties must be defined in exo.properties:
* exo.es.embedded.enabled=false - Disable the default Embedded Elasticsearch
* exo.es.index.server.url=<indexing_URL> - URL of the node used for indexing
* exo.es.search.server.url=<searching_URL> - URL of the node used for searching

For advanced configuration and more details please refer to the eXo Platform documentation.

=== Unified search ===

*  Data must be reindexed in order to apply the fix INTEG-458 for existing contents.

== Upgrading from Platform 4.3.0 to 4.3.1 ==

=== Description of the plugins used in this upgrade ===

* The number in parentheses indicates the version for this upgrade.

#ECMS-7412: Make preview limits configurable
commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

== Upgrading from Platform 4.2.1 to 4.3.0 ==

* Prepare bundle:
** If eXo Platform is connected to a populated organizational data source, Organization Integration Service must be activated so that the data are synchronized. Please refer to chapter 7 "LDAP Integration" in Administrator Guide for the detail.
** Go to $PLATFORM-${org.exoplatform.platform.version}-TOMCAT_HOME/gatein/conf/ folder (Tomcat bundle) or $PLATFORM-${org.exoplatform.platform.version}-JBOSS_HOME/standalone/configuration/gatein/ folder (Jboss bundle).
** Rename upgrade-4.2.1-to-4.3.0—sample.properties to upgrade.properties
* Start server. The upgrade will be run automatically.
* Stop server.
* Remove/Rename the file upgrade.properties
* Restart the server. You're ready.

=== Description of the plugins used in this upgrade ===

* The number in parentheses indicates the version for this upgrade.

#ECMS-6493: Share in Content Explorer
commons.upgrade.UserViewUpgradePlugin.enable=true

#ECMS-6971: Link Path in browser is incorrect and title of files in result is encoded
commons.upgrade.WCMTemplateUpgradePlugin.enable=true

#PLF-6478: Preview image on activity stream not fully responsive
commons.upgrade.NodeTypeTemplateUpgradePlugin.enable=true

#SOC-4109 Disable User(4.3-RC1)
commons.upgrade.ModelOverriderUpdaterPlugin.enable=true

#PLF-6263: Handle single quote in gadget's labels
commons.upgrade.Upgrade-Gadgets.enable=true

#FORUM-791 | Disable Users (4.3-RC1)
commons.upgrade.ForumServiceUpdaterPlugin.enable=true

#EXOGTN-2137 PLF migration plugin for Disabled User feature in GateIn 3.7
commons.upgrade.DisableUserUpgradePlugin.enable=true
commons.upgrade.DisableUserUpgradePlugin.numberOfThreads=20
commons.upgrade.DisableUserUpgradePlugin.batchSize=100

=== Disable-user feature ===

- Notice that you need to upgrade user database only if you use disable-user feature with PicketlinkIDM organization service implementation, for other implementation such as: jdbc implementation, you don't need to active the upgrade plugin for upgrading user data.
- If you don't want the “disable-user” feature (so you don't need to upgrade your user database when using PicketlinkIDM), you can add this to exo.properties configuration file
exo.disable.user.activated=false. The feature will be hidden from PLF, and the disable-user upgrade plugin is also ignored

== IV. KNOWN ISSUES ==

* ECMS-6818: Remote edit does not work on Chrome 42
* EXOGTN-1963: SPNEGO doesn't work when using Firefox client on the same Window 8 with PLF 4.2
