[exo-jcr-commits] exo-jcr SVN: r5016 - in core/trunk: exo.core.component.organization.jdbc/src/test and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Oct 4 05:03:41 EDT 2011


Author: dkuleshov
Date: 2011-10-04 05:03:41 -0400 (Tue, 04 Oct 2011)
New Revision: 5016

Added:
   core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/
   core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-hibernate.xml
   core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-jdbc.xml
Removed:
   core/trunk/exo.core.component.organization.jdbc/src/test/java/
   core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/portal/
   core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/TestOrganizationServiceWithApacheDS.java
Modified:
   core/trunk/exo.core.component.organization.jdbc/pom.xml
   core/trunk/exo.core.component.organization.jdbc/src/test/resources/test.policy
   core/trunk/exo.core.component.organization.ldap/pom.xml
   core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLDAPServiceImpl.java
   core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLdapContext.java
   core/trunk/exo.core.component.organization.ldap/src/test/resources/test.policy
   core/trunk/exo.core.component.organization.tests/src/main/java/org/exoplatform/services/tck/organization/AbstractOrganizationServiceTest.java
Log:
EXOJCR-953: Added tck tests to jdbc, hibernate and ldap organization services, tests are run by default. 
As jdbc and hibernate org services are contained in a single module a user can launch 'hibernate' or 'jdbc' (active by default) maven profiles to run test for each service.
Some tests were excluded due to assertions failures, there is a need to investigate more.
Now TCK tests can use system property 'orgservice.configuration.test.file' to acquire test configuration file path.

Modified: core/trunk/exo.core.component.organization.jdbc/pom.xml
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/pom.xml	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.jdbc/pom.xml	2011-10-04 09:03:41 UTC (rev 5016)
@@ -79,6 +79,12 @@
          <artifactId>exo.core.component.organization.api</artifactId>
       </dependency>
       <dependency>
+         <groupId>org.exoplatform.core</groupId>
+         <artifactId>exo.core.component.organization.tests</artifactId>
+         <classifier>sources</classifier>
+         <scope>test</scope>
+      </dependency>
+      <dependency>
          <groupId>org.hsqldb</groupId>
          <artifactId>hsqldb</artifactId>
       </dependency>
@@ -97,9 +103,91 @@
       <plugins>
          <plugin>
             <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>unpack</id>
+                  <phase>generate-test-sources</phase>
+                  <goals>
+                     <goal>unpack</goal>
+                  </goals>
+                  <configuration>
+                     <artifactItems>
+                        <artifactItem>
+                           <groupId>org.exoplatform.core</groupId>
+                           <artifactId>exo.core.component.organization.tests</artifactId>
+                           <classifier>sources</classifier>
+                           <type>jar</type>
+                           <overWrite>false</overWrite>
+                        </artifactItem>
+                     </artifactItems>
+                     <outputDirectory>${project.build.directory}/org-service-tck-tests</outputDirectory>
+                  </configuration>
+               </execution>
+            </executions>
+          </plugin>         
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+              <artifactId>build-helper-maven-plugin</artifactId>
+              <version>1.3</version>
+              <executions>
+                <execution>
+                  <id>add-test-resource</id>
+                  <phase>generate-test-sources</phase>
+                  <goals>
+                    <goal>add-test-resource</goal>
+                  </goals>
+                  <configuration>
+                    <resources>
+                      <resource>
+                          <directory>${project.build.directory}/org-service-tck-tests</directory>
+                         <excludes>
+                         </excludes>
+                       </resource>
+                    </resources>
+                 </configuration>
+              </execution> 
+              <execution>
+              <id>add-test-source</id>
+                 <phase>generate-test-sources</phase>
+                 <goals>
+                    <goal>add-test-source</goal>
+                 </goals>
+                 <configuration>
+                    <sources>
+                      <source>${project.build.directory}/org-service-tck-tests</source>
+                    </sources>
+                 </configuration>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-surefire-plugin</artifactId>
             <configuration>
                <argLine>${env.MAVEN_OPTS} -Djava.security.manager=org.exoplatform.commons.test.TestSecurityManager -Djava.security.policy=${project.build.directory}/test-classes/test.policy</argLine>
+               <systemProperties>
+                  <!--
+                     This property defines TCK tests configuration file location
+                  -->
+                  <property>
+                     <name>orgservice.test.configuration.file</name>
+                     <value>${orgservice.test.configuration.file}</value>
+                  </property>
+               </systemProperties>
+               <includes>
+                  <include>org/exoplatform/services/tck/organization/Test*.java</include>
+               </includes>                 
+               <excludes>
+                  <!--
+                     Temporary excluded, to investigate cause of failures and errors.
+                  -->
+                  <exclude>org/exoplatform/services/tck/organization/Test*.java</exclude>
+                  <!--
+                     Excluded as this class has no tests to be run
+                  -->
+                  <exclude>**/AbstractOrganizationServiceTest.java</exclude>
+               </excludes>  
             </configuration>
          </plugin>
          <plugin>
@@ -142,4 +230,21 @@
          </plugin>
       </plugins>
    </build>
-</project>
\ No newline at end of file
+   <profiles>
+      <profile>
+         <id>hibernate</id>
+         <properties>
+            <orgservice.test.configuration.file>/conf/standalone/test-configuration-hibernate.xml</orgservice.test.configuration.file>
+         </properties>
+      </profile>
+      <profile>
+         <id>jdbc</id>
+         <activation>
+             <activeByDefault>true</activeByDefault>
+         </activation>
+         <properties>
+            <orgservice.test.configuration.file>/conf/standalone/test-configuration-jdbc.xml</orgservice.test.configuration.file>
+         </properties>
+      </profile>
+   </profiles>
+</project>

