The NewsletterInitializationService component is used to initiate some data for the newsletter portlet. The configuration of this component is found in packaging/ecmdemo/webapp/src/main/webapp/WEB-INF/conf/sample-portal/wcm/newsletter-configuration.xml.



<component>
  <type>org.exoplatform.services.wcm.newsletter.NewsletterInitializationService</type>
  <init-params>
    <values-param>
      <name>portalNames</name>
      <value>classic</value>
      <value>acme</value>
    </values-param>
    <values-param>
      <name>administrators</name>
      <value>root</value>
      <value>john</value>
    </values-param>
    <object-param>
      <name>marketing</name>
      <description>marketing</description>
      <object type="org.exoplatform.services.wcm.newsletter.NewsletterCategoryConfig">
        <field name="name">
          <string>marketing</string>
        </field>
        <field name="title">
          <string>Marketing</string>
        </field>
        <field name="description">
          <string>You want to know where we are, where we go ?</string>
        </field>
        <field name="moderator">
          <string>*:/platform/web-contributors</string>
        </field>
      </object>
    </object-param>
    <object-param>
      <name>general</name>
      <description>general</description>
      <object type="org.exoplatform.services.wcm.newsletter.NewsletterCategoryConfig">
        <field name="name">
          <string>general</string>
        </field>
        <field name="title">
          <string>General</string>
        </field>
        <field name="description">
          <string>General information about us</string>
        </field>
        <field name="moderator">
          <string>*:/platform/web-contributors</string>
        </field>
      </object>
    </object-param>
    <object-param>
      <name>subscription2</name>
      <description>subscription2</description>
      <object type="org.exoplatform.services.wcm.newsletter.NewsletterSubscriptionConfig">
        <field name="name">
          <string>results</string>
        </field>
        <field name="title">
          <string>Results</string>
        </field>
        <field name="description">
          <string>Monthly newsletter about our results and forecasts</string>
        </field>
        <field name="categoryName">
          <string>general</string>
        </field>
        <field name="redactor">
          <string>*:/platform/web-contributors</string>
        </field>
      </object>
    </object-param>
    <object-param>
      <name>subscription1</name>
      <description>subscription1</description>
      <object type="org.exoplatform.services.wcm.newsletter.NewsletterSubscriptionConfig">
        <field name="name">
          <string>checklist</string>
        </field>
        <field name="title">
          <string>Check-List</string>
        </field>
        <field name="description">
          <string>Weekly newsletter with general topics</string>
        </field>
        <field name="categoryName">
          <string>general</string>
        </field>
        <field name="redactor">
          <string>*:/platform/web-contributors</string>
        </field>
      </object>
    </object-param>
    <object-param>
      <name>subscription3</name>
      <description>subscription3</description>
      <object type="org.exoplatform.services.wcm.newsletter.NewsletterSubscriptionConfig">
        <field name="name">
          <string>market</string>
        </field>
        <field name="title">
          <string>The market</string>
        </field>
        <field name="description">
          <string>What's on the market today ?</string>
        </field>
        <field name="categoryName">
          <string>marketing</string>
        </field>
        <field name="redactor">
          <string>*:/platform/web-contributors</string>
        </field>
      </object>
    </object-param>
    <object-param>
      <name>user1@gmail.com</name>
      <description>user1@gmail.com</description>
      <object type="org.exoplatform.services.wcm.newsletter.config.NewsletterUserConfig">
        <field name="mail">
          <string>user1@gmail.com</string>
        </field>
      </object>
    </object-param>
    <object-param>
      <name>user2@gmail.com</name>
      <description>user2@gmail.com</description>
      <object type="org.exoplatform.services.wcm.newsletter.config.NewsletterUserConfig">
        <field name="mail">
          <string>user2@gmail.com</string>
        </field>
      </object>
    </object-param>
  </init-params>
</component>

Details:

Value-param Possible value Default value Description
portalNames stringclassic, acmeThe portal names.
administrators stringrootThe administrator who manages the newsletter portlet.
name string The name of categories or subscriptions.
title string The title of categories or subscriptions.
moderator string*:/platform/web-contributorsThe users or groups that can moderate the newsletter portlet.
categoryName stringgeneral, marketingThu categories name.
redactor string*:/platform/web-contributorsThe users or groups that are newsletter redactor.
mail string The email that user uses to subscribe.

The SEOService component is used to help users manage SEO data of a page or a content, so their websites can achieve higher rankings on search engines. The configuration of this component is found in /packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/wcm-extension/wcm/seo-configuration.xml.



<component>
  <key>org.exoplatform.services.seo.SEOService</key>
  <type>org.exoplatform.services.seo.impl.SEOServiceImpl</type>
  <init-params>
    <object-param>
      <name>seo.config</name>
      <object type="org.exoplatform.services.seo.SEOConfig">
        <field name="robotsindex">
          <collection type="java.util.ArrayList">
            <value><string>INDEX</string></value>
            <value><string>NOINDEX</string></value>
          </collection>
        </field>
        <field name="robotsfollow">
          <collection type="java.util.ArrayList">
            <value><string>FOLLOW</string></value>
            <value><string>NOFOLLOW</string></value>
          </collection>
        </field>
        <field name="frequency">
          <collection type="java.util.ArrayList">
            <value><string>Always</string></value>
            <value><string>Hourly</string></value>
            <value><string>Daily</string></value>
            <value><string>Weekly</string></value>
            <value><string>Monthly</string></value>
            <value><string>Yearly</string></value>
            <value><string>Never</string></value>
          </collection>
        </field>
      </object>
    </object-param>
  </init-params>
</component>

Details:

Object type: org.exoplatform.services.seo.SEOConfig

Field name Type Default value Description
robotsindex string

INDEX

NOINDEX

Allow search engines to index a particular page or not.
robotsfollow string

FOLLOW

NOFOLLOW

Allow search engines to follow links from a particular page to find other pages or not.
frequency string

Always

Hourly

Daily

Weekly

Monthly

Yearly

Never

Define how often a particular page is updated.

The TaxonomyService component is used to sort documents to ease searches when browsing documents online. It provides a multi-dimensional set of paths to find a document. In many cases, you can get your content by using different category paths. Therefore, after creating a document somewhere in the repository, it is possible to categorize it by adding several taxonomy references. By browsing the taxonomy tree, it will be possible to find the referencing article and display them as if they were children of the taxonomy nodes. Taxonomies are stored in the JCR itself and the JCR Reference functionality is used to provide that advanced WCM feature. The tree of taxonomies can be managed simply, such as copying/cutting/pasting nodes, or adding and removing taxonomies from the tree. Once a taxonomy has been added, any user who has access to the "Manage Categories" icon from his/her view can then browse the taxonomy tree and refer one of its nodes to the created documents.



<component>
  <key>org.exoplatform.services.cms.taxonomy.TaxonomyService</key>
  <type>org.exoplatform.services.cms.taxonomy.impl.TaxonomyServiceImpl</type>
  <init-params>
    <object-param>
      <name>defaultPermission.configuration</name>
      <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission">
        <field name="permissions">
          <collection type="java.util.ArrayList">
            <value>
              <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission$Permission">
                <field name="identity"><string>*:/platform/administrators</string></field>
                <field name="read"><string>true</string></field>
                <field name="addNode"><string>true</string></field>
                <field name="setProperty"><string>true</string></field>
                <field name="remove"><string>true</string></field>
              </object>
            </value>
            <value>
              <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission$Permission">
                <field name="identity"><string>*:/platform/users</string></field>
                <field name="read"><string>true</string></field>
                <field name="addNode"><string>true</string></field>
                <field name="setProperty"><string>true</string></field>
                <field name="remove"><string>false</string></field>
              </object>
            </value>
          </collection>
        </field>
      </object>
    </object-param>
  </init-params>
</component>

Details:

Object type: org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission

Field name Collection type Description
permissions java.util.ArrayList<TaxonomyTreeDefaultUserPermission$Permission> The list of the default user permissions to access the taxonomy tree.

Object type: org.exoplatform.services.cms.taxonomy.impl.TaxonomyTreeDefaultUserPermission$Permission

Field name Type Default value Description
identity String *:/platform/administrators The name of user or group.
read Boolean true The permission to read the taxonomy tree.
addNode Boolean true The permission to add a node to the taxonomy tree.
setProperty Boolean true The permission to set properties for a node in the taxonomy tree.
remove Boolean true The permission to remove a node from the taxonomy tree.

The ThumbnailService component is used to resize all the images into different sizes. Besides the default sizes, it also allows users to customize the images into the desired sizes. The configuration of this component is found in /core/core-configuration/src/main/webapp/WEB-INF/conf/wcm-core/core-services-configuration.xml.

Details:

Value-param Possible value Default value Description
smallSize 32x3232x32 The small thumbnail size.
mediumSiz 64x6464x64The medium thumbnail size.
largeSize 300x300300x300The large thumbnail size.
enable booleanfalseSpecify if the thumbnail is displayed or not.
mimetypes images formatsimage/jpeg;image/png;image/gif;image/bmpThe image formats are supported.

The WatchDocumentService component allows users to watch/unwatch a document. If they are watching the document, they will receive a notification mail when there are any changes on the document. The configuration of this component is found in /core/core-configuration/src/main/webapp/WEB-INF/conf/wcm-core/core-services-configuration.xml.

Details:

Object type: org.exoplatform.services.cms.watch.impl.MessageConfig

Field name Type Default value Description
sender stringsupport@exoplatform.comThe sender who sends the notification mail.
subject stringYour watching document is changed.The subject of the notification mail.
content stringThe document that you are watching is changed. Please go to ecm to see this change.The content of the notification mail.

Object type: org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig

Name Type Default Value Description
lifecycles array list java.util.ArrayList The list of lifecycles.

Object type: org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$Lifecycle

Name Type Default Value Description
name String N/A The name of the lifecycle.
publicationPlugin string Authoring publication The publication plugin name.
states array list java.util.ArrayList The list of the publication states.

Object type: org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$State

Name Type Default Value Description
state string N/A The publication states: draft, pending, staged, approved or published.
membership string N/A The user or group.

Object type: org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig

Name Type Default Value Description
contexts array list java.util.ArrayList The list of contexts.

Object type: org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig$Context

Name Type Default Value Description
name string contextdefault The context name.
priority string 200 The context priority. The higher number indicates the higher priority. Because a site may have several lifecycles so the lifecycle with higher priority will be executed.
lifecycle string lifecycle1 The name of lifecycle.


<external-component-plugins>
  <target-component>org.exoplatform.services.wcm.extensions.publication.PublicationManager</target-component>
  <component-plugin>
    <name>AddLifecycle</name>
    <set-method>addLifecycle</set-method>
    <type>org.exoplatform.services.wcm.extensions.publication.lifecycle.StatesLifecyclePlugin</type>
    <description>Configures</description>
    <priority>1</priority>
    <init-params>
      <object-param>
        <name>lifecycles</name>
        <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig">
          <field name="lifecycles">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$Lifecycle">
                  <field name="name">
                    <string>lifecycle1</string>
                  </field>
                  <field name="publicationPlugin">
                    <string>Authoring publication</string>
                  </field>
                  <field name="states">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$State">
                          <field name="state">
                            <string>draft</string>
                          </field>
                          <field name="membership">
                            <string>author:/platform/web-contributors</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$State">
                          <field name="state">
                            <string>pending</string>
                          </field>
                          <field name="membership">
                            <string>author:/platform/web-contributors</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$State">
                          <field name="state">
                            <string>approved</string>
                          </field>
                          <field name="membership">
                            <string>manager:/platform/web-contributors</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$State">
                          <field name="state">
                            <string>staged</string>
                          </field>
                          <field name="membership">
                            <string>publisher:/platform/web-contributors</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig$State">
                          <field name="state">
                            <string>published</string>
                          </field>
                          <field name="membership">
                            <string>publisher:/platform/web-contributors</string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                </object>
              </value>

            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
  <component-plugin>
    <name>AddContext</name>
    <set-method>addContext</set-method>
    <type>org.exoplatform.services.wcm.extensions.publication.context.ContextPlugin</type>
    <init-params>
      <object-param>
        <name>contexts</name>
        <object type="org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig">
          <field name="contexts">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig$Context">
                  <field name="name">
                    <string>contextdefault</string>
                  </field>
                  <field name="priority">
                    <string>200</string>
                  </field>
                  <field name="lifecycle">
                    <string>lifecycle1</string>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

In which:

This is the configuration for the location of templates to inject in JCR.



<external-component-plugins>
  <target-component>org.exoplatform.services.cms.templates.TemplateService</target-component>
  <component-plugin>
    <name>FilterContentTypeForWCMSpecificFolder</name>
    <set-method>addContentTypeFilterPlugin</set-method>
    <type>org.exoplatform.services.cms.templates.ContentTypeFilterPlugin</type>
    <description>this plugin is used to filter wcm nodetype</description>
    <init-params>
      <object-param>
        <name>cssFolderFilter</name>
        <description>only exo:cssFile can be created in exo:cssFolder</description>
        <object type="org.exoplatform.services.cms.templates.ContentTypeFilterPlugin$FolderFilterConfig">
          <field name="folderType">
            <string>exo:cssFolder</string>
          </field>
          <field name="contentTypes">
            <collection type="java.util.ArrayList">
              <value>
                <string>exo:cssFile</string>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>jsFolderFolderFilter</name>
        <description>only exo:cssFile can be created in exo:cssFolder</description>
        <object type="org.exoplatform.services.cms.templates.ContentTypeFilterPlugin$FolderFilterConfig">
          <field name="folderType">
            <string>exo:jsFolder</string>
          </field>
          <field name="contentTypes">
            <collection type="java.util.ArrayList">
              <value>
                <string>exo:jsFile</string>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

In which:

Object type: org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig

Name Type Default Value Description
name string context2The name of the context.
priority string 100 The context priority, the higher number indicates higher priority. Because a site may have several lifecycles, the lifecycle with higher priority will be excuted priorly.
lifecycle string lifecycle2 The name of the lifecycle.
site string acme The site that will apply the context configuration.


<external-component-plugins>
  <target-component>org.exoplatform.services.wcm.extensions.publication.PublicationManager</target-component>
  <component-plugin>
    <name>AddContext</name>
    <set-method>addContext</set-method>
    <type>org.exoplatform.services.wcm.extensions.publication.context.ContextPlugin</type>
    <init-params>
      <object-param>
        <name>contexts</name>
        <object type="org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig">
          <field name="contexts">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig$Context">
                  <field name="name">
                    <string>context2</string>
                  </field>
                  <field name="priority">
                    <string>100</string>
                  </field>
                  <field name="lifecycle">
                    <string>lifecycle2</string>
                  </field>
                  <field name="site">
                    <string>acme</string>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

In which:

This is an abstract class and the parent of CreateTaxonomyPlugin . You can create a link from this plugin to its children.

ExcludeMimeTypes is used in the SiteSearchService component to filter the search results before these results are presented on the search page.

The plugin has the following parameter:

Properties-Param Description
search.exclude.datatypeExclude some data types when doing search.

The search.exclude.datatype property includes two attributes:

Attributes Values Description
name mimetypesName of the property param.
value text/css,text/javascript,application/x-javascript,text/ecmascript List mimetypes which will be excluded from the search results.

