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

A drive is the combination of:

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

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

We use the following structure for drives configuration

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

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

Configuration name Data type Sample value Description
key String org.exoplatform.services.wcm.publication.WCMPublicationService Service class location
type String org.exoplatform.services.wcm.publication.WCMPublicationServiceImpl Service class's implementation location
component-plugins Object N/A The plugins that are used inside the component
init-params Object N/A The intitial parameter that will be used inside the component
Configuration name Data type Sample value Description
name String Simple publication Name of component-plugin
set-method String addPublicationPlugin Set method to start using plugin
type String org.exoplatform.services.wcm.publication.lifecycle.simple.SimplePublicationPlugin Class and location of plugin
Configuration name Data type Sample value  
name String useCache
value String true  
Configuration name Data type Sample value Description
name String cache.config.wcm.composer The name of the object
description String N/A The brief description about the object
object Object N/A This object will be passed to component as a parameter, this object includes fieldset properties
Configuration name Data type Sample value Description
target-component String org.exoplatform.services.wcm.core.WebSchemaConfigService< External plugin's class location
component-plugin Object N/A Configuration of component that will be used as a plugin

When a site is created, normally the end-user wants to see something in the page instead of a blank page, so we need this service for deployment of some "default" contents like Banner, Footer, Navigation, Breadcrumb, etc.

There are two main cases to use:

init-params

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

object-param

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

object

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

org.exoplatform.services.deployment.DeploymentDescriptor

