2.11.2. Standalone Container and Organization Service

TCK tests use standalone container. Thus, to launch TCK tests properly, you will also need to add Organization Service as a standalone component. For that purpose, use the configuration file located at src/test/java/conf/standalone/test-configuration.xml by default, but its location can be changed by the system property called orgservice.test.configuration.file. Add your Organization Service configuration with all needed components there.

In addition, you need to populate your Organization Service with organization data (TCK tests are designed to use this data):


<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>
                        manager:/platform/administrators,member:/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,member:/platform/users,
                        manager:/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/guests,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.organization.OrganizationService</target-component>
 <component-plugin>
    <name>tester.membership.type.listener</name>
    <set-method>addListenerPlugin</set-method>
    <type>org.exoplatform.services.organization.MembershipTypeEventListener</type>
    <description>Membership type listerner for testing purpose</description>
 </component-plugin>
</external-component-plugins>

Ultimately, you will have a configuration file which determines the standalone container and consists of Organization Service configuration and initialization data. You can find the prepared test-configuration.xml file at GIT.

Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus