<?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">
   <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>
         <!--      <priority>5</priority>-->
         <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,manager:/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>
                                    member:/platform/administrators,manager:/platform/users,
                                    *:/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>manager:/organization/management/human-resources,member:/platform/users</string>
                              </field>
                           </object>
                        </value>
                     </collection>
                  </field>
               </object>
            </object-param>
         </init-params>
      </component-plugin>

    <!-- OLD CONFIG 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>/users</string>
                           </field>
                           <field name="membership">
                              <string>member</string>
                           </field>
                        </object>
                     </value>
                  </collection>
               </field>
               <field name="ignoredUser">
                  <collection type="java.util.HashSet">
                     <value>
                        <string>demo</string>
                     </value>
                     <value>
                        <string>admin</string>
                     </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>
                     </collection>
                  </field>
                  <field name="ignoredUser">
                     <collection type="java.util.HashSet">
                        <value>
                           <string>root</string>
                        </value>
                        <value>
                           <string>john</string>
                        </value>
                        <value>
                           <string>marry</string>
                        </value>
                        <value>
                           <string>demo</string>
                        </value>
                        <value>
                           <string>james</string>
                        </value>
                     </collection>
                  </field>
               </object>
            </object-param>
         </init-params>
      </component-plugin>
   </external-component-plugins>

   <!--
   import>classpath:/conf/portal/hibernate-organization-configuration.xml</import>
   <import>classpath:/conf/portal/ldap-organization-configuration.xml</import>
   <import>classpath:/conf/portal/activedirectory-organization-configuration.xml</import>
   <import>classpath:/conf/portal/organization-configuration.xml</import
   -->

   <import>classpath:/conf/portal/hibernate-organization-configuration.xml</import>
</configuration>