Name Type Default value Description
target Object org.exoplatform.services.deployment.DeploymentDescriptor$Target (*) The target node (which will contains 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 allows to cleanup the publication lifecycle in the target folder after importing the data.

true: allow

false:not allow

org.exoplatform.services.deployment.DeploymentDescriptor$Target

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

Taxonomies are used to sort documents to ease searches when browsing documents online. The main idea behind that concept is to provide a multi dimensional set of paths to find a document. The best example is when you browse Yahoo news. 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. As you can imagine, taxonomies are stored in the JCR itself and we are using the JCR Reference functionality to provide that advanced ECM feature.

Managing the tree of taxonomies is very simple, you can copy/cut nodes and paste them. Of course, you can add and remove 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.

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

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

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

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

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

Name: predefinedTaxonomyPlugin

Set-method: addTaxonomyPlugin

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

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

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

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

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

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

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

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

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

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

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

Field name Type Default value Description
name String mix:affectedNodeTypes mixin node type name that will be added, whose responsibility is to store the affected node types.
properties String exo:affectedNodeTypeNames=exo:article,exo:podcast,exo:sample,kfx:document,nt:file,rma:filePlan the name of the properties that store all the node types affected by the action.
<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>
          </collection>
        </field>
      </object>
    </object-param>
  </init-params>
  <external-component-plugins>
    <target-component>org.exoplatform.services.cms.taxonomy.TaxonomyService</target-component>
    <component-plugin>
      <name>predefinedTaxonomyPlugin</name>
      <set-method>addTaxonomyPlugin</set-method>
      <type>org.exoplatform.services.cms.taxonomy.impl.TaxonomyPlugin</type>
      <init-params>
        <value-param>
          <name>autoCreateInNewRepository</name>
          <value>true</value>
        </value-param>
        <value-param>
          <name>repository</name>
          <value>repository</value>
        </value-param>
        <value-param>
          <name>workspace</name>
          <value>dms-system</value>
        </value-param>
        <value-param>
          <name>treeName</name>
          <value>System</value>
        </value-param>
        <object-param>
          <name>permission.configuration</name>
          <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig">
            <field name="taxonomies">
              <collection type="java.util.ArrayList">
                <value>
                  <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Taxonomy">
                    <field name="permissions">
                      <collection type="java.util.ArrayList">
                        <value>
                          <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Permission">
                            <field name="identity">
                              <string>*:/platform/users</string>
                            </field>
                            <field name="read">
                              <string>true</string>
                            </field>
                            <field name="addNode">
                              <string>true</string>
                            </field>
                            <field name="setProperty">
                              <string>true</string>
                            </field>
                            <field name="remove">
                              <string>false</string>
                            </field>
                          </object>
                        </value>
                      </collection>
                    </field>
                  </object>
                </value>
              </collection>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>predefined.actions</name>
          <description>description</description>
          <object type="org.exoplatform.services.cms.actions.impl.ActionConfig">
            <field name="actions">
              <collection type="java.util.ArrayList">
                <value>
                  <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$TaxonomyAction">
                    <field name="type">
                      <string>exo:taxonomyAction</string>
                    </field>
                    <field name="name">
                      <string>taxonomyAction</string>
                    </field>
                    <field name="description">
                      <string/>
                    </field>
                    <field name="homePath">
                      <string>dms-system:/exo:ecm/exo:taxonomyTrees/storage/System</string>
                    </field>
                    <field name="targetWspace">
                      <string>collaboration</string>
                    </field>
                    <field name="targetPath">
                      <string>/Documents</string>
                    </field>
                    <field name="lifecyclePhase">
                      <collection type="java.util.ArrayList">
                        <value>
                          <string>node_added</string>
                        </value>
                      </collection>
                    </field>
                    <field name="roles">
                      <string>*:/platform/administrators</string>
                    </field>
                    <field name="mixins">
                      <collection type="java.util.ArrayList">
                        <value>
                          <object type="org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin">
                            <field name="name">
                              <string>mix:affectedNodeTypes</string>
                            </field>
                            <field name="properties">
                              <string>exo:affectedNodeTypeNames=exo:article,exo:podcast,exo:sample,kfx:document,nt:file,rma:filePlan</string>
                            </field>
                          </object>
                        </value>
                      </collection>
                    </field>
                  </object>
                </value>
              </collection>
            </field>
          </object>
        </object-param>
        <object-param>
          <name>taxonomy.configuration</name>
          <description>configuration predefined taxonomies to inject in jcr</description>
          <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig">
            <field name="taxonomies">
              <collection type="java.util.ArrayList">
                <!-- cms taxonomy -->
                <value>
                  <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Taxonomy">
                    <field name="name">
                      <string>cmsTaxonomy</string>
                    </field>
                    <field name="path">
                      <string>/cms</string>
                    </field>
                    <field name="permissions">
                      <collection type="java.util.ArrayList">
                        <value>
                          <object type="org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Permission">
                            <field name="identity">
                              <string>*:/platform/users</string>
                            </field>
                            <field name="read">
                              <string>true</string>
                            </field>
                            <field name="addNode">
                              <string>true</string>
                            </field>
                            <field name="setProperty">
                              <string>true</string>
                            </field>
                            <field name="remove">
                              <string>false</string>
                            </field>
                          </object>
                        </value>
                      </collection>
                    </field>
                  </object>
                </value>
              </collection>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
</component>

Every node has a type. Node types can be used to define complex storage objects consisting of multiple sub-nodes and properties, possibly many deep layers.

org.exoplatform.services.jcr.core.nodetype.ExtendedNodeTypeManager

Node Type Type Description
name String Name of the node type. This field is required
isMixin boolean mixin type&nbsp;
hasOrderableChildNodes boolean Orderable childnodes
primaryItemName String Primary item name
suppertype String Name of supper type
propertyDefinition Object Define properties of node type

The node definition should be placed in a special XML file (see DTD below) and declared in the service's configuration file to eXo component plugin mechanism, described as follows:

This is a Nodetype definition file format:

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

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

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

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

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

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

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

A template is a presentation while displaying the saved information.

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

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

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

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

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

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

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

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

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

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

SiteSearchService is used in the Search portlet that allows users to find all information matching with your given keyword.

It is configured in the core/core-configuration/src/main/webapp/WEB-INF/conf/configuration.xml file as follows:

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

Set-method: addExcludeIncludeDataTypePlugin

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

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

The search.exclude.datatype property includes two attributes:

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

The JodConverterService component is used to convert documents into different office formats. 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
port Integer ${wcm.jodconverter.portnumbers} List of ports, separated by commas, those used by each JODConverter processing thread. Number of office instances is equal to number of ports.
officeHome String ${wcm.jodconverter.officeHome} Absolute path of office home on the current local device. It means that office needs to be installed in the local device before using it.
taskQueueTimeout Long ${wcm.jodconverter.taskqueuetimeout} Maximum living time of tasks in the conversation queue. Task will be removed from this queue if waiting time is longer than taskQueueTimeout.
taskExecutionTimeout Long ${wcm.jodconverter.taskexecutiontimeout} If a task has been executing within an soffice process for longer than this period, soffice process will be terminated and restarted.
maxTasksPerProcess Integer ${wcm.jodconverter.maxtasksperprocess} To ensure that potential memory leaks do not accumulate and affect performance, the JodConverter will restart an soffice process after a given number of tasks have been performed.
retryTimeout Long ${wcm.jodconverter.retrytimeout} Interval time to try to restart the office services after an unexpected crash.