<?xml version="1.0" encoding="ISO-8859-1"?>
<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">
  <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>true</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>demo</string></field>
                    <field  name="parentId"><string></string></field>
                    <field  name="description"><string>the /demo group</string></field>
                    <field  name="label"><string>Demo</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>manager:/platform/administrators,manager:/platform/users</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>
                      	member:/platform/administrators,manager:/platform/users,
                      	manager:/organization/management/executive-board
                      </string>
                    </field>
                  </object>
                </value-->                                                        
                <value>
                  <object type="org.exoplatform.services.organization.OrganizationConfig$User">
                    <field  name="userName"><string>admin</string></field>
                    <field  name="password"><string>exo</string></field>
                    <field  name="firstName"><string>Demo</string></field>
                    <field  name="lastName"><string>Admin</string></field>
                    <field  name="email"><string>admin@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>                       
              </collection>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
           
    <component-plugin>
      <name>new.user.event.listener</name>
      <set-method>addListenerPlugin</set-method>
      <type>org.exoplatform.services.organization.impl.NewUserEventListener</type>
      <description>this listener assign group and membership to a new created user</description>
      <init-params>
        <object-param>
          <name>configuration</name>
          <description>description</description>
          <object type="org.exoplatform.services.organization.impl.NewUserConfig">
            <field  name="group">
              <collection type="java.util.ArrayList">
                <value>
                  <object type="org.exoplatform.services.organization.impl.NewUserConfig$JoinGroup">
                    <field  name="groupId"><string>/platform/users</string></field>
                    <field  name="membership"><string>member</string></field>
                  </object>
                </value>    
                <!--value>
                  <object type="org.exoplatform.services.organization.impl.NewUserConfig$JoinGroup">
                    <field  name="groupId"><string>/demo</string></field>
                    <field  name="membership"><string>member</string></field>
                  </object>
                </value-->                            
              </collection>
            </field>
            <field  name="ignoredUser">
              <collection type="java.util.HashSet">
                <value><string>root</string></value>
                <value><string>admin</string></value>
                <value><string>demo</string></value>
              </collection>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>

  </external-component-plugins>
</configuration>
