Author: gk
Date: Mon Dec 21 12:56:47 2020
New Revision: 1884679

URL: http://svn.apache.org/viewvc?rev=1884679&view=rev
Log:
- add javadoc configuration parameters to allow build with java higher than 8 
and fix javadoc
- added required interfaces TurbineRolePermissionPeerMapper and 
TurbineUserGroupRoleModelPeerMapper in fulcrum-turbine-schema.xml, requires in 
generated test classes with custom javaname in 
schema/fulcrum-turbine-schema.xml method redirections.
- changes due to Torque 5 in security torque
- removed one abstract class and duplicated test code for different settings in 
TurbineUserManagerTest.java and TurbineUserManagerWithDefaultPeerLazyTest.java
- indentation formatting of pom xml

Added:
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePermission.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRole.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRolePeerImpl.java
    
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerWithDefaultPeerLazyTest.java
Removed:
    
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/AbstractTurbineUserManagerTest.java
    
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerDefaultPeerLazyTest.java
Modified:
    turbine/fulcrum/trunk/security/api/pom.xml
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicUser.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbinePermission.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingEvent.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingListener.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractRoleManager.java
    turbine/fulcrum/trunk/security/pom.xml
    turbine/fulcrum/trunk/security/torque/pom.xml
    turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml
    
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java

Modified: turbine/fulcrum/trunk/security/api/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/pom.xml?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/api/pom.xml (original)
+++ turbine/fulcrum/trunk/security/api/pom.xml Mon Dec 21 12:56:47 2020
@@ -35,12 +35,12 @@
     </scm>
 
     <dependencies>
-    
-               <dependency>
-                   <groupId>org.apache.commons</groupId>
-                   <artifactId>commons-lang3</artifactId>
-                   <version>3.9</version>
-               </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.9</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.avalon.framework</groupId>
             <artifactId>avalon-framework-api</artifactId>
@@ -52,12 +52,12 @@
             <version>1.0.8</version>
         </dependency>
         <!-- testing dependencies -->
-               <dependency>
-                   <groupId>javax.servlet</groupId>
-                   <artifactId>javax.servlet-api</artifactId>
-                   <version>3.1.0</version>
-                   <scope>test</scope>
-               </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>org.apache.fulcrum</groupId>
             <artifactId>fulcrum-testcontainer</artifactId>

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/GroupManager.java
 Mon Dec 21 12:56:47 2020
@@ -51,6 +51,7 @@ public interface GroupManager extends Se
      * This method calls getGroupClass, and then creates a new object using the
      * default constructor.
      *
+     * @param <T>
      * @return an object implementing Group interface.
      * @throws DataBackendException
      *             if the object could not be instantiated.
@@ -74,7 +75,8 @@ public interface GroupManager extends Se
 
     /**
      * Retrieve a Group object with specified name.
-     *
+     * 
+     * @param <T>
      * @param name
      *            the name of the Group.
      * @return an object representing the Group with specified name.
@@ -88,6 +90,7 @@ public interface GroupManager extends Se
     /**
      * Retrieve a Group object with specified Id.
      *
+     * @param <T> Group type
      * @param id
      *            the Id of the Group.
      *
@@ -129,6 +132,7 @@ public interface GroupManager extends Se
     /**
      * Creates a new group with specified attributes.
      *
+     * @param <T>
      * @param group
      *            the object describing the group to be created.
      * @return the new Group object.

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/PermissionManager.java
 Mon Dec 21 12:56:47 2020
@@ -51,6 +51,7 @@ public interface PermissionManager exten
      * This method calls getPermissionClass, and then creates a new object 
using
      * the default constructor.
      *
+     * @param <T>
      * @return an object implementing Permission interface.
      * @throws DataBackendException
      *                                 if there was an error accessing the 
data backend. 
@@ -62,7 +63,8 @@ public interface PermissionManager exten
      *
      * This method calls getPermissionClass, and then creates a new object 
using
      * the default constructor.
-     *
+     * 
+     * @param <T>
      * @param permName
      *            The name of the Permission
      *
@@ -74,7 +76,8 @@ public interface PermissionManager exten
 
     /**
      * Retrieve a Permission object with specified name.
-     *
+     * 
+     * @param <T>
      * @param name
      *            the name of the Permission.
      * @return an object representing the Permission with specified name.
@@ -87,6 +90,8 @@ public interface PermissionManager exten
 
     /**
      * Retrieve a Permission object with specified Id.
+     * 
+     * @param <T>
      *
      * @param id
      *            the Id of the Permission.

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/RoleManager.java
 Mon Dec 21 12:56:47 2020
@@ -61,6 +61,7 @@ public interface RoleManager extends Ser
      * This method calls getRoleClass, and then creates a new object using the
      * default constructor.
      *
+     * @param <T> Role
      * @param roleName
      *            The name of the Role
      *
@@ -73,6 +74,7 @@ public interface RoleManager extends Ser
     /**
      * Retrieve a Role object with specified name.
      *
+     * @param <T> Role
      * @param name
      *            the name of the Role.
      * @return an object representing the Role with specified name.
@@ -86,6 +88,7 @@ public interface RoleManager extends Ser
     /**
      * Retrieve a Role object with specified Id.
      *
+     * @param <T> Role
      * @param id
      *            the Id of the Role.
      *
@@ -110,6 +113,8 @@ public interface RoleManager extends Ser
     /**
      * Creates a new role with specified attributes.
      *
+     * @param <T> Role
+     * 
      * @param role
      *            The object describing the role to be created.
      * @return the new Role object.

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/SecurityService.java
 Mon Dec 21 12:56:47 2020
@@ -70,6 +70,7 @@ public interface SecurityService
      * Returns the configured ModelManager object that can then be casted to 
the
      * specific model.
      *
+     * @param <T> ModelManager
      * @return An ModelManager object
      */
     <T extends ModelManager> T getModelManager();

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/UserManager.java
 Mon Dec 21 12:56:47 2020
