JBoss.orgCommunity Documentation

Optional plugins

Portal navigation

WCM contents



<component-plugin>
    <name>Upgrade-WCM-Contents</name>
    <set-method>addUpgradePlugin</set-method>
    <type>org.exoplatform.platform.upgrade.plugins.UpgradeContentPlugin</type>
    <description>WCM Contents Upgrade Plugin</description>
    <init-params>
        <value-param>
            <name>product.group.id</name>
            <description>The groupId of the product</description>
            <value>org.exoplatform.platform</value>
        </value-param>
        <value-param>
            <name>plugin.execution.order</name>
            <description>The plugin execution order</description>
            <value>4</value>
        </value-param>
        <values-param>
            <name>webapps-mames</name>
            <description>webapps to upgrade</description>
            <value>acme-intranet</value>
            <value>acme-intranet-portlet</value>
            <value>acme-website</value>
            <value>acme-websiteResources</value>
            <value>authoring-apps</value>
            <value>calendar</value>
            <value>chat</value>
            <value>chatbar</value>
            <value>cometd</value>
            <value>commons-extension</value>
            <value>CommonsResources</value>
            <value>contact</value>
            <value>content</value>
            <value>crash</value>
            <value>cs-extension</value>
            <value>csResources</value>
            <value>dashboard</value>
            <value>default-website</value>
            <value>ecm-wcm-core</value>
            <value>ecm-wcm-extension</value>
            <value>ecmadmin</value>
            <value>ecmbrowsecontent</value>
            <value>ecmexplorer</value>
            <value>ecmworkflow-extension</value>
            <value>exo-gadget-resources</value>
            <value>exoadmin</value>
            <value>eXoDMSGadgets</value>
            <value>eXoDMSResources</value>
            <value>eXoGadgets</value>
            <value>eXoGadgetServer</value>
            <value>eXoPlatformResources</value>
            <value>eXoResources</value>
            <value>eXoStaticResources</value>
            <value>eXoWCMResources</value>
            <value>eXoWorkflowResources</value>
            <value>faq</value>
            <value>fck</value>
            <value>formgenerator</value>
            <value>forum</value>
            <value>gadget-pack</value>
            <value>IDE</value>
            <value>intranet-gadget</value>
            <value>ks-extension</value>
            <value>ksResources</value>
            <value>mail</value>
            <value>newsletter</value>
            <value>platform-extension</value>
            <value>platformNavigation</value>
            <value>poll</value>
            <value>portal</value>
            <value>presentation</value>
            <value>rest</value>
            <value>searches</value>
            <value>seo</value>
            <value>SmartGWT</value>
            <value>social</value>
            <value>social-extension</value>
            <value>social-portlet</value>
            <value>social-resources</value>
            <value>web</value>
            <value>webos-ext</value>
            <value>webosadmin</value>
            <value>webosResources</value>
            <value>wiki</value>
            <value>workflow</value>
        </values-param>
    </init-params>
</component-plugin>

JCR user directory structure

This plugin is built-in in JCR that provides an option for migrating old JCR users directory structure to new JCR users directory structure. This allows you to improve performance when having a lot of users in database.

For example, the table below shows the difference in response time of eXo Platform 3.5 (new user directory structure) against eXo Platform 3.0 (old user directory structure) while performing some actions:

Number of users Type Account & Login Load Intranet Welcome Page Load /portal/rest/jcr/repository/collaboration/Users Load User Private JCR Folder
500 13.61% -20.83% -30.12% 14.29%
1000 8.82% -25.00% -86.06% 8.96%
2000 0.20% -29.63% -93.89% -1.37%
5000 -4.30% -33.93% -95.45% -10.67%

Formula: (Platform 3.5 value - Platform 3.0 value) * 100 / Platform 3.0 value (negative value means better).

It can be seen that with a larger number of users, the new user directory structure performs faster than the old one, especially when accessing the user directory directly.

To enable the migration, set these 2 flags in the $PLF-3.5-TOMCAT_HOME/gatein/conf/configuration.properties file (or $PLF-3.5-JBOSS_HOME/server/default/conf/gatein/configuration.properties) as below:

use-old-user-distribution=false
run-jcr-user-directories-migrate=true

JCR user directory structure migration will take much time, so you need to increase the JCR session time-out. Measure the amount of data in your current eXo Platform 3.0 and use a right session time-out. For example, if there are 1000 users in current eXo Platform 3.0, you should set configuration in the $PLF-3.5-TOMCAT_HOME/gatein/conf/configuration.properties (or $PLF-3.5-JBOSS_HOME/server/default/conf/gatein/configuration.properties) file as below:

gatein.jcr.transaction.timeout=10000

The time you need to migrate the JCR user directories structure depends on the amount of eXo Platform user data and your system speed. This migration also consumes memory, so you need to make sure to have enough resource on your server and configure enough memory to update the Xmx Java option (in the $PLF3.5-TOMCAT_HOME/bin/setenv.sh or $PLF-3.5-JBOSS_HOME/bin/run.conf file) before running. For example, you can use 6 Gigabyte RAM to migrate 5000 users.