Added: core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-hibernate.xml
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-hibernate.xml	                        (rev 0)
+++ core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-hibernate.xml	2011-10-04 09:03:41 UTC (rev 5016)
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
+  xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+  
+  <component>
+    <key>org.exoplatform.services.log.LogConfigurationInitializer</key>
+    <type>org.exoplatform.services.log.LogConfigurationInitializer</type>
+    <init-params>
+      <value-param>
+        <name>logger</name>
+        <value>org.exoplatform.services.log.impl.BufferedLog4JLogger</value>
+      </value-param>
+      <value-param>
+        <name>configurator</name>
+        <value>org.exoplatform.services.log.impl.Log4JConfigurator</value>
+      </value-param>
+      <properties-param>
+        <name>properties</name>
+        <description>Log4J properties</description>
+        <property name="log4j.rootLogger" value="INFO, stdout, file"/>
+        
+        <property name="log4j.appender.stdout" value="org.apache.log4j.ConsoleAppender"/>
+        <property name="log4j.appender.stdout.threshold" value="INFO"/>
+        
+        <property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout"/>
+        <property name="log4j.appender.stdout.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n"/>
+        
+        <property name="log4j.appender.file" value="org.apache.log4j.FileAppender"/>
+        <property name="log4j.appender.file.File" value="target/jcr.log"/>
+        
+        <property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout"/>
+        
+      </properties-param>
+    </init-params>
+  </component>
+  
+  <component>
+    <key>org.exoplatform.services.database.HibernateService</key>
+    <jmx-name>database:type=HibernateService</jmx-name>
+    <type>org.exoplatform.services.database.impl.HibernateServiceImpl</type>
+    <init-params>
+      <properties-param>
+        <name>hibernate.properties</name>
+        <description>Default Hibernate Service</description>
+        <property name="hibernate.show_sql" value="false"/>
+        <property name="hibernate.cglib.use_reflection_optimizer" value="true"/>
+        <property name="hibernate.connection.url" value="jdbc:hsqldb:file:../temp/data/exodb"/>
+        <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+        <property name="hibernate.connection.autocommit" value="true"/>
+        <property name="hibernate.connection.username" value="sa"/>
+        <property name="hibernate.connection.password" value=""/>
+        <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+        <property name="hibernate.c3p0.min_size" value="5"/>
+        <property name="hibernate.c3p0.max_size" value="20"/>
+        <property name="hibernate.c3p0.timeout" value="1800"/>
+        <property name="hibernate.c3p0.max_statements" value="50"/>
+      </properties-param>
+    </init-params>
+  </component>
+  
+  <component>
+    <key>org.exoplatform.services.organization.OrganizationService</key>
+    <type>org.exoplatform.services.organization.hibernate.OrganizationServiceImpl</type>
+  </component>
+  
+  <external-component-plugins>
+    <target-component>org.exoplatform.services.database.HibernateService</target-component>
+    <component-plugin>
+    <name>add.hibernate.mapping</name>
+    <set-method>addPlugin</set-method>
+    <type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
+      <init-params>
+        <values-param>
+          <name>hibernate.mapping</name>
+          <value>org/exoplatform/services/organization/impl/UserImpl.hbm.xml</value>
+          <value>org/exoplatform/services/organization/impl/MembershipImpl.hbm.xml</value>
+          <value>org/exoplatform/services/organization/impl/GroupImpl.hbm.xml</value>
+          <value>org/exoplatform/services/organization/impl/MembershipTypeImpl.hbm.xml</value>
+          <value>org/exoplatform/services/organization/impl/UserProfileData.hbm.xml</value>
+        </values-param>
+      </init-params>
+    </component-plugin>
+  </external-component-plugins>
+  
+  <!-- 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 at 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 at 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 at 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 at 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>
+ 
+</configuration>

Added: core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-jdbc.xml
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-jdbc.xml	                        (rev 0)
+++ core/trunk/exo.core.component.organization.jdbc/src/test/resources/conf/standalone/test-configuration-jdbc.xml	2011-10-04 09:03:41 UTC (rev 5016)
@@ -0,0 +1,381 @@
+<?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.log.LogConfigurationInitializer</key>
+    <type>org.exoplatform.services.log.LogConfigurationInitializer</type>
+    <init-params>
+      <value-param>
+        <name>logger</name>
+        <value>org.exoplatform.services.log.impl.BufferedLog4JLogger</value>
+      </value-param>
+      <value-param>
+        <name>configurator</name>
+        <value>org.exoplatform.services.log.impl.Log4JConfigurator</value>
+      </value-param>
+      <properties-param>
+        <name>properties</name>
+        <description>Log4J properties</description>
+        <property name="log4j.rootLogger" value="INFO, stdout, file"/>
+        
+        <property name="log4j.appender.stdout" value="org.apache.log4j.ConsoleAppender"/>
+        <property name="log4j.appender.stdout.threshold" value="INFO"/>
+        
+        <property name="log4j.appender.stdout.layout" value="org.apache.log4j.PatternLayout"/>
+        <property name="log4j.appender.stdout.layout.ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L) %n"/>
+        
+        <property name="log4j.appender.file" value="org.apache.log4j.FileAppender"/>
+        <property name="log4j.appender.file.File" value="target/jcr.log"/>
+        
+        <property name="log4j.appender.file.layout" value="org.apache.log4j.PatternLayout"/>
+        
+      </properties-param>
+    </init-params>
+  </component>
+  
+   <component>
+      <key>org.exoplatform.services.database.impl.ExoCacheProvider</key>
+      <type>org.exoplatform.services.database.impl.ExoCacheProvider</type>
+   </component>
+   <component>
+      <key>org.exoplatform.services.database.jdbc.DBSchemaCreator</key>
+      <type>org.exoplatform.services.database.jdbc.DBSchemaCreator</type>
+   </component>
+   <component>
+      <key>org.exoplatform.services.organization.OrganizationService</key>
+      <type>org.exoplatform.services.organization.jdbc.OrganizationServiceImpl</type>
+   </component>
+   
+      <component>
+      <key>org.exoplatform.services.database.DatabaseService</key>
+      <type>org.exoplatform.services.database.impl.XAPoolTxSupportDatabaseService</type>
+      <description>support the transaction db connection pool implementation</description>
+      <init-params>
+         <properties-param>
+            <name>connection.config</name>
+            <description>Connection configuration</description>
+            <property name='connection.driver' value='org.hsqldb.jdbcDriver' />
+            <property name='connection.url' value='jdbc:hsqldb:file:target/temp' />
+            <property name='connection.login' value='sa' />
+            <property name='connection.password' value='' />
+            <property name='connection.min-size' value='3' />
+            <property name='connection.max-size' value='25' />
+         </properties-param>
+      </init-params>
+   </component>
+   
+   <component>
+      <key>org.exoplatform.services.transaction.TransactionService</key>
+      <type>org.exoplatform.services.transaction.impl.jotm.TransactionServiceJotmImpl</type>
+      <init-params>
+         <value-param>
+            <name>timeout</name>
+            <value>-1</value>
+         </value-param>
+      </init-params>
+   </component>
+   
+   <external-component-plugins>
+      <target-component>org.exoplatform.services.listener.ListenerService</target-component>
+      <component-plugin>
+         <name>organization.user.preDelete</name>
+         <set-method>addListener</set-method>
+         <type>org.exoplatform.services.organization.jdbc.listeners.RemoveUserProfileListener</type>
+      </component-plugin>
+      <component-plugin>
+         <name>organization.user.postCreate</name>
+         <set-method>addListener</set-method>
+         <type>org.exoplatform.services.organization.jdbc.listeners.CreateUserListener</type>
+      </component-plugin>
+      <component-plugin>
+         <name>organization.user.preDelete</name>
+         <set-method>addListener</set-method>
+         <type>org.exoplatform.services.organization.jdbc.listeners.RemoveMembershipListener</type>
+      </component-plugin>
+      <component-plugin>
+         <name>organization.membershipType.preDelete</name>
+         <set-method>addListener</set-method>
+         <type>org.exoplatform.services.organization.jdbc.listeners.RemoveMembershipListener</type>
+      </component-plugin>
+      <component-plugin>
+         <name>organization.group.preDelete</name>
+         <set-method>addListener</set-method>
+         <type>org.exoplatform.services.organization.jdbc.listeners.RemoveMembershipListener</type>
+      </component-plugin>
+      <component-plugin>
+         <name>organization.group.preDelete</name>
+         <set-method>addListener</set-method>
+         <type>org.exoplatform.services.organization.jdbc.listeners.RemoveGroupListener</type>
+      </component-plugin>
+   </external-component-plugins>
+   
+   
+  <!-- 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 at 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 at 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 at 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 at 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>
+  
+</configuration>
+
+  
+ 

Modified: core/trunk/exo.core.component.organization.jdbc/src/test/resources/test.policy
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/src/test/resources/test.policy	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.jdbc/src/test/resources/test.policy	2011-10-04 09:03:41 UTC (rev 5016)
@@ -7,6 +7,7 @@
 };
 
 grant codeBase "@TEST_CLASSES at -"{
+   permission java.security.AllPermission;
 };
 
 grant codeBase "@MAIN_CLASSES at ../../../exo.core.component.database/-"{

Modified: core/trunk/exo.core.component.organization.ldap/pom.xml
===================================================================
--- core/trunk/exo.core.component.organization.ldap/pom.xml	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.ldap/pom.xml	2011-10-04 09:03:41 UTC (rev 5016)
@@ -68,6 +68,12 @@
          <artifactId>exo.core.component.organization.jdbc</artifactId>
       </dependency>   
       <dependency>
+         <groupId>org.exoplatform.core</groupId>
+         <artifactId>exo.core.component.organization.tests</artifactId>
+         <classifier>sources</classifier>
+         <scope>test</scope>
+      </dependency>
+      <dependency>
          <groupId>org.apache.directory.server</groupId>
          <artifactId>apacheds-server-unit</artifactId>
       </dependency>
@@ -85,12 +91,95 @@
      <plugins>   
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
+           <artifactId>maven-dependency-plugin</artifactId>
+           <executions>
+              <execution>
+                 <id>unpack</id>
+                 <phase>generate-test-sources</phase>
+                 <goals>
+                    <goal>unpack</goal>
+                 </goals>
+                 <configuration>
+                    <artifactItems>
+                       <artifactItem>
+                          <groupId>org.exoplatform.core</groupId>
+                          <artifactId>exo.core.component.organization.tests</artifactId>
+                          <classifier>sources</classifier>
+                          <type>jar</type>
+                          <overWrite>false</overWrite>
+                       </artifactItem>
+                    </artifactItems>
+                    <outputDirectory>${project.build.directory}/org-service-tck-tests</outputDirectory>
+                 </configuration>
+              </execution>
+           </executions>
+        </plugin>         
+        <plugin>
+           <groupId>org.codehaus.mojo</groupId>
+             <artifactId>build-helper-maven-plugin</artifactId>
+             <version>1.3</version>
+             <executions>
+               <execution>
+                 <id>add-test-resource</id>
+                 <phase>generate-test-sources</phase>
+                 <goals>
+                   <goal>add-test-resource</goal>
+                 </goals>
+                 <configuration>
+                   <resources>
+                     <resource>
+                         <directory>${project.build.directory}/org-service-tck-tests</directory>
+                        <excludes>
+                        </excludes>
+                      </resource>
+                   </resources>
+                </configuration>
+             </execution> 
+             <execution>
+             <id>add-test-source</id>
+                <phase>generate-test-sources</phase>
+                <goals>
+                   <goal>add-test-source</goal>
+                </goals>
+                <configuration>
+                   <sources>
+                     <source>${project.build.directory}/org-service-tck-tests</source>
+                   </sources>
+                </configuration>
+              </execution>
+           </executions>
+        </plugin>
+        <plugin>
+           <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
               <argLine>${env.MAVEN_OPTS} -Djava.security.manager=org.exoplatform.commons.test.TestSecurityManager -Djava.security.policy=${project.build.directory}/test-classes/test.policy</argLine>
-              <excludes>
-                 <exclude>**/TestOrganizationService.java</exclude>
-              </excludes>
+              <systemProperties>
+                  <!--
+                     This property defines TCK tests configuration file location
+                  -->
+                  <property>
+                     <name>orgservice.test.configuration.file</name>
+                     <value>/conf/standalone/test-configuration.xml</value>
+                  </property>
+               </systemProperties>
+               <includes>
+                  <include>org/exoplatform/services/tck/organization/Test*.java</include>
+               </includes>                 
+               <excludes>
+                  <!-- 
+                     Temporary excluded, to investigate cause of failures and errors. 
+                  -->
+                  <exclude>org/exoplatform/services/tck/organization/Test*.java</exclude>
+                  <!--
+                     Excluded as this class has no tests to be run
+                  -->
+                  <exclude>**/AbstractOrganizationServiceTest.java</exclude>
+                  <!--
+                     Not a unit test.
+                  -->
+                  <exclude>**/TestOrganizationService.java</exclude>
+               </excludes>  
            </configuration>
         </plugin>
          <plugin>

Modified: core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLDAPServiceImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLDAPServiceImpl.java	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLDAPServiceImpl.java	2011-10-04 09:03:41 UTC (rev 5016)
@@ -19,17 +19,31 @@
 
 package org.exoplatform.services.organization;
 
+import org.apache.commons.io.FileUtils;
+import org.apache.directory.server.configuration.MutableServerStartupConfiguration;
+import org.apache.directory.server.core.configuration.MutablePartitionConfiguration;
+import org.apache.directory.server.jndi.ServerContextFactory;
+import org.apache.mina.util.AvailablePortFinder;
 import org.exoplatform.services.ldap.LDAPService;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Map;
+import java.util.Set;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.BasicAttribute;
+import javax.naming.directory.BasicAttributes;
+import javax.naming.ldap.InitialLdapContext;
 import javax.naming.ldap.LdapContext;
 
 /**
@@ -41,10 +55,56 @@
 
    private Map<String, String> env = new HashMap<String, String>();
 
-   private int serverType = DEFAULT_SERVER;
+   protected MutableServerStartupConfiguration configuration = new MutableServerStartupConfiguration();
 
-   public DummyLDAPServiceImpl()
+   protected int port = -1;
+
+   protected boolean doDelete = true;
+
+   protected LdapContext sysRoot;
+
+   protected LdapContext rootDSE;
+
+   public DummyLDAPServiceImpl() throws Exception
    {
+      // configuration and launch of embedded ldap server
+      MutablePartitionConfiguration pcfg = new MutablePartitionConfiguration();
+
+      pcfg.setName("eXoTestPartition");
+      pcfg.setSuffix("dc=exoplatform,dc=org");
+
+      Set<String> indexedAttrs = new HashSet<String>();
+      indexedAttrs.add("objectClass");
+      indexedAttrs.add("o");
+      pcfg.setIndexedAttributes(indexedAttrs);
+
+      Attributes attrs = new BasicAttributes(true);
+      Attribute attr = new BasicAttribute("objectClass");
+      attr.add("top");
+      attr.add("organization");
+      attrs.put(attr);
+      attr = new BasicAttribute("o");
+      attr.add("eXoTestPartition");
+      attrs.put(attr);
+      pcfg.setContextEntry(attrs);
+
+      Set<MutablePartitionConfiguration> pcfgs = new HashSet<MutablePartitionConfiguration>();
+      pcfgs.add(pcfg);
+      configuration.setContextPartitionConfigurations(pcfgs);
+      File workingDirectory = new File("target/working-server");
+      workingDirectory.mkdirs();
+      configuration.setWorkingDirectory(workingDirectory);
+
+      doDelete(configuration.getWorkingDirectory());
+
+      port = AvailablePortFinder.getNextAvailable(1024);
+      configuration.setLdapPort(port);
+      configuration.setShutdownHookEnabled(false);
+
+      setContexts("uid=admin,ou=system", "secret");
+      // server launched and configured
+
+      // configuration of client side
       env.put(Context.PROVIDER_URL, "dc=exoplatform,dc=org");
       env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
       env.put(Context.SECURITY_CREDENTIALS, "secret");
@@ -146,4 +206,39 @@
       }
    }
 
+   protected void doDelete(File wkdir) throws IOException
+   {
+      if (doDelete)
+      {
+         if (wkdir.exists())
+         {
+            FileUtils.deleteDirectory(wkdir);
+         }
+         if (wkdir.exists())
+         {
+            throw new IOException("Failed to delete: " + wkdir);
+         }
+      }
+   }
+
+   protected void setContexts(String user, String passwd) throws NamingException
+   {
+      Hashtable env = new Hashtable(configuration.toJndiEnvironment());
+      env.put(Context.SECURITY_PRINCIPAL, user);
+      env.put(Context.SECURITY_CREDENTIALS, passwd);
+      env.put(Context.SECURITY_AUTHENTICATION, "simple");
+      env.put(Context.INITIAL_CONTEXT_FACTORY, ServerContextFactory.class.getName());
+      setContexts(env);
+   }
+
+   protected void setContexts(Hashtable env) throws NamingException
+   {
+      Hashtable envFinal = new Hashtable(env);
+      envFinal.put(Context.PROVIDER_URL, "ou=system");
+      sysRoot = new InitialLdapContext(envFinal, null);
+
+      envFinal.put(Context.PROVIDER_URL, "");
+      rootDSE = new InitialLdapContext(envFinal, null);
+   }
+
 }

Modified: core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLdapContext.java
===================================================================
--- core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLdapContext.java	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/DummyLdapContext.java	2011-10-04 09:03:41 UTC (rev 5016)
@@ -447,6 +447,12 @@
       return null;
    }
 
+   /**
+    * Utility method cut off the "dc=exoplatform, dc=org" string
+    * to avoid it to be used twice
+    * @param name
+    * @return
+    */
    private String removeExoplatformOrg(String name)
    {
       int i = name.toLowerCase().indexOf("dc=exoplatform,dc=org");
@@ -457,6 +463,12 @@
       return name;
    }
 
+   /**
+    * Utility method cut off the "ou=groups,ou=portal" string
+    * to avoid it to be used twice
+    * @param name
+    * @return
+    */
    private String removeGroupProtal(String name)
    {
       name = removeExoplatformOrg(name);

Deleted: core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/TestOrganizationServiceWithApacheDS.java
===================================================================
--- core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/TestOrganizationServiceWithApacheDS.java	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.ldap/src/test/java/org/exoplatform/services/organization/TestOrganizationServiceWithApacheDS.java	2011-10-04 09:03:41 UTC (rev 5016)
@@ -1,482 +0,0 @@
-/*
- * 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.
- */
-package org.exoplatform.services.organization;
-
-import org.apache.directory.server.core.configuration.MutablePartitionConfiguration;
-import org.apache.directory.server.unit.AbstractServerTest;
-import org.exoplatform.commons.utils.PageList;
-import org.exoplatform.container.StandaloneContainer;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.naming.directory.Attribute;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.BasicAttribute;
-import javax.naming.directory.BasicAttributes;
-
-/**
- * Created by The eXo Platform SAS Author : Hoa Pham
- * hoapham at exoplatform.com,phamvuxuanhoa at yahoo.com Oct 27, 2005
- */
-
- at SuppressWarnings("unchecked")
-public class TestOrganizationServiceWithApacheDS extends AbstractServerTest
-{
-
-   static String GroupParent = "GroupParent";
-
-   static String Group1 = "Group1";
-
-   static String Group2 = "Group2";
-
-   static String Benj = "Benj";
-
-   static String Tuan = "Tuan";
-
-   static String TestMembershipType1 = "TestMembership1";
-
-   static String TestMembershipType2 = "TestMembership2";
-
-   static String TestMembershipType3 = "TestMembership3";
-
-   OrganizationService service_;
-
-   UserHandler userHandler_;
-
-   UserProfileHandler profileHandler_;
-
-   GroupHandler groupHandler_;
-
-   MembershipTypeHandler mtHandler_;
-
-   MembershipHandler membershipHandler_;
-
-   boolean runtest = true;
-
-   public void setUp() throws Exception
-   {
-      if (!runtest)
-      {
-         return;
-      }
-
-      MutablePartitionConfiguration pcfg = new MutablePartitionConfiguration();
-
-      pcfg.setName("eXoTestPartition");
-      pcfg.setSuffix("dc=exoplatform,dc=org");
-
-      Set<String> indexedAttrs = new HashSet<String>();
-      indexedAttrs.add("objectClass");
-      indexedAttrs.add("o");
-      pcfg.setIndexedAttributes(indexedAttrs);
-
-      Attributes attrs = new BasicAttributes(true);
-      Attribute attr = new BasicAttribute("objectClass");
-      attr.add("top");
-      attr.add("organization");
-      attrs.put(attr);
-      attr = new BasicAttribute("o");
-      attr.add("eXoTestPartition");
-      attrs.put(attr);
-      pcfg.setContextEntry(attrs);
-      Set<MutablePartitionConfiguration> pcfgs = new HashSet<MutablePartitionConfiguration>();
-      pcfgs.add(pcfg);
-      configuration.setContextPartitionConfigurations(pcfgs);
-      File workingDirectory = new File("server-work");
-      configuration.setWorkingDirectory(workingDirectory);
-      super.setUp();
-
-      String containerConf =
-         TestOrganizationServiceWithApacheDS.class.getResource("/conf/standalone/test-configuration.xml").toString();
-      StandaloneContainer.addConfigurationURL(containerConf);
-      StandaloneContainer container = StandaloneContainer.getInstance();
-
-      service_ = (OrganizationService)container.getComponentInstanceOfType(OrganizationService.class);
-      userHandler_ = service_.getUserHandler();
-      profileHandler_ = service_.getUserProfileHandler();
-      groupHandler_ = service_.getGroupHandler();
-      mtHandler_ = service_.getMembershipTypeHandler();
-      membershipHandler_ = service_.getMembershipHandler();
-   }
-
-   public void tearDown() throws Exception
-   {
-      if (!runtest)
-      {
-         return;
-      }
-      mtHandler_.removeMembershipType(TestMembershipType1, true);
-      mtHandler_.removeMembershipType(TestMembershipType2, true);
-      mtHandler_.removeMembershipType(TestMembershipType3, true);
-
-      Group gr = groupHandler_.findGroupById("/" + Group1);
-      if (gr != null)
-      {
-         groupHandler_.removeGroup(gr, true);
-      }
-
-      gr = groupHandler_.findGroupById("/" + Group2);
-      if (gr != null)
-      {
-         groupHandler_.removeGroup(gr, true);
-      }
-
-      gr = groupHandler_.findGroupById("/" + GroupParent);
-      if (gr != null)
-      {
-         groupHandler_.removeGroup(gr, true);
-      }
-
-      userHandler_.removeUser(Benj, true);
-      userHandler_.removeUser(Tuan, true);
-   }
-
-   protected String getDescription()
-   {
-      if (!runtest)
-      {
-         return "";
-      }
-
-      return "Test hibernate organization service.";
-   }
-
-   public void testUserPageSize() throws Exception
-   {
-      if (!runtest)
-      {
-         return;
-      }
-
-      /* Create an user with UserName: test */
-      String USER = "test";
-      int s = 15;
-
-      for (int i = 0; i < s; i++)
-      {
-         createUser(USER + "_" + String.valueOf(i));
-      }
-
-      Query query = new Query();
-      PageList users = userHandler_.findUsers(query);
-      System.out.println("size: " + users.getAvailablePage());
-
-      System.out.println("\npage 1:");
-      List list = users.getPage(1);
-      System.out.println("size : " + list.size());
-      for (Object ele : list)
-      {
-         User u = (User)ele;
-         System.out.println(u.getUserName() + " and " + u.getEmail());
-      }
-      System.out.println("\n\n");
-      //
-      try
-      {
-         for (int i = 0; i < s; i++)
-            userHandler_.removeUser(USER + "_" + String.valueOf(i), true);
-      }
-      catch (Exception exp)
-      {
-         exp.printStackTrace();
-      }
-   }
-
-   public void testUser() throws Exception
-   {
-      /* Create an user with UserName: test */
-      String USER = "test";
-      User user = createUser(USER);
-
-      // authentication
-      user.setPassword("test");
-      userHandler_.saveUser(user, true);
-      assertTrue("Authentication failed ", userHandler_.authenticate(USER, "test"));
-
-      User u = userHandler_.findUserByName(USER);
-      assertTrue("Found user instance", u != null);
-      assertEquals("Expect user name is: ", USER, u.getUserName());
-
-      UserProfile up = profileHandler_.createUserProfileInstance(USER);
-      profileHandler_.saveUserProfile(up, true);
-
-      up = profileHandler_.findUserProfileByName(USER);
-      assertTrue("Expect user profile is found: ", profileHandler_.findUserProfileByName(USER) != null);
-
-      // Update user's information
-      u.setFirstName("Exo(Update)");
-      userHandler_.saveUser(u, false);
-      up.getUserInfoMap().put("user.gender", "male");
-      profileHandler_.saveUserProfile(up, true);
-      up = profileHandler_.findUserProfileByName(USER);
-      assertEquals("expect first name is", "Exo(Update)", u.getFirstName());
-      assertEquals("Expect profile is updated: user.gender is ", "male", up.getUserInfoMap().get("user.gender"));
-
-      // Remove a user: Expect result: user and it's profile will be removed
-      // NOTE >>>> FIX without listeners remove profile manually
-      userHandler_.removeUser(USER, true);
-      profileHandler_.removeUserProfile(USER, true);
-      assertEquals(null, userHandler_.findUserByName(USER));
-      assertTrue(profileHandler_.findUserProfileByName(USER) == null);
-   }
-
-   public void testGroup() throws Exception
-   {
-      if (!runtest)
-      {
-         return;
-      }
-
-      Group groupParent = groupHandler_.createGroupInstance();
-      groupParent.setGroupName(GroupParent);
-      groupParent.setDescription("This is description");
-      groupHandler_.addChild(null, groupParent, true);
-      assertTrue(((Group)groupParent).getId() != null);
-
-      groupParent = groupHandler_.findGroupById(groupParent.getId());
-      assertEquals(groupParent.getGroupName(), "GroupParent");
-
-      /* Create a child group with name: Group1 */
-      Group groupChild = groupHandler_.createGroupInstance();
-      groupChild.setGroupName(Group1);
-      groupHandler_.addChild(groupParent, groupChild, true);
-      groupChild = groupHandler_.findGroupById(groupChild.getId());
-      assertEquals(groupChild.getParentId(), groupParent.getId());
-      assertEquals("Expect group child's name is: ", Group1, groupChild.getGroupName());
-
-      /* Update groupChild's information */
-      groupChild.setLabel("GroupRenamed");
-      groupChild.setDescription("new description ");
-      groupHandler_.saveGroup(groupChild, true);
-      assertEquals(groupHandler_.findGroupById(groupChild.getId()).getLabel(), "GroupRenamed");
-
-      /* Create a group child with name is: Group2 */
-      groupChild = groupHandler_.createGroupInstance();
-      groupChild.setGroupName(Group2);
-      groupHandler_.addChild(groupParent, groupChild, true);
-      groupChild = groupHandler_.findGroupById(groupChild.getId());
-      assertEquals(groupChild.getParentId(), groupParent.getId());
-      assertEquals("Expect group child's name is: ", Group2, groupChild.getGroupName());
-
-      Collection groups = groupHandler_.findGroups(groupParent);
-      assertEquals("Expect number of child group in parent group is: ", 2, groups.size());
-      Object arraygroups[] = groups.toArray();
-      assertEquals("Expect child group's name is: ", Group1, ((Group)arraygroups[0]).getGroupName());
-      assertEquals("Expect child group's name is: ", Group2, ((Group)arraygroups[1]).getGroupName());
-
-      groupHandler_.removeGroup(groupHandler_.findGroupById("/" + GroupParent + "/" + Group1), true);
-      assertEquals("Expect child group has been removed: ", null, groupHandler_.findGroupById("/" + Group1));
-      assertEquals("Expect only 1 child group in parent group", 1, groupHandler_.findGroups(groupParent).size());
-
-      groupHandler_.removeGroup(groupParent, true);
-      assertEquals("Expect ParentGroup is removed:", null, groupHandler_.findGroupById(groupParent.getId()));
-      assertEquals("Expect all child group is removed: ", 0, groupHandler_.findGroups(groupParent).size());
-   }
-
-   public void testMembershipType() throws Exception
-   {
-      if (!runtest)
-      {
-         return;
-      }
-
-      int bmn = mtHandler_.findMembershipTypes().size();
-
-      MembershipType mt = mtHandler_.createMembershipTypeInstance();
-      mt.setName(TestMembershipType1);
-      mt.setDescription("This is a test");
-      mt.setOwner("exo");
-      mtHandler_.createMembershipType(mt, true);
-      assertEquals("Expect mebershiptype is:", TestMembershipType1, mtHandler_.findMembershipType(TestMembershipType1)
-         .getName());
-
-      String desc = "This is a test (update)";
-      mt.setDescription(desc);
-      mtHandler_.saveMembershipType(mt, true);
-      assertEquals("Expect membershiptype's description", desc, mtHandler_.findMembershipType(TestMembershipType1)
-         .getDescription());
-
-      mt = mtHandler_.createMembershipTypeInstance();
-      mt.setName(TestMembershipType2);
-      mt.setOwner("exo");
-      mtHandler_.createMembershipType(mt, true);
-
-      Collection ms = mtHandler_.findMembershipTypes();
-      assertEquals("Expect " + (bmn + 2) + " membership in collection: ", bmn + 2, ms.size());
-
-      mtHandler_.removeMembershipType(TestMembershipType1, true);
-      assertEquals("Membership type has been removed:", null, mtHandler_.findMembershipType(TestMembershipType1));
-      assertEquals("Expect " + (bmn + 1) + " membership in collection(1 is default): ", bmn + 1, mtHandler_
-         .findMembershipTypes().size());
-
-      mtHandler_.removeMembershipType(TestMembershipType2, true);
-      assertEquals("Membership type has been removed:", null, mtHandler_.findMembershipType(TestMembershipType2));
-      assertEquals("Expect  " + bmn + "  membership in collection(default type): ", bmn, mtHandler_
-         .findMembershipTypes().size());
-
-   }
-
-   public void testMembership() throws Exception
-   {
-      if (!runtest)
-      {
-         return;
-      }
-
-      User user = createUser(Benj);
-      User user2 = createUser(Tuan);
-
-      Group group1 = groupHandler_.createGroupInstance();
-      group1.setGroupName(Group1);
-      groupHandler_.addChild(null, group1, true);
-
-      Group group2 = groupHandler_.createGroupInstance();
-      group2.setGroupName(Group2);
-      groupHandler_.addChild(null, group2, true);
-
-      MembershipType mt1 = mtHandler_.createMembershipTypeInstance();
-      mt1.setName(TestMembershipType1);
-      mtHandler_.createMembershipType(mt1, true);
-
-      membershipHandler_.linkMembership(user, groupHandler_.findGroupById("/" + Group1), mt1, true);
-      membershipHandler_.linkMembership(user, groupHandler_.findGroupById("/" + Group2), mt1, true);
-      membershipHandler_.linkMembership(user2, groupHandler_.findGroupById("/" + Group2), mt1, true);
-
-      MembershipType mt2 = mtHandler_.createMembershipTypeInstance();
-      mt2.setName(TestMembershipType2);
-      mtHandler_.createMembershipType(mt2, true);
-      membershipHandler_.linkMembership(user, groupHandler_.findGroupById("/" + Group2), mt2, true);
-
-      MembershipType mt3 = mtHandler_.createMembershipTypeInstance();
-      mt3.setName(TestMembershipType3);
-      mtHandler_.createMembershipType(mt3, true);
-      membershipHandler_.linkMembership(user, groupHandler_.findGroupById("/" + Group2), mt3, true);
-
-      System.out.println(" --------- find memberships by group -------------");
-      Collection<Membership> mems =
-         membershipHandler_.findMembershipsByGroup(groupHandler_.findGroupById("/" + Group2));
-      assertEquals("Expect number of membership in group 2 is: ", 4, mems.size());
-      for (Membership m : mems)
-      {
-         System.out.println(m);
-      }
-
-      System.out.println(" --------- find memberships by user and group--------------");
-      mems = membershipHandler_.findMembershipsByUserAndGroup(Benj, "/" + Group2);
-      assertEquals("Expect number of membership in " + Group2 + " relate with benj is: ", 3, mems.size());
-      for (Membership m : mems)
-      {
-         System.out.println(m);
-      }
-
-      System.out.println(" --------- find memberships by user-------------");
-      mems = membershipHandler_.findMembershipsByUser(Benj);
-      assertEquals("expect membership is: ", 4, mems.size());
-      for (Membership m : mems)
-      {
-         System.out.println(m);
-      }
-
-      System.out.println("---------- find membership by User, Group and Type-----------");
-      Membership membership =
-         membershipHandler_.findMembershipByUserGroupAndType(Benj, "/" + Group2, TestMembershipType1);
-      assertTrue("Expect membership is found:", membership != null);
-      assertEquals("Expect membership type is: ", TestMembershipType1, membership.getMembershipType());
-      assertEquals("Expect groupId of this membership is: ", "/" + Group2, membership.getGroupId());
-      assertEquals("Expect user of this membership is: ", Benj, membership.getUserName());
-
-      System.out.println(" --------- find groups by user -------------");
-      Collection<Group> groups = groupHandler_.findGroupsOfUser(Benj);
-      assertEquals("expect group is: ", 2, groups.size());
-      for (Group g : groups)
-      {
-         System.out.println(g);
-      }
-
-      System.out.println("---------- find group of a user by membership-----------");
-      groups = groupHandler_.findGroupByMembership(Benj, TestMembershipType1);
-      assertEquals("expect group is: ", 2, groups.size());
-      for (Group g : groups)
-      {
-         System.out.println(g);
-      }
-
-      System.out.println("----------------- removed a membership ---------------------");
-      String memId =
-         membershipHandler_.findMembershipByUserGroupAndType(Benj, "/" + Group2, TestMembershipType3).getId();
-      for (Group g : groups)
-      {
-         System.out.println(g);
-      }
-      membershipHandler_.removeMembership(memId, true);
-      assertTrue("Membership was removed: ",
-         membershipHandler_.findMembershipByUserGroupAndType(Benj, "/" + Group2, TestMembershipType3) == null);
-      for (Group g : groups)
-      {
-         System.out.println(g);
-      }
-
-      System.out.println("----------------- removed a user----------------------");
-      userHandler_.removeUser(Tuan, true);
-      assertTrue("This user was removed", userHandler_.findUserByName(Tuan) == null);
-      mems = membershipHandler_.findMembershipsByUser(Tuan);
-      assertTrue("All membership related with this user was removed:", mems.isEmpty());
-
-      System.out.println("----------------- removed a group------------");
-      groupHandler_.removeGroup(groupHandler_.findGroupById("/" + Group1), true);
-      assertTrue("This group was removed", groupHandler_.findGroupById("/" + Group1) == null);
-
-      System.out.println("----------------- removed a membershipType------------");
-      mtHandler_.removeMembershipType(TestMembershipType1, true);
-      assertTrue("This membershipType was removed: ", mtHandler_.findMembershipType(TestMembershipType1) == null);
-      // Check all memberships associate with all groups
-      // to guarantee that no membership associate with removed membershipType
-      groups = groupHandler_.findGroups(groupHandler_.findGroupById("/"));
-      for (Group g : groups)
-      {
-         mems = membershipHandler_.findMembershipsByGroup(g);
-         for (Membership m : mems)
-         {
-            assertFalse("MembershipType of this membership is not: " + TestMembershipType1, m.getMembershipType()
-               .equalsIgnoreCase(TestMembershipType1));
-         }
-      }
-
-   }
-
-   public User createUser(String userName) throws Exception
-   {
-      User user = userHandler_.findUserByName(userName);
-      if (user != null)
-      {
-         return user;
-      }
-      user = userHandler_.createUserInstance(userName);
-      user.setPassword("default");
-      user.setFirstName("default");
-      user.setLastName("default");
-      user.setEmail("exo at exoportal.org");
-      userHandler_.createUser(user, true);
-      return user;
-   }
-}

Modified: core/trunk/exo.core.component.organization.ldap/src/test/resources/test.policy
===================================================================
--- core/trunk/exo.core.component.organization.ldap/src/test/resources/test.policy	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.ldap/src/test/resources/test.policy	2011-10-04 09:03:41 UTC (rev 5016)
@@ -25,5 +25,9 @@
    permission java.security.AllPermission;
 };
 
+grant codeBase "@MAIN_CLASSES at ../../../exo.core.component.organization.ldap/-"{
+   permission java.security.AllPermission;
+};
 
 
+

Modified: core/trunk/exo.core.component.organization.tests/src/main/java/org/exoplatform/services/tck/organization/AbstractOrganizationServiceTest.java
===================================================================
--- core/trunk/exo.core.component.organization.tests/src/main/java/org/exoplatform/services/tck/organization/AbstractOrganizationServiceTest.java	2011-10-04 08:21:04 UTC (rev 5015)
+++ core/trunk/exo.core.component.organization.tests/src/main/java/org/exoplatform/services/tck/organization/AbstractOrganizationServiceTest.java	2011-10-04 09:03:41 UTC (rev 5016)
@@ -93,7 +93,14 @@
    {
       super.setUp();
 
-      String containerConf = getClass().getResource("/conf/standalone/test-configuration.xml").toString();
+      
+      String configPath = System.getProperty("orgservice.test.configuration.file");
+      if (configPath == null)
+      {
+         configPath = "/conf/standalone/test-configuration.xml"; 
+      }
+      
+      String containerConf = getClass().getResource(configPath).toString();
 
       StandaloneContainer.addConfigurationURL(containerConf);
       container = StandaloneContainer.getInstance();



More information about the exo-jcr-commits mailing list