@@ -53,6 +53,7 @@ public interface UserManager extends Ser
      * This method calls getUserClass, and then creates a new object using the
      * default constructor.
      *
+     * @param <T> User
      * @return an object implementing User interface.
      * @throws DataBackendException
      *             if the object could not be instantiated.
@@ -65,6 +66,7 @@ public interface UserManager extends Ser
      * This method calls getUserClass, and then creates a new object using the
      * default constructor.
      *
+     * @param <T> User
      * @param userName
      *            The name of the user.
      *
@@ -101,6 +103,7 @@ public interface UserManager extends Ser
     /**
      * Retrieve a user from persistent storage using username as the key.
      *
+     * @param <T> User
      * @param username
      *            the name of the user.
      * @return an User object.
@@ -114,6 +117,7 @@ public interface UserManager extends Ser
     /**
      * Retrieve a user from persistent storage using the id as the key.
      *
+     * @param <T> User
      * @param id
      *            the id of the user.
      * @return an User object.
@@ -129,6 +133,7 @@ public interface UserManager extends Ser
      * authenticate the user. The implementation may chose to authenticate to
      * the server as the user whose data is being retrieved.
      *
+     * @param <T> User
      * @param username
      *            the name of the user.
      * @param password
@@ -254,6 +259,7 @@ public interface UserManager extends Ser
      * Return a Class object representing the system's chosen implementation of
      * of ACL interface.
      * 
+     * @param <T> AccessControlList
      * @param user the user
      * @return systems's chosen implementation of ACL interface.
      * @throws UnknownEntityException

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicUser.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicUser.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicUser.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/dynamic/entity/DynamicUser.java
 Mon Dec 21 12:56:47 2020
@@ -41,6 +41,7 @@ public interface DynamicUser extends Bas
     /**
      * Get the set of delegatees for this user
      * 
+     * @param <T>
      * @return Returns the delegatees.
      */
     public <T extends User> Set<T> getDelegatees();
@@ -56,6 +57,7 @@ public interface DynamicUser extends Bas
     /**
      * Get the set of delegators for this user
      * 
+     * @param <T>
      * @return Returns the delegators.
      */
     public <T extends User> Set<T> getDelegators();

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbinePermission.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbinePermission.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbinePermission.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbinePermission.java
 Mon Dec 21 12:56:47 2020
@@ -78,6 +78,7 @@ public interface TurbinePermission exten
     /**
      * Get the roles that this permission belongs to as Set
      * 
+     * @param <T> 
      * @return a set of roles
      */
     public <T extends Role> Set<T> getRolesAsSet();

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/model/turbine/entity/TurbineUserGroupRoleEntity.java
 Mon Dec 21 12:56:47 2020
@@ -35,7 +35,8 @@ public interface TurbineUserGroupRoleEnt
 
        /**
         * Get the User/Group/Role set associated with this entity
-        *
+        * 
+        * @param <T> TurbineUserGroupRole
         * @return a set of User/Group/Role relations
         * @throws DataBackendException generic exception
         */

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingEvent.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingEvent.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingEvent.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingEvent.java
 Mon Dec 21 12:56:47 2020
