h1. Fields 
*Target Component*: {{org.exoplatform.services.cms.taxonomy.TaxonomyService}}

*Name*: {{predefinedTaxonomyPlugin}}

*Set-method*: {{addTaxonomyPlugin}}

*Type*: _org.exoplatform.services.cms.taxonomy.impl.TaxonomyPlugin_

|| *Value param*|| *Type* || *Default value* || *Description*||
| *autoCreateInNewRepository* | {{Boolean}} |{{true}}| Enable/Disable the creation of the taxonomies in the newly created repository. |
| *repository* | {{String}} |{{repository}}| Name of the repository where taxonomies are created. |
| *workspace* | {{String}} |{{dms-system}}| Name of the workspace where taxonomies are created. |
| *treeName* | {{String}} | {{system}}| Name of the taxonomy tree to be created. |

|| *Object param*|| *Type* || *Default value* || *Description*||
| *permission.configuration* | {{String}}|{{org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig}} | Access permission for the whole taxonomy tree. |
| *predefined.actions* | {{string}}| {{org.exoplatform.services.cms.actions.impl.ActionConfig}} | Predefined actions for the taxonomy tree root node. |
| *taxonomy.configuration* | {{String}}| {{org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig}} | Access permissions for each taxonomy in tree. |

*Object type*: _org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig_
||*Name* || *Type*|| *Description*  ||
| *taxonomies* | {{java.util.ArrayList<TaxonomyConfig$Taxonomy>}} | List of taxonomies to be configured with permission. |

*Object type*: _org.exoplatform.services.cms.taxonomy.impl.TaxonomyConfig$Taxonomy_
||*Name* || *Type*|| *Default value*|| *Description*  ||
| *name* | {{String}} | {{name}}| Name of the taxonomy. |
| *path* | {{String}} | {{cms}}| Path to the taxonomy in the taxonomy tree. |
| *permissions* |{{Arraylist}}| {{java.util.ArrayList<TaxonomyTreeDefaultUserPermission$Permission>}} | List of permissions for users or groups to access the taxonomy. |

*Object type*: _org.exoplatform.services.cms.actions.impl.ActionConfig_
||*Name* || *Type*|| *Default value*|| *Description*  ||
| *actions* || {{Arraylist}}|{{java.util.ArrayList<ActionConfig$TaxonomyAction>}} | List of actions created for the taxonomy tree root node. |

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

*Object type*: _org.exoplatform.services.cms.actions.impl.ActionConfig$Mixin_
|| *Field name* || *Type* || *Default value*||  *Description* ||
| *name* | {{String}} |{{mix:affectedNodeTypes}}| Mixin node type name that will be added. The node type is used to store the affected node types. |
| *properties* || {{String}} | {{exo:affectedNodeTypeNames=exo:article,exo:podcast,exo:sample,kfx:document,nt:file,rma:filePlan}} | the name of the properties that store all the node types affected by the action. |



h1. Sample configuration

{code:xml}
	<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></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>
{code}