See the following sample configuration:


<component-plugins>
  <component-plugin>
    <name>ExcludeMimeTypes</name>
    <set-method>addExcludeIncludeDataTypePlugin</set-method>
    <type>org.exoplatform.services.wcm.search.ExcludeIncludeDataTypePlugin</type>
    <init-params>
      <properties-param>
        <name>search.exclude.datatypes</name>
        <description>exclude some data type when search</description>
        <property name="mimetypes" value="text/css,text/javascript,application/x-javascript,text/ecmascript"/>
      </properties-param>
    </init-params>
  </component-plugin>
</component-plugins>

In which:

Set-method: addExcludeIncludeDataTypePlugin

Type: org.exoplatform.services.wcm.search.ExcludeIncludeDataTypePlugin

Object type: org.exoplatform.services.wcm.friendly.impl.FriendlyConfig

Name Type Default Value Description
friendlyUrl string documents The object that will be applied the friendly URL.
unfriendlyUrl string /public/acme/detail?content-id=/repository/collaboration The path to the location that will be applied the friendly URL.


<external-component-plugins>
  <target-component>org.exoplatform.services.wcm.friendly.FriendlyService</target-component>
  <component-plugin>
    <name>FriendlyService.addConfiguration</name>
    <set-method>addConfiguration</set-method>
    <type>org.exoplatform.services.wcm.friendly.impl.FriendlyPlugin</type>
    <description>Configures</description>
    <priority>100</priority>
    <init-params>
      <value-param>
        <name>enabled</name>
        <value>true</value>
      </value-param>
      <object-param>
        <name>friendlies.configuration</name>
        <object type="org.exoplatform.services.wcm.friendly.impl.FriendlyConfig">
          <field name="friendlies">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.wcm.friendly.impl.FriendlyConfig$Friendly">
                  <field name="friendlyUri"><string>documents</string></field>
                  <field name="unfriendlyUri"><string>/public/acme/detail?content-id=/repository/collaboration</string></field>
                </object>
              </value>
              <value>
                <object type="org.exoplatform.services.wcm.friendly.impl.FriendlyConfig$Friendly">
                  <field name="friendlyUri"><string>files</string></field>
                  <field name="unfriendlyUri"><string>/rest-ecmdemo/jcr/repository/collaboration</string></field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

In which:

This plugin will configure the file types of the thumbnail images.

Object type: org.exoplatform.services.cms.thumbnail.impl.ThumbnailType

Name Type Default Value Description
mimeTypes Array list java.util.ArrayList List of thumbnail image types


<external-component-plugins>
  <target-component>org.exoplatform.services.cms.thumbnail.ThumbnailService</target-component>
  <component-plugin>
    <name>ImageThumbnailPlugin</name>
    <set-method>addPlugin</set-method>
    <type>org.exoplatform.services.cms.thumbnail.impl.ImageThumbnailPlugin</type>
    <init-params>
      <object-param>
        <name>thumbnailType</name>
        <description>Thumbnail types</description>
        <object type="org.exoplatform.services.cms.thumbnail.impl.ThumbnailType">
          <field name="mimeTypes">
            <collection type="java.util.ArrayList">
              <value>
                <string>image/jpeg</string>
              </value>
              <value>
                <string>image/png</string>
              </value>
              <value>
                <string>image/gif</string>
              </value>
              <value>
                <string>image/bmp</string>
              </value>
              <value>
                <string>image/tiff</string>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

Details:

As a portal is created, this plugin will deploy initial web-contents as the site artifact into the Site Artifact folder of that portal.

Object type: org.exoplatform.services.deployment.DeploymentDescriptor$Target

Name Type Default Value Description
workspace string collaboration The workspace into which the initial web contents will be deployed into.
nodePath string /sites content/live//web contents/site artifacts The target node where the initial web-contents will be deployed into.
sourcePath string war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Logo.xml The path to the source that this plugin will get data.


<external-component-plugins>
  <target-component>org.exoplatform.services.wcm.portal.artifacts.CreatePortalArtifactsService</target-component>
  <component-plugin>
    <name>Initial webcontent artifact for each site</name>
    <set-method>addPlugin</set-method>
    <type>org.exoplatform.services.wcm.webcontent.InitialWebContentPlugin</type>
    <description>This plugin deploy some initial webcontent as site artifact to site artifact folder of portal when a portal is
      created</description>
    <init-params>
      <object-param>
        <name>Portal logo data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Logo.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal signin data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Signin.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal searchbox data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Searchbox.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal navigation data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Navigation.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal footer data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Footer.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal introduce data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Introduce.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal stylesheet data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/css</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/StylesheetGreen.xml</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Portal images data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/{portalName}/medias/images</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme-templates/Images.xml</string>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

In which:

Object type: org.exoplatform.services.deployment.plugins.LinkDeploymentDescriptor

Name Type Default Value Description
sourcePath string repository:collaboration:/sites content/live/acme/web contents/News/News1 The path to the source where this plugin will get data.
targetPath string repository:collaboration:/sites content/live/acme/categories/acme The path to the target where this plugin will deploy.


<external-component-plugins>
  <target-component>org.exoplatform.services.deployment.WCMContentInitializerService</target-component>
  <component-plugin>
    <name>Content Initializer Service</name>
    <set-method>addPlugin</set-method>
    <type>org.exoplatform.services.deployment.plugins.LinkDeploymentPlugin</type>
    <description>Link Deployment Plugin</description>
    <init-params>
      <object-param>
        <name>link01</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.plugins.LinkDeploymentDescriptor">
          <field name="sourcePath">
            <string>repository:collaboration:/sites content/live/acme/web contents/News/News1</string>
          </field>
          <field name="targetPath">
            <string>repository:collaboration:/sites content/live/acme/categories/acme</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>link02</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.plugins.LinkDeploymentDescriptor">
          <field name="sourcePath">
            <string>repository:collaboration:/sites content/live/acme/web contents/News/News2</string>
          </field>
          <field name="targetPath">
            <string>repository:collaboration:/sites content/live/acme/categories/acme</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>link03</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.plugins.LinkDeploymentDescriptor">
          <field name="sourcePath">
            <string>repository:collaboration:/sites content/live/acme/web contents/News/News3</string>
          </field>
          <field name="targetPath">
            <string>repository:collaboration:/sites content/live/acme/categories/acme</string>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

Details:

Object type org.exoplatform.services.cms.lock.impl.LockGroupsOrUsersConfig

Name Type Default Value Description
settingLockList array list java.util.ArrayList The list of the groups or user to be locked.

A drive can be considered as a shortcut in the content repository, a quick access to some places for users. You can restrict the visibility of this drive to a group/user and apply a specific view depending on the content you have in this area.

A drive is the combination of:

Object type: org.exoplatform.services.cms.drives.DriveData

Field name Type Description
name String The name of drive which must be unique.
repository String Content Repository where to find the root path.
workspace String Workspace in the Content Repository.
homePath String Root path in the Content Repository. userId can be used to use the userId at runtime in the path.
permissions String Visibility of the drive based on eXo rights. For example: *:/platform/users
icon String Url to the icon.
views String The list of views you want to use, separated by commas. For example: simple-view,admin-view
viewPreferences Boolean The User Preference icon will be visible if true.
viewNonDocument Boolean Non-document types will be visible in the user view if true.
viewSideBar Boolean Show/Hide the left bar (with navigation and filters).
showHiddenNode Boolean Hidden nodes will be visible if true.
allowCreateFolders Boolean List of node types that you can create as folders. For example: nt:folder,nt:unstructured.
allowNodeTypesOnTree String Allow you to filter node types in the navigation tree. For example, the default value is "*" to show all content types.

The following structure is used for drives configuration.

The file that contains the structure above will be configured in the configuration.xml file as the following:



<external-component-plugins>
  <target-component>org.exoplatform.services.cms.drives.ManageDriveService</target-component>
  <component-plugin>
    <name>manage.drive.plugin</name>
    <set-method>setManageDrivePlugin</set-method>
    <type>org.exoplatform.services.cms.drives.impl.ManageDrivePlugin</type>
    <description>Nothing</description>
    <init-params>
      <object-param>
        <name>Managed Sites</name>
        <description>Managed Sites</description>
        <object type="org.exoplatform.services.cms.drives.DriveData">
          <field name="name">
            <string>Managed Sites</string>
          </field>
          <field name="repository">
            <string>repository</string>
          </field>
          <field name="workspace">
            <string>collaboration</string>
          </field>
          <field name="permissions">
            <string>*:/platform/administrators</string>
          </field>
          <field name="homePath">
            <string>/sites content/live</string>
          </field>
          <field name="icon">
            <string/>
          </field>
          <field name="views">
            <string>wcm-view</string>
          </field>
          <field name="viewPreferences">
            <boolean>false</boolean>
          </field>
          <field name="viewNonDocument">
            <boolean>true</boolean>
          </field>
          <field name="viewSideBar">
            <boolean>true</boolean>
          </field>
          <field name="showHiddenNode">
            <boolean>false</boolean>
          </field>
          <field name="allowCreateFolders">
            <string>nt:folder,nt:unstructured</string>
          </field>
          <field name="allowNodeTypesOnTree">
            <string>*</string>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>Public</name>
        <description>Public drive</description>
        <object type="org.exoplatform.services.cms.drives.DriveData">
          <field name="name">
            <string>Public</string>
          </field>
          <field name="repository">
            <string>repository</string>
          </field>
          <field name="workspace">
            <string>collaboration</string>
          </field>
          <field name="permissions">
            <string>*:/platform/users</string>
          </field>
          <field name="homePath">
            <string>/Users/${userId}/Public</string>
          </field>
          <field name="icon">
            <string/>
          </field>
          <field name="views">
            <string>simple-view, admin-view</string>
          </field>
          <field name="viewPreferences">
            <boolean>false</boolean>
          </field>
          <field name="viewNonDocument">
            <boolean>false</boolean>
          </field>
          <field name="viewSideBar">
            <boolean>true</boolean>
          </field>
          <field name="showHiddenNode">
            <boolean>false</boolean>
          </field>
          <field name="allowCreateFolders">
            <string>nt:folder,nt:unstructured</string>
          </field>
          <field name="allowNodeTypesOnTree">
            <string>*</string>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

A view can include many object parameters. Parameters are used to create default views, templates and actions of Manage View service. View enables administrators to customize view classification that can impact on users in exploring workspace. Each object-param has a type that is a class representing all properties of a view.

Object type: org.exoplatform.services.cms.views.ViewConfig

Name Type Default value Description
name String system-view The name of view which must be unique inside WCM.
permissions String *:/platform/administrators Visibility of the view based on eXo rights.
template String /exo:ecm/views/templates/ecm-explorer/SystemView Specify path to the template location.
tabList ArrayList java.util.ArrayList Include a set of view names.

Object type: org.exoplatform.services.cms.views.ViewConfig$Tab

Name Type Default value Description
tabName String Info The name of tab which must be unique.
button String viewNodeType; viewPermissions; viewProperties; showJCRStructure Specify a set of view component names.

Object type: org.exoplatform.services.cms.views.TemplateConfig

Name Type Default value Description
type String ecmExplorerTemplate Specify if a name is truly a class representing all properties of a view.
name String system-view Specify a set of view component names.
warPath String /ecm-explorer/SystemView.gtmpl Specify a template location to view.


<external-component-plugins>
 <target-component>org.exoplatform.services.cms.views.ManageViewService</target-component>
  <component-plugin>
  <name>manage.view.plugin</name>
        <set-method>setManageViewPlugin</set-method>
        <type>org.exoplatform.services.cms.views.impl.ManageViewPlugin</type>
        <description>this plugin manage user view</description>
        <init-params>
            <value-param>
                <name>autoCreateInNewRepository</name>
                <value>true</value>
            </value-param>
            <value-param>
                <name>predefinedViewsLocation</name>
                <value>war:/conf/dms-extension/dms/artifacts</value>
            </value-param>
            <value-param>
                <name>repository</name>
                <value>repository</value>
            </value-param>
        <object-param>
               <name>System-View</name>
               <description>View configuration for System workspace</description>
               <object type="org.exoplatform.services.cms.views.ViewConfig">
                  <field name="name"><string>system-view</string></field>
                  <field name="permissions"><string>*:/platform/administrators</string></field>
                  <field name="template"><string>/exo:ecm/views/templates/ecm-explorer/SystemView</string></field>
                  <field name="tabList">
                             <collection type="java.util.ArrayList">
                                 <value>
                                 <object type="org.exoplatform.services.cms.views.ViewConfig$Tab">
                                    <field name="tabName"><string>Info</string></field>
                                    <field name="buttons">
                                      <string>viewNodeType; viewPermissions; viewProperties; showJCRStructure</string>
                                    </field>
                                 </object>
                                 </value>
                              </collection>
                          </field>
                   </object>
            </object-param>
                <object-param>
                <name>System Template</name>
                <description>Template for display documents in list style</description>
                <object type="org.exoplatform.services.cms.views.TemplateConfig">
                            <field name="type"><string>ecmExplorerTemplate</string></field>
                    <field name="name"><string>SystemView</string></field>
                    <field name="warPath"><string>/ecm-explorer/SystemView.gtmpl</string></field>
                </object>
        </object-param>
       </init-params>
    </component-plugin>
  </external-component-plugins>

This plugin is to set the supported file types of PDF thumbnail. See also ImageThumbnailPlugin .

Object type: org.exoplatform.services.cms.thumbnail.impl.ThumbnailType

Name Type Default Value Description
mimeTypes array list java.util.ArrayList The MIME type of the pdf thumbnail.


<external-component-plugins>
    <target-component>org.exoplatform.services.cms.thumbnail.ThumbnailService</target-component>
      <component-plugin>
        <name>ImageThumbnailPlugin</name>   
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.cms.thumbnail.impl.ImageThumbnailPlugin</type>
        <init-params>
          <object-param>
            <name>thumbnailType</name>
            <description>Thumbnail types</description>
            <object type="org.exoplatform.services.cms.thumbnail.impl.ThumbnailType">
                <field name="mimeTypes">
                    <collection type="java.util.ArrayList">
                        <value><string>image/jpeg</string></value>
                        <value><string>image/png</string></value>
                        <value><string>image/gif</string></value>
                        <value><string>image/bmp</string></value>
                        <value><string>image/tiff</string></value>
                    </collection>
                </field>
            </object>
          </object-param>
        </init-params>
      </component-plugin>
    <component-plugin>
        <name>PDFThumbnailPlugin</name>   
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.cms.thumbnail.impl.PDFThumbnailPlugin</type>
        <init-params>
          <object-param>
            <name>thumbnailType</name>
            <description>Thumbnail types</description>
            <object type="org.exoplatform.services.cms.thumbnail.impl.ThumbnailType">
                <field name="mimeTypes">
                    <collection type="java.util.ArrayList">
                        <value><string>application/pdf</string></value>
                    </collection>
                </field>
            </object>
          </object-param>
        </init-params>
      </component-plugin>
  </external-component-plugins>       

In which:

This plugin is used to import the view templates for Content List Viewer.

Object type: org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig

Name Type Default Value Description
templateName string UIContentListPresentationDefault.gtmpl The name of the GROOVY template.