@@ -1,5 +1,6 @@
 package org.apache.fulcrum.security.session;
 
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -21,7 +22,7 @@ package org.apache.fulcrum.security.sess
 
 /**
  * This interface is modelled after
- * {@link javax.servlet.http.HttpSessionBindingEvent}.
+ * javax.servlet.http.HttpSessionBindingListener.
  * 
  * @author <a href="mailto:[email protected]";>Daniel Rall</a>
  * @version $Id$

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingListener.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingListener.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingListener.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/session/SessionBindingListener.java
 Mon Dec 21 12:56:47 2020
@@ -1,5 +1,6 @@
 package org.apache.fulcrum.security.session;
 
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -21,7 +22,7 @@ package org.apache.fulcrum.security.sess
 
 /**
  * This interface is modelled after
- * {@link javax.servlet.http.HttpSessionBindingListener}.
+ * javax.servlet.http.HttpSessionBindingListener.
  * 
  * @author <a href="mailto:[email protected]";>Daniel Rall</a>
  * @version $Id$

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractRoleManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractRoleManager.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractRoleManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractRoleManager.java
 Mon Dec 21 12:56:47 2020
@@ -39,6 +39,7 @@ public abstract class AbstractRoleManage
        private static final long serialVersionUID = 1L;
 
        /**
+        * @param <T>
         * @param role to persist
         * @return the Role object
         * @throws DataBackendException if fail to connect to datasource
@@ -51,6 +52,7 @@ public abstract class AbstractRoleManage
      * This method calls getRoleClass, and then creates a new object using the
      * default constructor.
      *
+     * @param <T>
      * @return an object implementing Role interface.
      * @throws DataBackendException
      *             if the object could not be instantiated.
@@ -75,6 +77,8 @@ public abstract class AbstractRoleManage
      *
      * This method calls getRoleClass, and then creates a new object using the
      * default constructor.
+     * 
+     * @param <T>
      *
      * @param roleName
      *            The name of the role.
@@ -96,6 +100,8 @@ public abstract class AbstractRoleManage
      * Retrieve a Role object with specified name.
      *
      * @see 
org.apache.fulcrum.security.RoleManager#getRoleByName(java.lang.String)
+     * 
+     * @param <T>
      *
      * @param name
      *            the name of the Role.
@@ -120,6 +126,8 @@ public abstract class AbstractRoleManage
 
     /**
      * Retrieve a Role object with specified Id.
+     * 
+     * @param <T>
      *
      * @param id
      *            the ID of the Role.
@@ -145,6 +153,8 @@ public abstract class AbstractRoleManage
 
     /**
      * Creates a new role with specified attributes.
+     * 
+     * @param <T>
      *
      * @param role
      *            the object describing the role to be created.

Modified: turbine/fulcrum/trunk/security/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/pom.xml?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/pom.xml (original)
+++ turbine/fulcrum/trunk/security/pom.xml Mon Dec 21 12:56:47 2020
@@ -146,6 +146,14 @@
                 <tryUpdate>false</tryUpdate>
               </configuration>
             </plugin>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-javadoc-plugin</artifactId>
+              <configuration>
+                <source>1.8</source>
+                <detectJavaApiLink>false</detectJavaApiLink>
+              </configuration>
+            </plugin>
         </plugins>
     </build>
 
@@ -182,6 +190,10 @@
                </reports>          
               </reportSet>
            </reportSets>
+           <configuration>
+                 <source>1.8</source>
+                 <detectJavaApiLink>false</detectJavaApiLink>
+            </configuration>
         </plugin>
     </plugins>
    </reporting>

Modified: turbine/fulcrum/trunk/security/torque/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/pom.xml?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/torque/pom.xml (original)
+++ turbine/fulcrum/trunk/security/torque/pom.xml Mon Dec 21 12:56:47 2020
@@ -10,431 +10,432 @@
        OF ANY KIND, either express or implied. See the License for the 
specific 
        language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-       <parent>
-               <artifactId>fulcrum-security</artifactId>
-               <groupId>org.apache.fulcrum</groupId>
-               <version>2.0.0-SNAPSHOT</version>
-               <relativePath>../pom.xml</relativePath>
-       </parent>
-       <modelVersion>4.0.0</modelVersion>
-       <artifactId>fulcrum-security-torque</artifactId>
-       <name>Fulcrum Security Torque Impl</name>
-       <description>
+    <parent>
+        <artifactId>fulcrum-security</artifactId>
+        <groupId>org.apache.fulcrum</groupId>
+        <version>2.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>fulcrum-security-torque</artifactId>
+    <name>Fulcrum Security Torque Impl</name>
+    <description>
     Fulcrum Security Torque Impl is an implementation of the Fulcrum Security 
API
     that uses Apache DB Torque as a database backend.
-  </description>
-       
<url>http://turbine.apache.org/fulcrum/fulcrum-security/fulcrum-security-torque</url>
-       <scm>
-               
<connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/security/torque/</connection>
-               
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/security/torque/</developerConnection>
-               
<url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/</url>
-       </scm>
-
-       <properties>
-               
<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
-               <maven.compiler.source>1.8</maven.compiler.source>
-               <maven.compiler.target>1.8</maven.compiler.target>
-
-               <!-- Easy update of torque libs -->
-               <torque.version>5.0</torque.version>
-               <torque.om>org.apache.fulcrum.security.torque.om</torque.om>
-               
<torque.om.path>org/apache/fulcrum/security/torque/om</torque.om.path>
-       </properties>
-       <build>
-               <sourceDirectory>src/java</sourceDirectory>
-               <testSourceDirectory>src/test</testSourceDirectory>
-               <testResources>
-                       <testResource>
-                               
<directory>${project.basedir}/src/test</directory>
-                       </testResource>
-               </testResources>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-surefire-plugin</artifactId>
-                               <configuration>
-                                       <!--default setting is 
forkCount=1/reuseForks=true -->
-                                       <reuseForks>false</reuseForks>
-                                       <forkCount>1</forkCount>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.apache.maven.plugins</groupId>
-                               <artifactId>maven-javadoc-plugin</artifactId>
-                               <configuration>
-                               
-                                       <!--  TODO : figure out why javadoc 
warnings are not ignored
-                                               as this is breaking mvn site 
generation 
-                                               The only 'warnings' that remain 
and are serious are coming from
-                                               the OM generated classes
-                                       -->
-                                       
-                                       <!--  worked on torque, but not here? 
-->
-                                       <doclint>none</doclint>
-                                       
-                                       <!--  exclude generated sources for now 
(only works when running mvn javadoc:javadoc, but not with mvn site? -->
-                                       
<excludePackageNames>org.apache.fulcrum.security.torque.om*</excludePackageNames>
-                                       
-                               </configuration>
-                       </plugin>
-
-
-               </plugins>
-       </build>
-
-        <reporting>
-           <plugins>
-             <plugin>
-               <groupId>org.apache.maven.plugins</groupId>
-               <artifactId>maven-javadoc-plugin</artifactId>
-               <version>3.2.0</version>
-               <configuration>
-                 <show>public</show>
-               </configuration>
-             </plugin>
-           </plugins>
-         </reporting>
-  
-
-       <dependencies>
-               <dependency>
-                       <groupId>org.apache.fulcrum</groupId>
-                       <artifactId>fulcrum-security-api</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.torque</groupId>
-                       <artifactId>torque-runtime</artifactId>
-                       <version>${torque.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.fulcrum</groupId>
-                       <artifactId>fulcrum-security-api</artifactId>
-                       <type>test-jar</type>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.hsqldb</groupId>
-                       <artifactId>hsqldb</artifactId>
-                       <version>2.5.1</version>
-                       <!--version>1.8.0.10</version-->
-                       <scope>test</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>commons-dbcp</groupId>
-                       <artifactId>commons-dbcp</artifactId>
-                       <version>1.4</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.commons</groupId>
-                       <artifactId>commons-dbcp2</artifactId>
-                       <version>2.8.0</version>
-               </dependency>
-
-               <!-- testing dependencies -->
-               <dependency>
-                       <groupId>javax.servlet</groupId>
-                       <artifactId>javax.servlet-api</artifactId>
-                       <version>3.1.0</version>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.fulcrum</groupId>
-                       <artifactId>fulcrum-testcontainer</artifactId>
-                       <scope>test</scope>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.fulcrum</groupId>
-                       <artifactId>fulcrum-yaafi</artifactId>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
-
-       <profiles>
-               <profile>
-                       <id>torque-generate-off</id>
-               </profile>
-               <profile>
-                       <id>torque-generate</id>
-                       <activation>
-                               <activeByDefault>true</activeByDefault>
-                       </activation>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>org.apache.torque</groupId>
-                                               
<artifactId>torque-maven-plugin</artifactId>
-                                               
<version>${torque.version}</version>
-                                               <executions>
-                                                       <execution>
-                                                               
<id>torque-om</id>
-                                                               
<phase>generate-sources</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.om</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>mysql</torque.database>
-                                                                               
<torque.om.package>${torque.om}</torque.om.package>
-                                                                               
<torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods>
-                                                                               
<torque.om.save.saveException>TorqueException</torque.om.save.saveException>
-                                                                               
<torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters>
-                                                                       
</options>
-                                                                       
<outputDirMap>
-                                                                               
<modifiable>${project.build.sourceDirectory}</modifiable>
-                                                                       
</outputDirMap>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-sql-mysql</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.sql</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mysql</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>mysql</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-sql-hsqldb</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.sql</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/hsqldb</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>hsqldb</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-sql-derby</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.sql</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/derby</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>derby</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-sql-oracle</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.sql</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/oracle</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>oracle</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-sql-postgresql</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.sql</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/postgresql</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>postgresql</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-sql-mssql</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.sql</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mssql</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>mssql</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-
-                                                       <execution>
-                                                               
<id>torque-idtable-mysql</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.idtable</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mysql</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>mysql</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-idtable-hsqldb</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.idtable</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/hsqldb</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>hsqldb</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-idtable-derby</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.idtable</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/derby</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>derby</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-idtable-oracle</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.idtable</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/oracle</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>oracle</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-idtable-postgresql</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.idtable</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/postgresql</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>postgresql</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                                       <execution>
-                                                               
<id>torque-idtable-mssql</id>
-                                                               
<phase>package</phase>
-                                                               <goals>
-                                                                       
<goal>generate</goal>
-                                                               </goals>
-                                                               <configuration>
-                                                                       
<packaging>classpath</packaging>
-                                                                       
<configPackage>org.apache.torque.templates.idtable</configPackage>
-                                                                       
<sourceDir>${project.basedir}/schema</sourceDir>
-                                                                       
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mssql</defaultOutputDir>
-                                                                       
<defaultOutputDirUsage>none</defaultOutputDirUsage>
-                                                                       
<loglevel>error</loglevel>
-                                                                       
<options>
-                                                                               
<torque.database>mssql</torque.database>
-                                                                       
</options>
-                                                               </configuration>
-                                                       </execution>
-                                               </executions>
-                                               <dependencies>
-                                                       <dependency>
-                                                               
<groupId>org.apache.torque</groupId>
-                                                               
<artifactId>torque-templates</artifactId>
-                                                               
<version>${torque.version}</version>
-                                                       </dependency>
-                                               </dependencies>
-                                       </plugin>
-                                       <plugin><!-- clean up for 
torque-generate sources mysql -->
-                                               
<artifactId>maven-clean-plugin</artifactId>
-                                               <configuration>
-                                                       <filesets>
-                                                               <fileSet>
-                                                                       
<directory>${project.build.sourceDirectory}/${torque.om.path}</directory>
-                                                                       
<excludes><!-- no peer interface configurable in Torque 4.0 -->
-                                                                               
<exclude>TurbineUserPeerImpl.java</exclude>
-                                                                               
<exclude>TurbineGroupPeerImpl.java</exclude>
-                                                                               
<exclude>TurbineRolePeerImpl.java</exclude>
-                                                                               
<exclude>TurbinePermissionPeerImpl.java</exclude>
-                                                                               
<exclude>TurbineUserGroupRolePeerImpl.java</exclude>
-                                                                       
</excludes>
-                                                               </fileSet>
-                                                       </filesets>
-                                               </configuration>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-       </profiles>
+    </description>
+    
<url>http://turbine.apache.org/fulcrum/fulcrum-security/fulcrum-security-torque</url>
+    <scm>
+        
<connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/security/torque/</connection>
+        
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/security/torque/</developerConnection>
+        
<url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/</url>
+    </scm>
+
+    <properties>
+        <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+
+        <!-- Easy update of torque libs -->
+        <torque.version>5.0</torque.version>
+        <torque.om>org.apache.fulcrum.security.torque.om</torque.om>
+        <torque.om.path>org/apache/fulcrum/security/torque/om</torque.om.path>
+    </properties>
+    <build>
+        <sourceDirectory>src/java</sourceDirectory>
+        <testSourceDirectory>src/test</testSourceDirectory>
+        <testResources>
+            <testResource>
+                <directory>${project.basedir}/src/test</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                        <!--default setting is forkCount=1/reuseForks=true -->
+                        <reuseForks>false</reuseForks>
+                        <forkCount>1</forkCount>
+                   </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <!--  TODO : figure out why javadoc warnings are not 
ignored
+                        as this is breaking mvn site generation 
+                        The only 'warnings' that remain and are serious are 
coming from
+                        the OM generated classes
+                    -->
+                    <!--  worked on torque, but not here? -->
+                    <doclint>none</doclint>
+                    
+                    <!--  exclude generated sources for now (only works when 
running mvn javadoc:javadoc, but not with mvn site? -->
+                    
<excludePackageNames>org.apache.fulcrum.security.torque.om*</excludePackageNames>
+                    
+                </configuration>
+            </plugin>
+
+
+        </plugins>
+    </build>
+
+     <reporting>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>3.2.0</version>
+            <configuration>
+              <show>public</show>
+            </configuration>
+          </plugin>
+        </plugins>
+      </reporting>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.fulcrum</groupId>
+            <artifactId>fulcrum-security-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.torque</groupId>
+            <artifactId>torque-runtime</artifactId>
+            <version>${torque.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.fulcrum</groupId>
+            <artifactId>fulcrum-security-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <version>2.5.1</version>
+            <!--version>1.8.0.10</version-->
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-dbcp</groupId>
+            <artifactId>commons-dbcp</artifactId>
+            <version>1.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-dbcp2</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+
+        <!-- testing dependencies -->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>3.1.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.fulcrum</groupId>
+            <artifactId>fulcrum-testcontainer</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.fulcrum</groupId>
+            <artifactId>fulcrum-yaafi</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <profile>
+            <id>torque-generate-off</id>
+        </profile>
+        <profile>
+            <id>torque-generate</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.torque</groupId>
+                        <artifactId>torque-maven-plugin</artifactId>
+                        <version>${torque.version}</version>
+                        <executions>
+                            <execution>
+                                <id>torque-om</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.om</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>mysql</torque.database>
+                                        
<torque.om.package>${torque.om}</torque.om.package>
+                                        
<torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods>
+                                        
<torque.om.save.saveException>TorqueException</torque.om.save.saveException>
+                                        
<torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters>
+                                    </options>
+                                    <outputDirMap>
+                                        
<modifiable>${project.build.sourceDirectory}</modifiable>
+                                    </outputDirMap>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-sql-mysql</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.sql</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mysql</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>mysql</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-sql-hsqldb</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.sql</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/hsqldb</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>hsqldb</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-sql-derby</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.sql</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/derby</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>derby</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-sql-oracle</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.sql</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/oracle</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>oracle</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-sql-postgresql</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.sql</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/postgresql</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>postgresql</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-sql-mssql</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.sql</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mssql</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>mssql</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+
+                            <execution>
+                                <id>torque-idtable-mysql</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.idtable</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mysql</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>mysql</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-idtable-hsqldb</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.idtable</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/hsqldb</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>hsqldb</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-idtable-derby</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.idtable</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/derby</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>derby</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-idtable-oracle</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.idtable</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/oracle</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>oracle</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-idtable-postgresql</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.idtable</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/postgresql</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>postgresql</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>torque-idtable-mssql</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>generate</goal>
+                                </goals>
+                                <configuration>
+                                    <packaging>classpath</packaging>
+                                    
<configPackage>org.apache.torque.templates.idtable</configPackage>
+                                    
<sourceDir>${project.basedir}/schema</sourceDir>
+                                    
<defaultOutputDir>${project.build.directory}/generated-sql/torque/mssql</defaultOutputDir>
+                                    
<defaultOutputDirUsage>none</defaultOutputDirUsage>
+                                    <loglevel>error</loglevel>
+                                    <options>
+                                        
<torque.database>mssql</torque.database>
+                                    </options>
+                                </configuration>
+                            </execution>
+                        </executions>
+                        <dependencies>
+                            <dependency>
+                                <groupId>org.apache.torque</groupId>
+                                <artifactId>torque-templates</artifactId>
+                                <version>${torque.version}</version>
+                            </dependency>
+                        </dependencies>
+                    </plugin>
+                    <plugin><!-- clean up for torque-generate sources mysql -->
+                        <artifactId>maven-clean-plugin</artifactId>
+                        <configuration>
+                            <filesets>
+                                <fileSet>
+                                    
<directory>${project.build.sourceDirectory}/${torque.om.path}</directory>
+                                    <excludes><!-- no peer interface 
configurable in Torque 4.0 -->
+                                        
<exclude>TurbineUserPeerImpl.java</exclude>
+                                        
<exclude>TurbineGroupPeerImpl.java</exclude>
+                                        
<exclude>TurbineRolePeerImpl.java</exclude>
+                                        
<exclude>TurbinePermissionPeerImpl.java</exclude>
+                                        
<exclude>TurbineUserGroupRolePeerImpl.java</exclude>
+                                        
<exclude>TorqueTurbineUserGroupRolePeerImpl.java</exclude>
+                                        
<exclude>TorqueTurbineUserGroupRole.java</exclude>
+                                        
<exclude>TorqueTurbineRolePermission.java</exclude>
+                                    </excludes>
+                                </fileSet>
+                            </filesets>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>

Modified: 
turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml 
(original)
+++ turbine/fulcrum/trunk/security/torque/schema/fulcrum-turbine-schema.xml Mon 
Dec 21 12:56:47 2020
@@ -86,7 +86,8 @@
   </table>
 
   <!-- Turbine Security Model -->
-  <table name="TURBINE_ROLE_PERMISSION" javaName="TorqueTurbineRolePermission">
+  <table name="TURBINE_ROLE_PERMISSION" 
interface="org.apache.fulcrum.security.torque.peer.TurbineRolePermissionPeerMapper"
 
+  javaName="TorqueTurbineRolePermission">
     <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER" 
javaType="object"/>
     <column name="PERMISSION_ID" required="true" primaryKey="true" 
type="INTEGER" javaType="object"/>
 
@@ -99,7 +100,9 @@
     </foreign-key>
   </table>
 
-  <table name="TURBINE_USER_GROUP_ROLE" javaName="TorqueTurbineUserGroupRole">
+  <table name="TURBINE_USER_GROUP_ROLE" javaName="TorqueTurbineUserGroupRole" 
+  
interface="org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper"
+  
peerInterface="org.apache.fulcrum.security.torque.peer.TorqueTurbineUserGroupRolePeer">
     <column name="USER_ID" required="true" primaryKey="true" type="INTEGER" 
javaType="object"/>
     <column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER" 
javaType="object"/>
     <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER" 
javaType="object"/>

Added: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePermission.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePermission.java?rev=1884679&view=auto
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePermission.java
 (added)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineRolePermission.java
 Mon Dec 21 12:56:47 2020
@@ -0,0 +1,49 @@
+package org.apache.fulcrum.security.torque.om;
+
+import java.sql.Connection;
+
+import org.apache.fulcrum.security.entity.Permission;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.model.turbine.entity.TurbinePermission;
+import org.apache.torque.TorqueException;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Mon Dec 21 09:31:57 CET 2020]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements.  This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public  class TorqueTurbineRolePermission
+    extends 
org.apache.fulcrum.security.torque.om.BaseTorqueTurbineRolePermission
+    implements 
org.apache.fulcrum.security.torque.peer.TurbineRolePermissionPeerMapper
+{
+    /** Serial version */
+    private static final long serialVersionUID = 1608539517996L;
+
+       @Override
+       public Role getTurbineRole() throws TorqueException {
+               return getTorqueTurbineRole();
+       }
+
+       @Override
+       public Role getTurbineRole(Connection connection) throws 
TorqueException {
+               return  getTorqueTurbineRole(connection);
+       }
+
+       @Override
+       public Permission getTurbinePermission() throws TorqueException {
+               return  getTorqueTurbinePermission();
+       }
+
+       @Override
+       public TurbinePermission getTurbinePermission(Connection connection) 
throws TorqueException {
+               return  getTorqueTurbinePermission(connection);
+       }
+
+
+
+}

