This chapter describes about configurations used in eXo Content. It consists of two main sections:

This section describes services which provide low-level functionality for UI components.

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:

Name Type Value Description
portalNames string classic, acme The portal names.
administrators string root The administrator who manages the newsletter portlet.
Field Type Description
name string The name of categories or subscriptions.
title string The title of categories or subscriptions.
description string The description of categories or subscriptions.
moderator string The users or groups that can moderate the newsletter portlet.
categoryName string The categories name.
redactor string The 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:

Field Type Value Description
robotsindex ArrayList

INDEX

NOINDEX

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

FOLLOW

NOFOLLOW

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

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:

Field Type Value Description
permissions ArrayList {java.util.ArrayList}{noformat} The list of the default user permissions to access the taxonomy tree.
Field Type Description
identity string The name of user, group or membership.
read boolean The permission to read the taxonomy tree.
addNode boolean The permission to add a node to the taxonomy tree.
setProperty boolean The permission to set properties for a node in the taxonomy tree.
remove boolean 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:

Name Type Value Description
smallSize integer x integer 32x32 The small thumbnail size.
mediumSize integer x integer 64x64 The medium thumbnail size.
largeSize integer x integer 300x300 The large thumbnail size.
enable boolean false Specify if the thumbnail is displayed or not.
mimetypes Images formats image/jpeg;image/png;image/gif;image/bmp The 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:

Field Type Value Description
sender string support@exoplatform.com The sender who sends the notification mail.
subject string Your watching document is changed. The subject of the notification mail.
content string The document that you are watching is changed. Please go to ecm to see this change. The content of the notification mail.

This section describes about the main component plugins used in eXo Content. Each part supply an example configuration with the explanation about ini-params so you can know how to use these plugins.

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

This plugin is used to define the business process action in Workflow.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/workflow/webapp/src/main/webapp/WEB-INF/workflow-extension/workflow/workflow-system-configuration.xml.

Sample configuration:



<external-component-plugins>
    <target-component>org.exoplatform.services.cms.actions.ActionServiceContainer</target-component>
    <component-plugin>
        <name>exo:businessProcessAction</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.plugin.actions.impl.BPActionPlugin</type>
        <priority>112</priority>
        <init-params>
            <object-param>
                <name>predefined.actions</name>
                <description>description</description>
                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig">
                    <field name="repository">
                        <string>repository</string>
                    </field>
                    <field name="workspace">
                        <string>collaboration</string>
                    </field>
                    <field name="actions">
                        <collection type="java.util.ArrayList">
                            <value>
                                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Action">
                                    <field name="type">
                                        <string>exo:publishingProcess</string>
                                    </field>
                                    <field name="name">
                                        <string>content publishing</string>
                                    </field>
                                    <field name="description">
                                        <string>content publishing workflow</string>
                                    </field>
                                    <field name="srcWorkspace">
                                        <string>collaboration</string>
                                    </field>
                                    <field name="srcPath">
                                        <string>/Documents/Validation Requests</string>
                                    </field>
                                    <field name="isDeep">
                                        <boolean>true</boolean>
                                    </field>
                                    <field name="lifecyclePhase">
                                        <collection type="java.util.ArrayList">
                                            <value>
                                                <string>node_added</string>
                                            </value>
                                        </collection>
                                    </field>
                                    <field name="roles">
                                        <string>*:/platform/users</string>
                                    </field>
                                    <field name="variables">
                                        <string>
                                            exo:supervisor=*:/organization/management/executive-board;exo:validator=*:/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>exo:publishLocation</string>
                                                    </field>
                                                    <field name="properties">
                                                        <string>
                                                            exo:publishWorkspace=collaboration;exo:publishPath=/Documents/Live;exo:validator=*:/platform/administrators
                                                        </string>
                                                    </field>
                                                </object>
                                            </value>
                                            <value>
                                                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin">
                                                    <field name="name">
                                                        <string>exo:pendingLocation</string>
                                                    </field>
                                                    <field name="properties">
                                                        <string>
                                                            exo:pendingWorkspace=collaboration;exo:pendingPath=/Documents/Pending
                                                        </string>
                                                    </field>
                                                </object>
                                            </value>
                                            <value>
                                                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin">
                                                    <field name="name">
                                                        <string>exo:backupLocation</string>
                                                    </field>
                                                    <field name="properties">
                                                        <string>exo:backupWorkspace=backup;exo:backupPath=/Expired
                                                            Documents
                                                        </string>
                                                    </field>
                                                </object>
                                            </value>
                                            <value>
                                                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin">
                                                    <field name="name">
                                                        <string>exo:trashLocation</string>
                                                    </field>
                                                    <field name="properties">
                                                        <string>
                                                            exo:trashWorkspace=collaboration;exo:trashPath=/Documents/Trash
                                                        </string>
                                                    </field>
                                                </object>
                                            </value>
                                            <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>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