<external-component-plugins>
    <target-component>org.exoplatform.services.cms.views.ApplicationTemplateManagerService</target-component>
    <component-plugin>
      <name>clv.templates.plugin</name>
      <set-method>addPlugin</set-method>
      <type>org.exoplatform.services.cms.views.PortletTemplatePlugin</type>
      <description>This plugin is used to import views templates for Content List Viewer</description>
      <init-params>
        <value-param>
          <name>portletName</name>
          <value>content-list-viewer</value>
        </value-param>
        <value-param>
          <name>portlet.template.path</name>
          <value>war:/conf/wcm-artifacts/application-templates/content-list-viewer</value>
        </value-param>
        <object-param>
          <name>default.folder.list.viewer</name>
          <description>Default folder list viewer groovy template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>UIContentListPresentationDefault.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>big.folder.list.viewer</name>
          <description>Default folder list viewer groovy template with Big Image</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>UIContentListPresentationBigImage.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>small.folder.list.viewer</name>
          <description>Default folder list viewer groovy template with Small Image</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>UIContentListPresentationSmall.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Two columns CLV template</name>
          <description>Two columns CLV template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>TwoColumnsCLVTemplate.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>One column CLV template</name>
          <description>One column CLV template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>OneColumnCLVTemplate.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Category Tree</name>
          <description>Category Tree</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>CategoryTree.gtmpl</string>
            </field>
            <field name="category">
              <string>navigation</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Category List</name>
          <description>Category List</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>CategoryList.gtmpl</string>
            </field>
            <field name="category">
              <string>navigation</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Tags Cloud</name>
          <description>Tags Cloud</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>TagsCloud.gtmpl</string>
            </field>
            <field name="category">
              <string>navigation</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Documents template</name>
          <description>Documents template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>DocumentsTemplate.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>folder.list.viewer</name>
          <description>Default folder list viewer groovy template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>ContentListViewerDefault.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Big hot news template</name>
          <description>Big hot news template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>BigHotNewsTemplateCLV.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>Events template</name>
          <description>Events template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>EventsTemplateCLV.gtmpl</string>
            </field>
            <field name="category">
              <string>list</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>default.paginator</name>
          <description>Default paginator groovy template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>UIPaginatorDefault.gtmpl</string>
            </field>
            <field name="category">
              <string>paginators</string>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>empty.paginator</name>
          <description>Empty paginator groovy template</description>
          <object type="org.exoplatform.services.cms.views.PortletTemplatePlugin$PortletTemplateConfig">
            <field name="templateName">
              <string>UIPaginatorEmpty.gtmpl</string>
            </field>
            <field name="category">
              <string>paginators</string>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>

In which:

Object type: org.exoplatform.services.workflow.ProcessesConfig

Name Type Default Value Description
processLocation string war:/conf/bp The path to the process.
predefinedProcess hash set java.util.HashSet The list of the processes.

In which:



<external-component-plugins>
   <target-component>org.exoplatform.services.cms.queries.QueryService</target-component>                       
    <component-plugin> 
      <name>query.plugin</name>
      <set-method>setQueryPlugin</set-method>
      <type>org.exoplatform.services.cms.queries.impl.QueryPlugin</type>
      <description>Nothing</description>
      <init-params>
        <value-param>
        <name>autoCreateInNewRepository</name>
        <value>true</value>
       </value-param>           
       <value-param>
        <name>repository</name>
        <value>repository</value>
       </value-param>                                                   
       <object-param>        
         <name>CreatedDocuments</name>
         <description>documents created by the current user</description>
         <object type="org.exoplatform.services.cms.queries.impl.QueryData">              
           <field name="name"><string>Created Documents</string></field>
           <field name="language"><string>xpath</string></field>
           <field name="statement"><string>//*[(@jcr:primaryType = 'exo:article' or @jcr:primaryType = 'nt:file') and @exo:owner='${UserId}$'] order by @exo:dateCreated descending</string></field>
           <field name="permissions">
             <collection type="java.util.ArrayList">
               <value><string>*:/platform/users</string></value>
             </collection>
           </field>
           <field name="cachedResult"><boolean>false</boolean></field>             
         </object>
       </object-param>
       <object-param>        
         <name>CreatedDocumentsDayBefore</name>
         <description>documents created the day before</description>
         <object type="org.exoplatform.services.cms.queries.impl.QueryData">              
           <field name="name"><string>CreatedDocumentDayBefore</string></field>
           <field name="language"><string>xpath</string></field>
           <field name="statement"><string>//element(*,exo:article)[@exo:dateCreated &lt; xs:dateTime('${Date}$')] order by @exo:dateCreated descending</string></field>
           <field name="permissions">
             <collection type="java.util.ArrayList">
               <value><string>*:/platform/users</string></value>
             </collection>
           </field>
           <field name="cachedResult"><boolean>true</boolean></field>             
         </object>
       </object-param>
       <object-param>        
         <name>AllArticles</name>
         <description>All articles</description>
         <object type="org.exoplatform.services.cms.queries.impl.QueryData">              
           <field name="name"><string>All Articles</string></field>
           <field name="language"><string>xpath</string></field>
           <field name="statement"><string>//element(*,exo:article) order by @exo:dateCreated descending</string></field>
           <field name="permissions">
             <collection type="java.util.ArrayList">
               <value><string>*:/platform/users</string></value>
             </collection>
           </field>
           <field name="cachedResult"><boolean>true</boolean></field>             
         </object>
       </object-param>
      </init-params>  
    </component-plugin>         
 </external-component-plugins>
Value param Possible value Default value Description
autoCreateInNewRepository boolean true
repository string repository repository to the target node.
Object param Possible value Default value Description
CreatedDocuments string :/platform/users documents created by the current user.
AllArticles string :/platform/users All articles.
CreatedDocumentsDayBefore string :/platform/users documents created on the day before.

Object type: org.exoplatform.services.cms.impl.ResourceConfig

Name Type Default Value Description  
resources array list java.util.ArrayList The list of resources.
name string - The resource name.


<external-component-plugins>
    <target-component>org.exoplatform.services.cms.scripts.ScriptService</target-component>
        <component-plugin> 
        <name>manage.script.plugin</name>
        <set-method>addScriptPlugin</set-method>
        <type>org.exoplatform.services.cms.scripts.impl.ScriptPlugin</type>
        <description>Nothing</description>
            <init-params>               
            <value-param>
                <name>autoCreateInNewRepository</name>
                <value>true</value>
            </value-param>          
            <value-param>
                <name>repository</name>
                <value>repository</value>
            </value-param>
            <value-param>
                <name>predefinedScriptsLocation</name>
                <value>war:/conf/dms-extension/dms/artifacts</value>
            </value-param>          
              <object-param>
                <name>predefined.scripts</name>
                <description>description</description>
                <object type="org.exoplatform.services.cms.impl.ResourceConfig">                    
                  <field name="resources">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/RSSScript.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/SendMailScript.groovy</string></field>
                        </object>  
                      </value>
                  <value>
                    <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                      <field name="name"><string>ecm-explorer/action/TrashFolderScript.groovy</string></field>
                    </object>  
                  </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/EnableVersioningScript.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/AutoVersioningScript.groovy</string></field>
                        </object>  
                      </value>                                        
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/AddMetadataScript.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/TransformBinaryChildrenToTextScript.groovy</string></field>
                        </object>  
                      </value>                    
                      <value>
                            <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                                <field name="name"><string>ecm-explorer/action/GetMailScript.groovy</string></field>
                            </object>  
                      </value>                    
                      <value>
                            <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                                <field name="name"><string>ecm-explorer/action/ProcessRecordsScript.groovy</string></field>
                            </object>  
                      </value>
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/PublishingRequestScript.groovy</string></field>
                        </object>  
                      </value>
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/action/AddTaxonomyActionScript.groovy</string></field>
                        </object>  
                      </value>                                        
                      <value>
                      <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                        <field name="name"><string>ecm-explorer/widget/FillSelectBoxWithCalendarCategories.groovy</string></field>
                      </object>  
                    </value> 
                    <value>
                      <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                        <field name="name"><string>ecm-explorer/widget/FillSelectBoxWithMetadatas.groovy</string></field>
                      </object>  
                    </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/widget/FillSelectBoxWithWorkspaces.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/widget/FillSelectBoxWithNodeChildren.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/widget/FillSelectBoxWithLanguage.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/interceptor/PreNodeSaveInterceptor.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/interceptor/PostNodeSaveInterceptor.groovy</string></field>
                        </object>  
                      </value> 
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>ecm-explorer/interceptor/PostFilePlanInterceptor.groovy</string></field>
                        </object>  
                      </value>                    
                      <value>
                        <object type="org.exoplatform.services.cms.impl.ResourceConfig$Resource">
                          <field name="name"><string>content-browser/GetDocuments.groovy</string></field>
                        </object>  
                      </value> 
                    </collection>   
                  </field>
                </object>
              </object-param>
            </init-params> 
           </component-plugin> 
  </external-component-plugins>