Added: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRole.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRole.java?rev=1884679&view=auto
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRole.java
 (added)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRole.java
 Mon Dec 21 12:56:47 2020
@@ -0,0 +1,59 @@
+package org.apache.fulcrum.security.torque.om;
+
+import java.sql.Connection;
+
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.entity.User;
+import org.apache.torque.TorqueException;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Mon Dec 21 09:31:58 CET 2020]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements.  This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public  class TorqueTurbineUserGroupRole
+    extends 
org.apache.fulcrum.security.torque.om.BaseTorqueTurbineUserGroupRole
+    implements 
org.apache.fulcrum.security.torque.peer.TurbineUserGroupRoleModelPeerMapper
+{
+    /** Serial version */
+    private static final long serialVersionUID = 1608539518006L;
+
+       @Override
+       public User getTurbineUser() throws TorqueException {
+               return  getTorqueTurbineUser();
+       }
+
+       @Override
+       public User getTurbineUser(Connection connection) throws 
TorqueException {
+               return  getTorqueTurbineUser(connection);
+       }
+
+       @Override
+       public Group getTurbineGroup() throws TorqueException {
+               return  getTorqueTurbineGroup();
+       }
+
+       @Override
+       public Group getTurbineGroup(Connection connection) throws 
TorqueException {
+               return  getTorqueTurbineGroup(connection);
+       }
+
+       @Override
+       public Role getTurbineRole() throws TorqueException {
+               return  getTorqueTurbineRole();
+       }
+
+       @Override
+       public Role getTurbineRole(Connection connection) throws 
TorqueException {
+               return  getTorqueTurbineRole(connection);
+       }
+
+
+
+}

Added: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRolePeerImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRolePeerImpl.java?rev=1884679&view=auto
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRolePeerImpl.java
 (added)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/om/TorqueTurbineUserGroupRolePeerImpl.java
 Mon Dec 21 12:56:47 2020
@@ -0,0 +1,33 @@
+package org.apache.fulcrum.security.torque.om;
+
+import java.sql.Connection;
+import java.util.List;
+
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+
+/**
+ * The skeleton for this class was autogenerated by Torque on:
+ *
+ * [Mon Dec 21 11:27:28 CET 2020]
+ *
+ * You should add additional methods to this class to meet the
+ * application requirements.  This class will only be generated as
+ * long as it does not already exist in the output directory.
+ */
+
+public class TorqueTurbineUserGroupRolePeerImpl
+    extends 
org.apache.fulcrum.security.torque.om.BaseTorqueTurbineUserGroupRolePeerImpl
+    implements 
org.apache.fulcrum.security.torque.peer.TorqueTurbineUserGroupRolePeer
+{
+    /** Serial version */
+    private static final long serialVersionUID = 1608546448609L;
+
+       @Override
+       public List doSelectJoinTurbineRole(Criteria criteria, Connection con) 
throws TorqueException {
+               return doSelectJoinTorqueTurbineRole(criteria, con);
+       }
+
+
+
+}

Modified: 
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java?rev=1884679&r1=1884678&r2=1884679&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/test/org/apache/fulcrum/security/torque/turbine/TurbineUserManagerTest.java
 Mon Dec 21 12:56:47 2020
@@ -1,4 +1,5 @@
 package org.apache.fulcrum.security.torque.turbine;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,12 +19,26 @@ package org.apache.fulcrum.security.torq
  * under the License.
  */
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
 import java.sql.Connection;
 import java.sql.SQLException;
 
 import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.UserManager;
+import org.apache.fulcrum.security.acl.AccessControlList;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.entity.User;
+import org.apache.fulcrum.security.model.turbine.TurbineAccessControlList;
+import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
 import org.apache.fulcrum.security.torque.HsqlDB;
 import org.apache.fulcrum.security.torque.om.TorqueTurbineGroupPeer;
 import org.apache.fulcrum.security.torque.om.TorqueTurbinePermissionPeer;
@@ -31,11 +46,19 @@ import org.apache.fulcrum.security.torqu
 import org.apache.fulcrum.security.torque.om.TorqueTurbineRolePermissionPeer;
 import org.apache.fulcrum.security.torque.om.TorqueTurbineUserGroupRolePeer;
 import org.apache.fulcrum.security.torque.om.TorqueTurbineUserPeer;
+import org.apache.fulcrum.security.util.EntityExistsException;
+import org.apache.fulcrum.security.util.PasswordMismatchException;
+import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.fulcrum.security.util.UserSet;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.torque.TorqueException;
 import org.apache.torque.criteria.Criteria;
 import org.apache.torque.util.Transaction;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test user with attached object (user-role-goup relationship)
@@ -44,9 +67,27 @@ import org.junit.jupiter.api.BeforeEach;
  * @version $Id$
  */
 public class TurbineUserManagerTest
-    extends AbstractTurbineUserManagerTest
+    extends BaseUnit5Test
+   
 {
-    protected static HsqlDB hsqlDB = null;
+       
+    private User user;
+
+    private UserManager userManager;
+
+    private SecurityService securityService;
+
+    private static final String TEST_GROUP = "TEST_GROUP";
+
+    private static final String TEST_ROLE = "TEST_Role";
+
+    private Group group;
+
+    private Role role;
+    
+    private Logger logger = LogManager.getLogger();
+       
+       private static HsqlDB hsqlDB = null;
 
     @BeforeEach
     public void setUp()
@@ -77,6 +118,7 @@ public class TurbineUserManagerTest
         }
     }
 
+
     @AfterEach
     public void tearDown()
     {
@@ -132,5 +174,334 @@ public class TurbineUserManagerTest
         userManager = null;
         securityService = null;
     }
