<?xml version="1.0" encoding="ISO-8859-1"?>
<!--

    Copyright (C) 2009 eXo Platform SAS.

    This is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.

    This software is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this software; if not, write to the Free
    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA, or see the FSF site: http://www.fsf.org.

-->
<configuration
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd"
  xmlns="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd">
  
  <component>
    <key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
    <type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
    <init-params>
      <value-param>
        <name>conf-path</name>
        <description>JCR configuration file</description>
        <value>jar:/conf/portal/exo-jcr-config.xml</value>
      </value-param>
    </init-params>
  </component>
  
  <component>
    <key>org.exoplatform.services.jcr.RepositoryService</key>
    <type>org.exoplatform.services.jcr.impl.RepositoryServiceImpl</type>
    <component-plugins>
      <component-plugin>
        <name>add.namespaces</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.jcr.impl.AddNamespacesPlugin</type>
        <init-params>
          <properties-param>
            <name>namespaces</name>
            <property name="dc" value="http://purl.org/dc/elements/1.1/"/>
            <property name="webdav" value="http://www.exoplatform.org/jcr/webdav"/>
          </properties-param>
        </init-params>
      </component-plugin>
      <component-plugin>
        <name>add.nodeType</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.jcr.impl.AddNodeTypePlugin</type>
        <init-params>
          <values-param>
            <name>autoCreatedInNewRepository</name>
            <description>Node types configuration file</description>
            <value>jar:/conf/ext-nodetypes-config.xml</value>
            <value>jar:/conf/webdav-nodetypes.xml</value>
          </values-param>
        </init-params>
      </component-plugin>
    </component-plugins>
  </component>
  
  <component>
    <type>org.exoplatform.services.jcr.impl.ext.action.SessionActionCatalog</type>
    <component-plugins>
      <component-plugin>
        <name>addActions</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin</type>
        <description>add actions plugin</description>
        <init-params>
          <object-param>
            <name>actions</name>
            <object type="org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig">
              <field name="actions">
                <collection type="java.util.ArrayList">
                  <value>
                    <object type="org.exoplatform.services.jcr.impl.ext.action.ActionConfiguration">
                      <field name="eventTypes">
                        <string>addProperty,changeProperty</string>
                      </field>
                      <!--<field  name="path"><string>/test</string></field>-->
                      <!--<field  name="isDeep"><boolean>true</boolean></field>-->
                      <field name="nodeTypes">
                        <string>nt:resource</string>
                      </field>
                      <!-- field  name="workspace"><string>production</string></field -->
                      <field name="actionClassName">
                        <string>org.exoplatform.services.jcr.ext.metadata.AddMetadataAction</string>
                      </field>
                    </object>
                  </value>
                </collection>
              </field>
            </object>
          </object-param>
        </init-params>
      </component-plugin>
    </component-plugins>
  </component>
  
  <component>
    <type>org.exoplatform.services.jcr.ext.registry.RegistryService</type>
    <init-params>
      <properties-param>
        <name>locations</name>
        <property name="repository" value="production"/>
      </properties-param>
    </init-params>
  </component>
  
  <component>
    <type>org.exoplatform.services.jcr.ext.registry.RESTRegistryService</type>
  </component>
  
  <!-- network services -->
  <component>
    <key>org.exoplatform.services.jcr.webdav.lnkproducer.LnkProducer</key>
    <type>org.exoplatform.services.jcr.webdav.lnkproducer.LnkProducer</type>
  </component>
  
  <component>
    <key>org.exoplatform.services.jcr.webdav.WebDavServiceImpl</key>
    <type>org.exoplatform.services.jcr.webdav.WebDavServiceImpl</type>
    <init-params>
      
      <value-param>
        <name>auto-mix-lockable</name>
        <value>false</value>
      </value-param>
      
      <value-param>
        <name>def-folder-node-type</name>
        <value>nt:folder</value>
      </value-param>
      
      <value-param>
        <name>def-file-node-type</name>
        <value>nt:file</value>
      </value-param>
      
      <value-param>
        <name>def-file-mimetype</name>
        <value>text/plain</value>
      </value-param>
      
      <value-param>
        <name>update-policy</name>
        <value>create-version</value>
      </value-param>
    </init-params>
  </component>
  
  <component>
    <key>org.exoplatform.services.ftp.FtpServiceImpl</key>
    <type>org.exoplatform.services.ftp.FtpServiceImpl</type>
    <init-params>
      <value-param>
        <name>command-port</name>
        <value>2121</value>
      </value-param>
      <value-param>
        <name>data-min-port</name>
        <value>52000</value>
      </value-param>
      <value-param>
        <name>data-max-port</name>
        <value>53000</value>
      </value-param>
      <value-param>
        <name>system</name>
        <!-- value>Windows_NT</value -->
        <value>UNIX Type: L8</value>
      </value-param>
      <value-param>
        <name>client-side-encoding</name>
        <value>windows-1251</value>
        <!-- value>KOI8-R</value -->
      </value-param>
      <value-param>
        <name>def-folder-node-type</name>
        <value>nt:folder</value>
      </value-param>
      <value-param>
        <name>def-file-node-type</name>
        <value>nt:file</value>
      </value-param>
      <value-param>
        <name>def-file-mime-type</name>
        <value>application/octet-stream</value>
      </value-param>
      <value-param>
        <name>cache-folder-name</name>
        <value>target/ftp_cache</value>
      </value-param>
      
      <!-- bytes per second -->
      <!-- value-param>
      <name>upload-speed-limit</name>
      <value>20480</value>
      </value-param -->
      
      <!-- bytes per second -->
      <!-- value-param>
      <name>download-speed-limit</name>
      <value>20480</value>
      </value-param -->
      
      <!-- seconds -->
      <!-- value-param>
      <name>timeout</name>
      <value>60</value>
      </value-param -->
    </init-params>
  </component>
  
  <!-- organization service -->
  <component>
    <key>org.exoplatform.services.organization.OrganizationService</key>
    <type>org.exoplatform.services.jcr.ext.organization.JCROrganizationServiceImpl</type>
    <init-params>
      <value-param>
        <name>storage-workspace</name>
        <description>Workspace in default repository where organization storage will be created</description>
        <value>production</value>
      </value-param>
    </init-params>
  </component>
  
  <!-- org service initializer, copied from ECM portal.war -->
  <external-component-plugins>
    <target-component>org.exoplatform.services.organization.OrganizationService</target-component>
    <component-plugin>
      <name>init.service.listener</name>
      <set-method>addListenerPlugin</set-method>
      <type>org.exoplatform.services.organization.OrganizationDatabaseInitializer</type>
      <description>this listener populate organization data for the first launch</description>
      <init-params>
        <value-param>
          <name>checkDatabaseAlgorithm</name>
          <description>check database</description>
          <value>entry</value>
        </value-param>
        <value-param>
          <name>printInformation</name>
          <description>Print information init database</description>
          <value>false</value>
        </value-param>
        <object-param>
          <name>configuration</name>
          <description>description</description>
          <object type="org.exoplatform.services.organization.OrganizationConfig">
            <field name="membershipType">
              <collection type="java.util.ArrayList">
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$MembershipType">
                    <field name="type">
                      <string>manager</string>
                    </field>
                    <field name="description">
                      <string>manager membership type</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$MembershipType">
                    <field name="type">
                      <string>member</string>
                    </field>
                    <field name="description">
                      <string>member membership type</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$MembershipType">
                    <field name="type">
                      <string>validator</string>
                    </field>
                    <field name="description">
                      <string>validator membership type</string>
                    </field>
                  </object>
                </value>
              </collection>
            </field>
            
            <field name="group">
              <collection type="java.util.ArrayList">
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>platform</string>
                    </field>
                    <field name="parentId">
                      <string></string>
                    </field>
                    <field name="description">
                      <string>the /platform group</string>
                    </field>
                    <field name="label">
                      <string>Platform</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>administrators</string>
                    </field>
                    <field name="parentId">
                      <string>/platform</string>
                    </field>
                    <field name="description">
                      <string>the /platform/administrators group</string>
                    </field>
                    <field name="label">
                      <string>Administrators</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>users</string>
                    </field>
                    <field name="parentId">
                      <string>/platform</string>
                    </field>
                    <field name="description">
                      <string>the /platform/users group</string>
                    </field>
                    <field name="label">
                      <string>Users</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>guests</string>
                    </field>
                    <field name="parentId">
                      <string>/platform</string>
                    </field>
                    <field name="description">
                      <string>the /platform/guests group</string>
                    </field>
                    <field name="label">
                      <string>Guests</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>organization</string>
                    </field>
                    <field name="parentId">
                      <string></string>
                    </field>
                    <field name="description">
                      <string>the organization group</string>
                    </field>
                    <field name="label">
                      <string>Organization</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>management</string>
                    </field>
                    <field name="parentId">
                      <string>/organization</string>
                    </field>
                    <field name="description">
                      <string>the /organization/management group</string>
                    </field>
                    <field name="label">
                      <string>Management</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>executive-board</string>
                    </field>
                    <field name="parentId">
                      <string>/organization/management</string>
                    </field>
                    <field name="description">
                      <string>the /organization/management/executive-board group</string>
                    </field>
                    <field name="label">
                      <string>Executive Board</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>human-resources</string>
                    </field>
                    <field name="parentId">
                      <string>/organization/management</string>
                    </field>
                    <field name="description">
                      <string>the /organization/management/human-resource group</string>
                    </field>
                    <field name="label">
                      <string>Human Resources</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>communication</string>
                    </field>
                    <field name="parentId">
                      <string>/organization</string>
                    </field>
                    <field name="description">
                      <string>the /organization/communication group</string>
                    </field>
                    <field name="label">
                      <string>Communication</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>marketing</string>
                    </field>
                    <field name="parentId">
                      <string>/organization/communication</string>
                    </field>
                    <field name="description">
                      <string>the /organization/communication/marketing group</string>
                    </field>
                    <field name="label">
                      <string>Marketing</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>press-and-media</string>
                    </field>
                    <field name="parentId">
                      <string>/organization/communication</string>
                    </field>
                    <field name="description">
                      <string>the /organization/communication/press-and-media group</string>
                    </field>
                    <field name="label">
                      <string>Press and Media</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>operations</string>
                    </field>
                    <field name="parentId">
                      <string>/organization</string>
                    </field>
                    <field name="description">
                      <string>the /organization/operations and media group</string>
                    </field>
                    <field name="label">
                      <string>Operations</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>sales</string>
                    </field>
                    <field name="parentId">
                      <string>/organization/operations</string>
                    </field>
                    <field name="description">
                      <string>the /organization/operations/sales group</string>
                    </field>
                    <field name="label">
                      <string>Sales</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>finances</string>
                    </field>
                    <field name="parentId">
                      <string>/organization/operations</string>
                    </field>
                    <field name="description">
                      <string>the /organization/operations/finances group</string>
                    </field>
                    <field name="label">
                      <string>Finances</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>customers</string>
                    </field>
                    <field name="parentId">
                      <string></string>
                    </field>
                    <field name="description">
                      <string>the /customers group</string>
                    </field>
                    <field name="label">
                      <string>Customers</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$Group">
                    <field name="name">
                      <string>partners</string>
                    </field>
                    <field name="parentId">
                      <string></string>
                    </field>
                    <field name="description">
                      <string>the /partners group</string>
                    </field>
                    <field name="label">
                      <string>Partners</string>
                    </field>
                  </object>
                </value>
              </collection>
            </field>
            
            <field name="user">
              <collection type="java.util.ArrayList">
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$User">
                    <field name="userName">
                      <string>root</string>
                    </field>
                    <field name="password">
                      <string>exo</string>
                    </field>
                    <field name="firstName">
                      <string>Root</string>
                    </field>
                    <field name="lastName">
                      <string>Root</string>
                    </field>
                    <field name="email">
                      <string>root@localhost</string>
                    </field>
                    <field name="groups">
                      <string>
                        *:/platform/administrators,*:/platform/users,
                        member:/organization/management/executive-board
                      </string>
                    </field>
                  </object>
                </value>
                
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$User">
                    <field name="userName">
                      <string>john</string>
                    </field>
                    <field name="password">
                      <string>exo</string>
                    </field>
                    <field name="firstName">
                      <string>John</string>
                    </field>
                    <field name="lastName">
                      <string>Anthony</string>
                    </field>
                    <field name="email">
                      <string>john@localhost</string>
                    </field>
                    <field name="groups">
                      <string>
                        validator:/platform/administrators,manager:/platform/users,
                        *:/organization/management/executive-board, manager:/organization/management/executive-board, validator:/organization/management/executive-board
                      </string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$User">
                    <field name="userName">
                      <string>marry</string>
                    </field>
                    <field name="password">
                      <string>exo</string>
                    </field>
                    <field name="firstName">
                      <string>Marry</string>
                    </field>
                    <field name="lastName">
                      <string>Kelly</string>
                    </field>
                    <field name="email">
                      <string>marry@localhost</string>
                    </field>
                    <field name="groups">
                      <string>member:/platform/users</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$User">
                    <field name="userName">
                      <string>demo</string>
                    </field>
                    <field name="password">
                      <string>exo</string>
                    </field>
                    <field name="firstName">
                      <string>Demo</string>
                    </field>
                    <field name="lastName">
                      <string>exo</string>
                    </field>
                    <field name="email">
                      <string>demo@localhost</string>
                    </field>
                    <field name="groups">
                      <string>member:/platform/users</string>
                    </field>
                  </object>
                </value>
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$User">
                    <field name="userName">
                      <string>james</string>
                    </field>
                    <field name="password">
                      <string>exo</string>
                    </field>
                    <field name="firstName">
                      <string>James</string>
                    </field>
                    <field name="lastName">
                      <string>Anderson</string>
                    </field>
                    <field name="email">
                      <string>james@localhost</string>
                    </field>
                    <field name="groups">
                      <string>*:/organization/management/human-resources,member:/platform/users</string>
                    </field>
                  </object>
                </value>
              </collection>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
  
  <external-component-plugins>
    <target-component>org.exoplatform.services.naming.InitialContextInitializer</target-component>
    <component-plugin>
      <name>bind.datasource</name>
      <set-method>addPlugin</set-method>
      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
      <init-params>
        <value-param>
          <name>bind-name</name>
          <value>jdbcjcr</value>
        </value-param>
        <value-param>
          <name>class-name</name>
          <value>javax.sql.DataSource</value>
        </value-param>
        <value-param>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </value-param>
        <properties-param>
          <name>ref-addresses</name>
          <description>ref-addresses</description>
          <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
          <property name="url" value="jdbc:hsqldb:file:../temp/data/exodb"/>
          <property name="username" value="sa"/>
          <property name="password" value=""/>
        </properties-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
  
</configuration>