In which:

Object type: org.exoplatform.services.cache.ExoCacheConfig

Name Type Default Value Description
name string wcm.compose The name of the cache which must be unique.
maxSize string 200 The max size of the cache object.
liveTime string 600 The time interval.
implementation string org.exoplatform.services.cache.concurrent.ConcurrentFIFOExoCache The algorithm that is used to handle the cache.


<external-component-plugins>
  <target-component>org.exoplatform.services.cache.CacheService</target-component>
  <component-plugin>
    <name>addExoCacheConfig</name>
    <set-method>addExoCacheConfig</set-method>
    <type>org.exoplatform.services.cache.ExoCacheConfigPlugin</type>
    <description>Configures the cache for query service</description>
    <init-params>
      <object-param>
        <name>cache.config.wcm.composer</name>
        <description>The default cache configuration</description>
        <object type="org.exoplatform.services.cache.ExoCacheConfig">
          <field name="name">
            <string>wcm.composer</string>
          </field>
          <field name="maxSize">
            <int>300</int>
          </field>
          <field name="liveTime">
            <long>600</long>
          </field>
          <field name="distributed">
            <boolean>false</boolean>
          </field>
          <field name="implementation">
            <string>org.exoplatform.services.cache.concurrent.ConcurrentFIFOExoCache</string>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>
<external-component-plugins>
  <target-component>org.exoplatform.services.wcm.core.WebSchemaConfigService</target-component>
  <component-plugin>
    <name>StageAndVersionPublicationHandler</name>
    <set-method>addWebSchemaHandler</set-method>
    <type>org.exoplatform.services.wcm.publication.lifecycle.stageversion.StageAndVersionPublicationHandler</type>
  </component-plugin>
</external-component-plugins>
<external-component-plugins>
  <target-component>org.exoplatform.services.listener.ListenerService</target-component>
  <component-plugin>
    <name>org.exoplatform.portal.config.DataStorage.pageCreated</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.page.CreatePageEventListener</type>
    <description>this listener update publication state of content when page is created</description>
  </component-plugin>
  <component-plugin>
    <name>org.exoplatform.portal.config.DataStorage.pageUpdated</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.page.UpdatePageEventListener</type>
    <description>this listener update publication state of content when page is updated</description>
  </component-plugin>
  <component-plugin>
    <name>org.exoplatform.portal.config.DataStorage.pageRemoved</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.page.RemovePageEventListener</type>
    <description>this listener update publication state of content when page is removed</description>
  </component-plugin>
  <component-plugin>
    <name>org.exoplatform.portal.config.DataStorage.navigationUpdated</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.navigation.UpdateNavigationEventListener</type>
    <description>this listener update publication state of content when navigation is updated</description>
  </component-plugin>
  <component-plugin>
    <name>org.exoplatform.portal.config.DataStorage.navigationRemoved</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.navigation.RemoveNavigationEventListener</type>
    <description>this listener update publication state of content when navigation is removed</description>
  </component-plugin>
</external-component-plugins>
<external-component-plugins>
  <target-component>org.exoplatform.services.listener.ListenerService</target-component>
  <component-plugin>
    <name>CmsService.event.postCreate</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.post.PostCreateContentEventListener</type>
    <description>this listener will force the created document enroll to publication lifecycle</description>
  </component-plugin>
  <component-plugin>
    <name>CmsService.event.postEdit</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.post.PostEditContentEventListener</type>
    <description>this listener will change state of document to draft after editing</description>
  </component-plugin>
  <component-plugin>
    <name>FormGenerator.event.postCreate</name>
    <set-method>addListener</set-method>
    <type>org.exoplatform.services.wcm.publication.listener.post.PostCreateNodeTypeEventListener</type>
    <description>this listener will reinit the composer templates list when creating a new nodetype</description>
  </component-plugin>
</external-component-plugins>

In which:

.

.

.

object type org.exoplatform.services.cms.folksonomy.impl.TagPermissionConfig

Name Type Default Value Description
tagPermissionList array list :/platform/administrators The users/groups that have the permission.

In which:

Object type: org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig

Name Type Default Value Description
autoCreatedInNewRepository boolean true Specify whether the tag style is added automactically in new reposistory or not.
repository string repository Name of the repository where the tag style is added.
tagStyleList array list Array list The list of tag styles.

Object type: org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig$HtmlTagStyle

Name Type Default Value Description
name string - The name of the tag.
tagRate string - The number of times that a tag is used which will decide the respective tag style.
htmlStyle string - The HTML code that defines the style.


<external-component-plugins>
  <target-component>org.exoplatform.services.cms.folksonomy.NewFolksonomyService</target-component>
  <component-plugin>
    <name>predefinedTagStylePlugin</name>
    <set-method>addTagStylePlugin</set-method>
    <type>org.exoplatform.services.cms.folksonomy.impl.TagStylePlugin</type>
    <init-params>
      <object-param>
        <name>htmStyleForTag.configuration</name>
        <description>configuration predefined html style for tag to inject in jcr</description>
        <object type="org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig">
          <field name="autoCreatedInNewRepository">
            <boolean>true</boolean>
          </field>
          <field name="repository">
            <string>repository</string>
          </field>
          <field name="tagStyleList">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig$HtmlTagStyle">
                  <field name="name">
                    <string>normal</string>
                  </field>
                  <field name="tagRate">
                    <string>0..2</string>
                  </field>
                  <field name="htmlStyle">
                    <string>font-size: 12px; font-weight: bold; color: #6b6b6b; font-family: verdana; text-decoration:none;
                    </string>
                  </field>
                  <field name="description">
                    <string>Normal style for tag</string>
                  </field>
                </object>
              </value>
              <value>
                <object type="org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig$HtmlTagStyle">
                  <field name="name">
                    <string>interesting</string>
                  </field>
                  <field name="tagRate">
                    <string>2..5</string>
                  </field>
                  <field name="htmlStyle">
                    <string>font-size: 13px; font-weight: bold; color: #5a66ce; font-family: verdana; text-decoration:none;
                    </string>
                  </field>
                  <field name="description">
                    <string>Interesting style for tag</string>
                  </field>
                </object>
              </value>
              <value>
                <object type="org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig$HtmlTagStyle">
                  <field name="name">
                    <string>attractive</string>
                  </field>
                  <field name="tagRate">
                    <string>5..7</string>
                  </field>
                  <field name="htmlStyle">
                    <string>font-size: 15px; font-weight: bold; color: blue; font-family: Arial; text-decoration:none;</string>
                  </field>
                  <field name="description">
                    <string>attractive style for tag</string>
                  </field>
                </object>
              </value>
              <value>
                <object type="org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig$HtmlTagStyle">
                  <field name="name">
                    <string>hot</string>
                  </field>
                  <field name="tagRate">
                    <string>7..10</string>
                  </field>
                  <field name="htmlStyle">
                    <string>font-size: 18px; font-weight: bold; color: #ff9000; font-family: Arial; text-decoration:none;</string>
                  </field>
                  <field name="description">
                    <string>hot style for tag</string>
                  </field>
                </object>
              </value>
              <value>
                <object type="org.exoplatform.services.cms.folksonomy.impl.TagStyleConfig$HtmlTagStyle">
                  <field name="name">
                    <string>hottest</string>
                  </field>
                  <field name="tagRate">
                    <string>10..*</string>
                  </field>
                  <field name="htmlStyle">
                    <string>font-size: 20px; font-weight: bold; color: red; font-family:Arial; text-decoration:none;</string>
                  </field>
                  <field name="description">
                    <string>hottest style for tag</string>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