+   
+
+    // requires default user in setup
+    @Test
+    public void testCheckExists()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Philip" );
+        userManager.addUser( user, "bobo" );
+        addDefaultGrantUserGroupRole( user );
+
+        assertTrue( userManager.checkExists( "philip" ) );
+        assertTrue( userManager.checkExists( user ) );
+        assertFalse( userManager.checkExists( "ImaginaryFriend" ) );
+        user = userManager.getUserInstance( "ImaginaryFriend" );
+        assertFalse( userManager.checkExists( user ) );
+    }
+
+    @Test
+    public void testCheckExistsWithString()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Philip2" );
+        userManager.addUser( user, "bobo" );
+        addDefaultGrantUserGroupRole( user );
+
+        assertTrue( userManager.checkExists( "philip2" ) );
+        assertTrue( userManager.checkExists( user.getName() ) );
+        assertFalse( userManager.checkExists( "ImaginaryFriend2" ) );
+        user = userManager.getUserInstance( "ImaginaryFriend2" );
+        assertFalse( userManager.checkExists( user.getName() ) );
+    }
+
+    /*
+     * Class to test for User retrieve(String)
+     */
+    @Test
+    public void testGetUserString()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "QuietMike" );
+        userManager.addUser( user, "bobo" );
+        addDefaultGrantUserGroupRole( user );
+
+        user = userManager.getUser( "QuietMike" );
+        assertNotNull( user );
+    }
+
+    @Test
+    public void testGetUserById()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "QuietMike2" );
+        userManager.addUser( user, "bobo" );
+        User user2 = userManager.getUserById( user.getId() );
+        assertEquals( user.getName(), user2.getName() );
+        assertEquals( user.getId(), user2.getId() );
+    }
+
+    /*
+     * Class to test for User retrieve(String, String)
+     */
+    @Test
+    public void testGetUserStringString()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Richard" );
+        userManager.addUser( user, "va" );
+
+        addDefaultGrantUserGroupRole( user );
+
+        user = userManager.getUser( "Richard", "va" );
+        assertNotNull( user );
+        user = userManager.getUser( "richard", "va" );
+        assertNotNull( user );
+        try
+        {
+            user = userManager.getUser( "richard", "VA" );
+            fail( "should have thrown PasswordMismatchException" );
+        }
+        catch ( PasswordMismatchException pme )
+        {
+            // good
+        }
+    }
+
+    @Test
+    public void testGetAllUsers()
+        throws Exception
+    {
+        int size = userManager.getAllUsers().size();
+        user = userManager.getUserInstance( "Bob" );
+        userManager.addUser( user, "" );
+        addDefaultGrantUserGroupRole( user );
+
+        UserSet<User> userSet = userManager.getAllUsers();
+        assertEquals( size + 1, userSet.size() );
+    }
+
+    @Test
+    public void testAuthenticate()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Kay" );
+        userManager.addUser( user, "jc" );
+        addDefaultGrantUserGroupRole( user );
+        userManager.authenticate( user, "jc" );
+        try
+        {
+            userManager.authenticate( user, "JC" );
+            fail( "should have thrown PasswordMismatchException" );
+        }
+        catch ( PasswordMismatchException pme )
+        {
+            // good
+        }
+    }
+
+    @Test
+    public void testChangePassword()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Jonathan" );
+        userManager.addUser( user, "jc" );
+        addDefaultGrantUserGroupRole( user );
+        try
+        {
+            userManager.changePassword( user, "WrongPWD", "JC" );
+            fail( "should have thrown PasswordMismatchException" );
+        }
+        catch ( PasswordMismatchException pme )
+        {
+            // good
+        }
+        userManager.changePassword( user, "jc", "JC" );
+        userManager.authenticate( user, "JC" );
+    }
+
+    @Test
+    public void testForcePassword()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Connor" );
+        userManager.addUser( user, "jc_subset" );
+        addDefaultGrantUserGroupRole( user );
+
+        userManager.forcePassword( user, "JC_SUBSET" );
+        userManager.authenticate( user, "JC_SUBSET" );
+    }
+
+    /*
+     * Class to test for User getUserInstance()
+     */
+    @Test
+    public void testGetUserInstance()
+        throws Exception
+    {
+        user = userManager.getUserInstance();
+        assertNotNull( user );
+        assertTrue( user.getName() == null );
+    }
+
+    /*
+     * Class to test for User getUserInstance(String)
+     */
+    @Test
+    public void testGetUserInstanceString()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Philip" );
+        assertEquals( "philip", user.getName() );
+    }
+
+    /**
+     * Need to figure out if save is something we want.. right now it just 
bloes up if you actually change anything.
+     * 
+     * @todo figur out what to do here...
+     * @throws Exception
+     */
+    @Test
+    public void testSaveUser()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Kate" );
+        userManager.addUser( user, "katiedid" );
+
+        addDefaultGrantUserGroupRole( user );
+
+        user = userManager.getUser( user.getName() );
+        // user.setName("Katherine");
+        userManager.saveUser( user );
+        assertEquals( "kate", userManager.getUser( user.getName() ).getName() 
);
+    }
+
+    @Test
+    public void testGetACL()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Tony" );
+        userManager.addUser( user, "california" );
+        addDefaultGrantUserGroupRole( user );
+
+        AccessControlList acl = userManager.getACL( user );
+
+        assertNotNull( acl );
+
+        Role testRole = securityService.getRoleManager().getRoleByName( 
TEST_ROLE );
+        Group testGroup = securityService.getGroupManager().getGroupByName( 
TEST_GROUP );
+        assertTrue( ( (TurbineAccessControlList) acl ).hasRole( testRole, 
testGroup ) );
+
+        Group globalGroup = securityService.<TurbineModelManager> 
getModelManager().getGlobalGroup();
+        securityService.<TurbineModelManager> getModelManager().grant( user, 
globalGroup, testRole );
+        // immutable
+        acl = userManager.getACL( user );
+
+        assertTrue( ( (TurbineAccessControlList) acl ).hasRole( testRole ) );
+    }
+
+    @Test
+    public void testRemoveUser()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Rick" );
+        userManager.addUser( user, "nb" );
+        addDefaultGrantUserGroupRole( user );
+        // required
+        revokeDefaultGrantUserGroupRole( user );
+        userManager.removeUser( user );
+        try
+        {
+            User user2 = userManager.getUser( user.getName() );
+            fail( "Should have thrown UEE" );
+        }
+        catch ( UnknownEntityException uee )
+        {
+            // good
+        }
+    }
+
+    @Test
+    public void testAddUser()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "Joe1" );
+        assertNull( user.getId() );
+        userManager.addUser( user, "mc" );
+        addDefaultGrantUserGroupRole( user );
+        user = userManager.getUserInstance( "Joe2" );
+        assertNull( user.getId() );
+        userManager.addUser( user, "mc" );
+        assertNotNull( user.getId() );
+        assertNotNull( userManager.getUser( user.getName() ) );
+    }
+
+    /*
+     * Class to test for boolean checkExists(string)
+     */
+    public void testAddUserTwiceFails()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "EATLUNCH" );
+        userManager.addUser( user, "bob" );
+        addDefaultGrantUserGroupRole( user );
+        assertTrue( userManager.checkExists( user.getName() ) );
+        User user2 = userManager.getUserInstance( "EATLUNCH" );
+        try
+        {
+            userManager.addUser( user2, "bob" );
+        }
+        catch ( EntityExistsException uee )
+        {
+            // good
+        }
+        try
+        {
+            userManager.addUser( user2, "differentpassword" );
+        }
+        catch ( EntityExistsException uee )
+        {
+            // good
+        }
+    }
+
+    @Test
+    public void testCheckUserCaseSensitiveExists()
+        throws Exception
+    {
+        user = userManager.getUserInstance( "borrisJohnson" );
+        userManager.addUser( user, "bob" );
+
+        assertTrue( userManager.checkExists( "borrisJohnson" ) );
+    }
+
+    private void addDefaultGrantUserGroupRole( User user )
+        throws Exception
+    {
+        securityService.<TurbineModelManager> getModelManager().grant( user, 
group, role );
+        boolean ugrFound = false;
+        TurbineUserGroupRole ugrTest = null;
+        for ( TurbineUserGroupRole ugr : ( (TurbineUser) user 
).getUserGroupRoleSet() )
+        {
+            if ( ugr.getUser().equals( user ) && ugr.getGroup().equals( group 
) && ugr.getRole().equals( role ) )
+            {
+                ugrFound = true;
+                ugrTest = ugr;
+                break;
+            }
+        }
+        assertTrue( ugrFound );
+        assertTrue( ugrTest.getGroup().equals( group ) );
+        assertTrue( ugrTest.getUser().equals( user ) );
+    }
+
+    private void revokeDefaultGrantUserGroupRole( User user )
+        throws Exception
+    {
+        securityService.<TurbineModelManager> getModelManager().revoke( user, 
group, role );
+        boolean ugrFound = false;
+        for ( TurbineUserGroupRole ugr : ( (TurbineUser) user 
).getUserGroupRoleSet() )
+        {
+            if ( ugr.getUser().equals( user ) && ugr.getGroup().equals( group 
) && ugr.getRole().equals( role ) )
+            {
+                ugrFound = true;
+                break;
+            }
+        }
+        ;
+        assertFalse( ugrFound );
+    }
 
 }


Reply via email to