Field Type Value Description
repository string repository The repository name.
workspace string collaboration The workspace name.
action ArrayList {java.util.ArrayList}{noformat} The action name.

This plugin is used to filter WCM node types.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in /packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-templates-configuration.xml.

Sample configuration:



<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>
                ...
            </object-param>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

Field Type Value Description
folderType string exo:cssFolder The folder type.
contentTypes ArrayList {java.util.ArrayList}{noformat} The content type.

This plugin is used to store the context configuration of a publication lifecycle. To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/ecmdemo/webapp/src/main/webapp/WEB-INF/conf/sample-portal/wcm/content-configuration.xml or packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/content-extended/authoring/configuration.xml.

Sample 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:

Field Type Value Description
name string context2 The 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 executed sooner.
lifecycle string lifecycle2 The name of the lifecycle.
site string acme The site that will apply the context configuration.

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

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

The configuration is applied mainly in core/core-configuration/src/main/webapp/WEB-INF/conf/wcm-core/core-search-configuration.xml.

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:

  • Name: ExcludeMimeTypes

  • Set-method: addExcludeIncludeDataTypePlugin

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

  • The plugin has the following parameter:

Properties-param Description
search.exclude.datatype Exclude some data types when doing search.
  • The search.exclude.datatype property includes two attributes:

Attribute Value Description
name mimetypes The name of the property param.
value text/css,text/javascript,application/x-javascript,text/ecmascript The list of mimetypes which will be excluded from the search results.

This plugin is used to refine URLs in WCM.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/content-extended/friendly/configuration.xml.

Sample configuration:



<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:

Field Type 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.

This plugin is used to configure the file types and get thumbnail for images.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-thumbnail-configuration.xml.

Sample configuration:



<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>

In which:

Field Type Value Description
mimeTypes String

image/jpeg

image/png

image/gif

image/bmp

image/tiff

The list of thumbnail image types.

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

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/wcm-extension/wcm/newsletter-configuration.xml.

Sample configuration:



<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>
                ...
            </object-param>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

Name Type Value Description
repository string repository The repository into which the initial web contents will be deployed.
workspace string collaboration The workspace into which the initial web contents will be deployed.
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.

This plugin is used to create predefined Symlinks into the system.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/ecmdemo/webapp/src/main/webapp/WEB-INF/conf/sample-portal/wcm/deployment/acme-deployment-configuration.xml.

Sample configuration:



<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>

In which:

Field Type 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.

This plugin is used to configure predefined groups or users for lock administration. To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in core/core-configuration/src/main/webapp/WEB-INF/conf/wcm-core/core-services-configuration.xml.

Sample configuration:

In which:

Field Type Value Description
settingLockList ArrayList {java.util.ArrayList}{noformat} The list of the groups or user to be locked.

This plugin is used to create a predefined drive into a repository. 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:

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-drives-configuration.xml.

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:

Sample configuration:



<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>

In which:

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

This plugin is used to create a predefined View into a repository. 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.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-views-configuration.xml.

Sample configuration:



<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>

In which:

value-param Type Value Description
autoCreateInNewRepository boolean true Allow creating a predefined View in this repository if the value is "true".
predefinedViewsLocation string war:/conf/dms-extension/dms/artifacts The location of the View node in the repository.
repository string repository The repository name.
Field Type Value Description
name string system-view The name of view which must be unique inside WCM.
permissions string *:/platform/administrators{noformat} 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}{noformat} Include a set of view names.
Field Type 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.
Field Type Vsalue 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.

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

To use the plugin in the component configuration, you must use the following target-component:



<target-component>org.exoplatform.services.cms.thumbnail.ThumbnailService</target-component>

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-thumbnail-configuration.xml.

Sample configuration:



<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>

In which:

  • Name: PDFThumbnailPlugin

  • Set-method: addPlugin

  • Type: org.exoplatform.services.cms.thumbnail.impl.PDFThumbnailPlugin

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

Field Type Value Description
mimeTypes String application/pdf The MIME type of the pdf thumbnail.

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

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/wcm-extension/dms/application-templates-configuration.xml.

Sample configuration:



<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>
                ....
            </object-param>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

Value-param Type Value Description
portletName string content-list-viewer The name of the portlet.
portlet.template.path string war:/conf/wcm-artifacts/application-templates/content-list-viewer The path to the configuration of the portlet.
Field Type Description
templateName string The name of the GROOVY template.
category string The category name.

This plugin is used to import the predefined processes into the system.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/workflow/webapp/src/main/webapp/WEB-INF/workflow-extension/workflow/bonita-configuration.xml.

Sample configuration:



<external-component-plugins>
    <target-component>org.exoplatform.services.workflow.WorkflowServiceContainer</target-component>
    <component-plugin>
        <name>deploy.predefined.processes</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.workflow.PredefinedProcessesPlugin</type>
        <init-params>
            <object-param>
                <name>predefined.processes</name>
                <description>load of default business processes</description>
                <object type="org.exoplatform.services.workflow.ProcessesConfig">
                    <field name="processLocation">
                        <string>war:/conf/bp</string>
                    </field>
                    <field name="predefinedProcess">
                        <collection type="java.util.HashSet">
                            <value>
                                <string>/exo-ecms-ext-workflow-bp-bonita-content-2.3.6.jar</string>
                            </value>
                            <value>
                                <string>/exo-ecms-ext-workflow-bp-bonita-payraise-2.3.6.jar</string>
                            </value>
                            <value>
                                <string>/exo-ecms-ext-workflow-bp-bonita-holiday-2.3.6.jar</string>
                            </value>
                        </collection>
                    </field>
                </object>
            </object-param>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

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

This plugin is used to store predefined queries into the repositories of the system.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in /packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-queries-configuration.xml.

Sample configuration:



<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>

In which:

Value-param Type Value Description
autoCreateInNewRepository boolean true Store queries in a new repository if the value is "true".
repository string repository The repository to the target node.
Field Type Description
name string The name of the query.
language string The language of the query (Xpath, SQL).
statement string The query statement.
permissions ArrayList The permission which users must have to use this query.
cachedResult boolean Specify if the query is cached or not.

This plugin is used to import the predefined script actions into the system.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-actions-configuration.xml.

Sample configuration:



<external-component-plugins>
    <target-component>org.exoplatform.services.cms.actions.ActionServiceContainer</target-component>
    <component-plugin>
        <name>exo:scriptAction</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.cms.actions.impl.ScriptActionPlugin</type>
        <init-params>
            <object-param>
                <name>predefined.actions</name>
                <description>description</description>
                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig">
                    <field name="repository">
                        <string>repository</string>
                    </field>
                    <field name="workspace">
                        <string>collaboration</string>
                    </field>
                    <field name="actions">
                        <collection type="java.util.ArrayList">
                            <value>
                                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Action">
                                    <field name="type">
                                        <string>exo:sendMailAction</string>
                                    </field>
                                    <field name="name">
                                        <string>sendMail</string>
                                    </field>
                                    <field name="description">
                                        <string>send a notification mail</string>
                                    </field>
                                    <field name="srcWorkspace">
                                        <string>collaboration</string>
                                    </field>
                                    <field name="srcPath">
                                        <string>/Documents/Validation Requests</string>
                                    </field>
                                    <field name="isDeep">
                                        <boolean>true</boolean>
                                    </field>
                                    <field name="lifecyclePhase">
                                        <collection type="java.util.ArrayList">
                                            <value>
                                                <string>read</string>
                                            </value>
                                        </collection>
                                    </field>
                                    <field name="roles">
                                        <string>*:/platform/administrators</string>
                                    </field>
                                    <field name="variables">
                                        <string>exo:to=benjamin.mestrallet@exoplatform.com</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>
                            <value>
                                <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Action">
                                    <field name="type">
                                        <string>exo:trashFolderAction</string>
                                    </field>
                                    <field name="name">
                                        <string>trashFolder</string>
                                    </field>
                                    <field name="description">
                                        <string>trigger actions for items in trash</string>
                                    </field>
                                    <field name="srcWorkspace">
                                        <string>collaboration</string>
                                    </field>
                                    <field name="srcPath">
                                        <string>/Trash</string>
                                    </field>
                                    <field name="isDeep">
                                        <boolean>false</boolean>
                                    </field>
                                    <field name="lifecyclePhase">
                                        <collection type="java.util.ArrayList">
                                            <value>
                                                <string>node_added</string>
                                            </value>
                                            <value>
                                                <string>node_removed</string>
                                            </value>
                                        </collection>
                                    </field>
                                </object>
                            </value>
                        </collection>
                    </field>
                </object>
            </object-param>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

Name Type Default Value Description
repository string repository The name of the repository.
workspace string collaboration The name of the workspace.
actions ArrayList {java.util.ArrayList}{noformat} The list of the actions.
Name Type Default Value Description
type string exo:sendMailAction The type of the action.
name string sendMail The name of the action.
description string send a notification mail The description of the action.
srcWorkspace string collaboration The source workspace of the action.
isDeep boolean false Specify the depth of node that the action script will affect.
srcPath string trash The path to the source.
lifecyclePhase ArrayList {java.util.ArrayList}{noformat} Specify the lifecycle phase that the action will take place.

This plugin is used to add groovy scripts into the system.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-scripts-configuration.xml.

Sample configuration:



<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:

Value-param Type Value Description
autoCreateInNewRepository Boolean true Enable/Disable the creation of the scripts in the newly created repository.
repository String repository The repository name.
predefinedScriptsLocation String war:/conf/dms-extension/dms/artifacts The location where the scripts are created.
Field Type Value Description
resource ArrayList {java.util.ArrayList}{noformat} The resource name.

This plugin is used to control the state life cycle of a content.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/content-extended/authoring/configuration.xml.

Sample configuration:



<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>

In which:

Field Type Value Description
name string lifecycle1 The name of the lifecycle.
publicationPlugin string Authoring publication The publication plugin name.
states ArrayList {java.util.ArrayList}{noformat} The list of the publication states.
Field Type Description
state string The publication states: draft, pending, staged, approved or published.
membership string The user or group.

This plugin is used to configure the predefined permission for tag to inject in JCR.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-folksonomy-configuration.xml.

Sample configuration:

In which:

Name Type Value Description
tagPermissionList ArrayList {java.util.ArrayList}{noformat} The users/groups that have the permission.

This plugin is used to configure the predefined styles for tag to inject in JCR.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-folksonomy-configuration.xml.

Sample configuration:



<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>
Name Type Value Description
autoCreatedInNewRepository boolean true Specify whether the tag style is added automatically in a new reposistory or not.
repository string repository Name of the repository where the tag style is added.
tagStyleList ArrayList {java.util.ArrayList}{noformat} The list of tag styles.
Name Type 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.

This plugin is used to configure the predefined taxonomies to inject into JCR.

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-categories-configuration.xml.

Sample configuration:



<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>
                ...
            </object-param>
        </init-params>
    </component-plugin>
</external-component-plugins>

In which:

Value-param Type Value Description
autoCreateInNewRepository boolean true Enable/Disable the creation of the taxonomies in the newly created repository.
repository string repository The name of the repository where taxonomies are created.
workspace string dms-system The name of the workspace where taxonomies are created.
treeName string system The name of the taxonomy tree created.
Name Type Value Description
taxonomies ArrayList {java.util.ArrayList}{noformat} The list of taxonomies to be configured with permission.
Name Type Value Description
permissions ArrayList {java.util.ArrayList}{noformat} The list of permissions for users or groups to access the taxonomy.
Name Type Value Description
identity string *:/platform/users{noformat}The name of the user, group or membership.
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 false The permission to remove a node from the taxonomy tree.

This plugin is used to create templates into the system. A template is a presentation to display the saved information.

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 cannot be edited. See details at ContentType.

To use the plugin in the component configuration, you must use the following target-component:



<target-component>org.exoplatform.services.cms.templates.TemplateService</target-component>

The configuration is applied mainly in packaging/wcm/webapp/src/main/webapp/WEB-INF/conf/dms-extension/dms/dms-templates-configuration.xml.

Sample configuration:

This below example is configuration for the nt:file{noformat} template, any other template will be put in the same level with this template starting from the line <object type="org.exoplatform.services.cms.templates.impl.TemplateConfig$NodeType>{noformat} 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>

In which:

  • name: addTemplates

  • set-method: addTemplates

  • type: org.exoplatform.services.cms.templates.impl.TemplatePlugin

  • Init-params:

Value-param Type 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 The location of stored templates.
repository string repository Location of stored templates.
  • Object-type: org.exoplatform.services.cms.templates.impl.TemplateConfig that 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 Type Value Description
nodeTypes ArrayList {java.util.ArrayList}{noformat} The node type of the template.
  • Object-type: org.exoplatform.services.cms.templates.impl.TemplateConfig$NodeType

Field Type Value Description
nodetypeName string nt:file The name of template that is saved as a node in system.
documentTemplate boolean true Determine if the node type is a document type.
label string file Visual display of the title for this node.
referencedView ArrayList {java.util.ArrayList}{noformat} Determine how to display a view.
referencedDialog ArrayList {java.util.ArrayList}{noformat} Determine how to display a dialog to input information.
referencedSkin ArrayList {java.util.ArrayList}{noformat} Determine the stylesheet for display.
  • Object type: org.exoplatform.services.cms.templates.impl.TemplateConfig$Template

Field 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).

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 plugin to deploy some "default" contents, such as Banner, Footer, Navigation, Breadcrumb.

There are two main cases to use:

To use the plugin in the component configuration, you must use the following target-component:

The configuration is applied mainly in packaging/ecmdemo/webapp/src/main/webapp/WEB-INF/conf/sample-portal/wcm/deployment/acme-deployment-configuration.xml.

Sample configuration:



<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>

In which:

Name Type 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.
Field Type Value Description
repository string repository The repository name of the target node.
workspace string collaboration The collaboration name of the target node.
nodePath string /sites content/live/acme/web contents/site artifacts The path of the target node.