Target Component: org.exoplatform.services.cms.taxonomy.TaxonomyService

Name: predefinedTaxonomyPlugin

Set-method: addTaxonomyPlugin

Type: org.exoplatform.services.cms.taxonomy.impl.TaxonomyPlugin

Value param Type Default value Description
autoCreateInNewRepository Boolean true Enable/Disable the creation of the taxonomies in the newly created repository.
repository String repository Name of the repository where taxonomies are created.
workspace String dms-system Name of the workspace where taxonomies are created.
treeName String system Name of the taxonomy tree to be created.
Object param Type Default value Description
permission.configuration String org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig Access permission for the whole taxonomy tree.
predefined.actions string org.exoplatform.services.cms.actions.impl.ActionConfig Predefined actions for the taxonomy tree root node.
taxonomy.configuration String org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig Access permissions for each taxonomy in tree.

Object type: org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig

Name Type Description
taxonomies java.util.ArrayList<TaxonomyConfig$Taxonomy> List of taxonomies to be configured with permission.

Object type: org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Taxonomy

Name Type Default value Description
name String name Name of the taxonomy.
path String cms Path to the taxonomy in the taxonomy tree.
permissions Arraylist java.util.ArrayList<TaxonomyTreeDefaultUserPermission$Permission> List of permissions for users or groups to access the taxonomy.

Object type: org.exoplatform.services.cms.actions.impl.ActionConfig

Name Type Default value Description
actions Arraylist java.util.ArrayList<ActionConfig$TaxonomyAction> List of actions created for the taxonomy tree root node.

Object type: org.exoplatform.services.cms.actions.impl.ActionConfig$TaxonomyAction

Field name Type Default value Description
type String exo:taxonomyAction Type of the action.
name String taxonomyAction Name of the action.
description String N/A Description of the action.
homePath String dms-system:/exo:ecm/exo:taxonomyTrees/storage/System Location of node where the action node is stored.
targetWspace String N/A When a new node is created in the node whose path is defined in the homePath field, it will be moved to a new location automatically. The target workspace is specified in this field.
targetPath String collaboration When a new node is created in the node whose path is defined in homePath field, it will be moved to a new location automatically. The target path is specified in this field.
lifecyclePhase Arraylist java.util.ArrayList<String> The life cycle phases, in which the action is activated.
roles String *:/platform/administrators The users or groups only with whom the action is activated.
mixins Arraylist java.util.ArrayList<ActionConfig$Mixin> List of node types that are affected by this action.

Object type: org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin

Field name Type Default value Description
name String mix:affectedNodeTypes Mixin node type name that will be added. The node type is used to store the affected node types.
properties String exo:affectedNodeTypeNames=exo:article,exo:podcast,exo:sample,kfx:document,nt:file,rma:filePlan The name of the properties that store all the node types affected by the action.


<external-component-plugins>
  <target-component>org.exoplatform.services.cms.taxonomy.TaxonomyService</target-component>
  <component-plugin>
    <name>predefinedTaxonomyPlugin</name>
    <set-method>addTaxonomyPlugin</set-method>
    <type>org.exoplatform.services.cms.taxonomy.impl.TaxonomyPlugin</type>
    <init-params>
      <value-param>
        <name>autoCreateInNewRepository</name>
        <value>true</value>
      </value-param>
      <value-param>
        <name>repository</name>
        <value>repository</value>
      </value-param>
      <value-param>
        <name>workspace</name>
        <value>dms-system</value>
      </value-param>
      <value-param>
        <name>treeName</name>
        <value>System</value>
      </value-param>
      <object-param>
        <name>permission.configuration</name>
        <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig">
          <field name="taxonomies">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Taxonomy">
                  <field name="permissions">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Permission">
                          <field name="identity">
                            <string>*:/platform/users</string>
                          </field>
                          <field name="read">
                            <string>true</string>
                          </field>
                          <field name="addNode">
                            <string>true</string>
                          </field>
                          <field name="setProperty">
                            <string>true</string>
                          </field>
                          <field name="remove">
                            <string>false</string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>predefined.actions</name>
        <description>description</description>
        <object type="org.exoplatform.services.cms.actions.impl.ActionConfig">
          <field name="actions">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$TaxonomyAction">
                  <field name="type">
                    <string>exo:taxonomyAction</string>
                  </field>
                  <field name="name">
                    <string>taxonomyAction</string>
                  </field>
                  <field name="description">
                    <string/>
                  </field>
                  <field name="homePath">
                    <string>dms-system:/exo:ecm/exo:taxonomyTrees/storage/System</string>
                  </field>
                  <field name="targetWspace">
                    <string>collaboration</string>
                  </field>
                  <field name="targetPath">
                    <string>/Documents</string>
                  </field>
                  <field name="lifecyclePhase">
                    <collection type="java.util.ArrayList">
                      <value>
                        <string>node_added</string>
                      </value>
                    </collection>
                  </field>
                  <field name="roles">
                    <string>*:/platform/administrators</string>
                  </field>
                  <field name="mixins">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin">
                          <field name="name">
                            <string>mix:affectedNodeTypes</string>
                          </field>
                          <field name="properties">
                            <string>exo:affectedNodeTypeNames=exo:article,exo:podcast,exo:sample,kfx:document,nt:file,rma:filePlan
                            </string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
      <object-param>
        <name>taxonomy.configuration</name>
        <description>configuration predefined taxonomies to inject in jcr</description>
        <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig">
          <field name="taxonomies">
            <collection type="java.util.ArrayList">
              <!-- cms taxonomy -->
              <value>
                <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Taxonomy">
                  <field name="name">
                    <string>cmsTaxonomy</string>
                  </field>
                  <field name="path">
                    <string>/cms</string>
                  </field>
                  <field name="permissions">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Permission">
                          <field name="identity">
                            <string>*:/platform/users</string>
                          </field>
                          <field name="read">
                            <string>true</string>
                          </field>
                          <field name="addNode">
                            <string>true</string>
                          </field>
                          <field name="setProperty">
                            <string>true</string>
                          </field>
                          <field name="remove">
                            <string>false</string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>

A template is a presentation to display the saved information.

Template service is used to select the right template corresponding to the saved content.

The node type template is used to edit and display the node content. Each node type has one dialog1.gtmpl file (dialog template) for editing/creating a node and one view1.gtmpl file (view template) for viewing the node content. Using the dialog template, you can specify a dialog whose fields correspond to the properties of the node you want to edit their values. When this template is rendered, each specified field will appear with a data input box for you to edit. Note that you do not have to design a dialog in which all data of the node are listed to be edited. You can just list the subset of node data you want to edit. Like the dialog template, the view template renders information of the node. You just need to create the template and specify which data fields to be displayed. With this kind of template, node information is only displayed but can not be edited. See details at ContentType.

Configuration name Data type Default value Description
autoCreateInNewRepository Boolean true Enable the application to import predefined templates at the start-up of template service automatically.
storedLocation String war:/conf/dms-extension/dms/artifacts/templates Location of stored templates.
repository String repository Location of stored templates.
object-param Structure N/A Configuration for each instance.
Configuration name Data type Default Value Description
name String template.configuration The name of this configuration.
description String configuration for the location of templates to inject in jcr Description of template instance.
object-type Structure N/A Detailed configuration for each instance type.

Object-type defines all available template files, using the "collection type" configuration.

type: It is the name of each object type. It means the type of template, the further configurations for this type are defined by some specified fields.

Field name Data type Description
nodetypeName String The name of template that is saved as a node in system.
documentTemplate Boolean Determine if the node type is a document type.
label String Visual display of the title for this node.

There are three further information related to the presentation of each template:

Each type includes some definitions as the object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template" with the fields as the properties.

Field name Data type Description
templateFile String The location of the file store for the template's presentation.
roles String Determine who can access this object (View/Dialog/CSS).

This below example is configuration for the nt:file template, any other template will be put in the same level with this template start from the line <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$NodeType"> as the another node type.



<external-component-plugins>
  <target-component>org.exoplatform.services.cms.templates.TemplateService</target-component>
  <component-plugin>
    <name>addTemplates</name>
    <set-method>addTemplates</set-method>
    <type>org.exoplatform.services.cms.templates.impl.TemplatePlugin</type>
    <init-params>
      <value-param>
        <name>autoCreateInNewRepository</name>
        <value>true</value>
      </value-param>
      <value-param>
        <name>storedLocation</name>
        <value>war:/conf/dms-extension/dms/artifacts/templates</value>
      </value-param>
      <value-param>
        <name>repository</name>
        <value>repository</value>
      </value-param>
      <object-param>
        <name>template.configuration</name>
        <description>configuration for the localtion of templates to inject in jcr</description>
        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig">
          <field name="nodeTypes">
            <collection type="java.util.ArrayList">
              <value>
                <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$NodeType">
                  <field name="nodetypeName">
                    <string>nt:file</string>
                  </field>
                  <field name="documentTemplate">
                    <boolean>true</boolean>
                  </field>
                  <field name="label">
                    <string>File</string>
                  </field>
                  <field name="referencedView">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template">
                          <field name="templateFile">
                            <string>/file/views/view1.gtmpl</string>
                          </field>
                          <field name="roles">
                            <string>*</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template">
                          <field name="templateFile">
                            <string>/file/views/admin_view.gtmpl</string>
                          </field>
                          <field name="roles">
                            <string>*:/platform/administrators</string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                  <field name="referencedDialog">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template">
                          <field name="templateFile">
                            <string>/file/dialogs/dialog1.gtmpl</string>
                          </field>
                          <field name="roles">
                            <string>*</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template">
                          <field name="templateFile">
                            <string>/file/dialogs/admin_dialog.gtmpl</string>
                          </field>
                          <field name="roles">
                            <string>*:/platform/administrators</string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                  <field name="referencedSkin">
                    <collection type="java.util.ArrayList">
                      <value>
                        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template">
                          <field name="templateFile">
                            <string>/file/skins/Stylesheet-lt.css</string>
                          </field>
                          <field name="roles">
                            <string>*</string>
                          </field>
                        </object>
                      </value>
                      <value>
                        <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$Template">
                          <field name="templateFile">
                            <string>/file/skins/Stylesheet-rt.css</string>
                          </field>
                          <field name="roles">
                            <string>*</string>
                          </field>
                        </object>
                      </value>
                    </collection>
                  </field>
                </object>
              </value>
            </collection>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>
Configuration name Data type Sample value Description
key String org.exoplatform.services.wcm.publication.WCMPublicationService Service class location.
type String org.exoplatform.services.wcm.publication.WCMPublicationServiceImpl Service class's implementation location.
component-plugins Object N/A The plugins that are used inside the component.
init-params Object N/A The initial parameter that will be used inside the component.
Configuration name Data type Sample value Description
name String Simple publication Name of component-plugin.
set-method String addPublicationPlugin Set method to start using the plugin.
type String org.exoplatform.services.wcm.publication.lifecycle.simple.SimplePublicationPlugin Class and location of plugin.

The parameter will be set in pair: name-value and will be placed inside the <value-param> object.

Configuration name Data type Sample value
name String useCache
value String true

Also, the parameter can be set in an object, with further information which will be the object's properties.

Configuration name Data type Sample value Description
name String cache.config.wcm.composer The name of object.
description String N/A The brief description about the object.
object Object N/A This object will be passed to component as a parameter, this object includes fieldset properties.
Configuration name Data type Sample value Description
target-component String org.exoplatform.services.wcm.core.WebSchemaConfigService< External plugin's class location.
component-plugin Object N/A Configuration of component that will be used as a plugin.

When a site is created, most of end-users want to see something in the page instead of a blank page, so you need this service for deploying some "default" contents, such as Banner, Footer, Navigation, Breadcrumb.

There are two main cases to use:

init-params

Element Type Description
object-param Object The parameter which is an Object.

object-param

Element Type Default value object-param
name String ACME Logo data The name of this object parameter.
description String Deployment Descriptor The description of this object parameter.
object Class org.exoplatform.services.deployment.DeploymentDescriptor The object of this object parameter.

object

Attribute Type Default value Description
type String org.exoplatform.services.deployment.DeploymentDescriptor (*) The type of this object.

org.exoplatform.services.deployment.DeploymentDescriptor

Name Type Default value Description
target Object org.exoplatform.services.deployment.DeploymentDescriptor$Target (*) The target node which will contain the imported node.
sourcePath String war:/conf/sample-portal/wcm/artifacts/site-resources/acme/Logo.xml< The absolute path of the XML file.
cleanupPublication Boolean false

Decide when the publication lifecycle is cleaned up in the target folder after importing the data.

true: allow

false:not allow

versionHistoryPath String war:/conf/sample-portal/wcm/artifacts/site-resources/acme/Logo_versionHistory.zip< The absolute path of the version history file.

org.exoplatform.services.deployment.DeploymentDescriptor$Target

Field Type Default value Description
repository String repository The repository of the target node.
repository String repository The repository of the target node.
workspace String collaboration The workspace of the target node.
nodePath String /sites content/live/acme/web contents/site artifacts The path of the target node.


<external-component-plugins>
  <target-component>org.exoplatform.services.deployment.WCMContentInitializerService</target-component>
  <component-plugin>
    <name>Content Initializer Service</name>
    <set-method>addPlugin</set-method>
    <type>org.exoplatform.services.deployment.plugins.XMLDeploymentPlugin</type>
    <description>XML Deployment Plugin</description>
    <init-params>
      <object-param>
        <name>ACME Logo data</name>
        <description>Deployment Descriptor</description>
        <object type="org.exoplatform.services.deployment.DeploymentDescriptor">
          <field name="target">
            <object type="org.exoplatform.services.deployment.DeploymentDescriptor$Target">
              <field name="repository">
                <string>repository</string>
              </field>
              <field name="workspace">
                <string>collaboration</string>
              </field>
              <field name="nodePath">
                <string>/sites content/live/acme/web contents/site artifacts</string>
              </field>
            </object>
          </field>
          <field name="sourcePath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme/Logo.xml</string>
          </field>
          <field name="versionHistoryPath">
            <string>war:/conf/sample-portal/wcm/artifacts/site-resources/acme/Logo_versionHistory.zip</string>
          </field>
          <field name="cleanupPublication">
            <boolean>true</boolean>
          </field>
        </object>
      </object-param>
    </init-params>
  </component-plugin>
</external-component-plugins>