Author: gk
Date: Wed Apr 26 14:36:57 2017
New Revision: 1792752

URL: http://svn.apache.org/viewvc?rev=1792752&view=rev
Log:
- Update commons to 2.6 in api, using commons lang3 for serializing test in 
memory
- Use serializable where needed in ACL
- Update changes.xml (including 12th April commit)

Added:
    
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
   (with props)
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/ModelManager.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/UserManager.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
    
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
    
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
    turbine/fulcrum/trunk/security/memory/pom.xml
    
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
    turbine/fulcrum/trunk/security/pom.xml
    turbine/fulcrum/trunk/security/src/changes/changes.xml
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
    
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java

Modified: turbine/fulcrum/trunk/security/api/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/pom.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/api/pom.xml (original)
+++ turbine/fulcrum/trunk/security/api/pom.xml Wed Apr 26 14:36:57 2017
@@ -40,7 +40,7 @@
         <dependency>
             <groupId>commons-lang</groupId>
             <artifactId>commons-lang</artifactId>
-            <version>2.5</version>
+            <version>2.6</version>
         </dependency>
         <dependency>
             <groupId>org.apache.avalon.framework</groupId>

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=1792752&r1=1792751&r2=1792752&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
 Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
  * specific language governing permissions and limitations
  * under the License.
  */
+import java.io.Serializable;
+
 import org.apache.fulcrum.security.entity.Group;
 import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.EntityExistsException;
@@ -37,7 +39,7 @@ import org.apache.fulcrum.security.util.
  * @author <a href="mailto:[email protected]";>Eric Pugh</a>
  * @version $Id$
  */
-public interface GroupManager
+public interface GroupManager extends Serializable
 {
 
     /** Avalon role - used to id the component within the manager */

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/ModelManager.java
 Wed Apr 26 14:36:57 2017
@@ -1,5 +1,7 @@
 package org.apache.fulcrum.security;
 
+import java.io.Serializable;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -26,7 +28,7 @@ package org.apache.fulcrum.security;
  * @author <a href="mailto:[email protected]";>Eric Pugh</a>
  * @version $Id$
  */
-public interface ModelManager
+public interface ModelManager extends Serializable
 {
     /** Avalon role - used to id the component within the manager */
     String ROLE = ModelManager.class.getName();

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=1792752&r1=1792751&r2=1792752&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
 Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
  * specific language governing permissions and limitations
  * under the License.
  */
+import java.io.Serializable;
+
 import org.apache.fulcrum.security.entity.Permission;
 import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.EntityExistsException;
@@ -37,7 +39,7 @@ import org.apache.fulcrum.security.util.
  * @author <a href="mailto:[email protected]";>Eric Pugh</a>
  * @version $Id$
  */
-public interface PermissionManager
+public interface PermissionManager extends Serializable
 {
 
     /** Avalon role - used to id the component within the manager */

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=1792752&r1=1792751&r2=1792752&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
 Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
  * specific language governing permissions and limitations
  * under the License.
  */
+import java.io.Serializable;
+
 import org.apache.fulcrum.security.entity.Role;
 import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.EntityExistsException;
@@ -37,7 +39,7 @@ import org.apache.fulcrum.security.util.
  * @author <a href="mailto:[email protected]";>Eric Pugh</a>
  * @version $Id$
  */
-public interface RoleManager
+public interface RoleManager extends Serializable
 {
     /** Avalon role - used to id the component within the manager */
     String ROLE = RoleManager.class.getName();

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=1792752&r1=1792751&r2=1792752&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
 Wed Apr 26 14:36:57 2017
@@ -18,6 +18,8 @@ package org.apache.fulcrum.security;
  * specific language governing permissions and limitations
  * under the License.
  */
+import java.io.Serializable;
+
 import org.apache.fulcrum.security.acl.AccessControlList;
 import org.apache.fulcrum.security.entity.User;
 import org.apache.fulcrum.security.util.DataBackendException;
@@ -40,7 +42,7 @@ import org.apache.fulcrum.security.util.
  * @author <a href="mailto:[email protected]";>Rafal Krzewski</a>
  * @version $Id$
  */
-public interface UserManager
+public interface UserManager extends Serializable
 {
     /** Avalon role - used to id the component within the manager */
     String ROLE = UserManager.class.getName();

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/entity/SecurityEntity.java
 Wed Apr 26 14:36:57 2017
@@ -1,5 +1,7 @@
 package org.apache.fulcrum.security.entity;
 
+import java.io.Serializable;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -31,7 +33,7 @@ package org.apache.fulcrum.security.enti
  * @version $Id$
  */
 
-public interface SecurityEntity
+public interface SecurityEntity extends Serializable
 {
     /**
      * Get the Name of the SecurityEntity.

Modified: 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/java/org/apache/fulcrum/security/spi/AbstractGroupManager.java
 Wed Apr 26 14:36:57 2017
@@ -34,7 +34,12 @@ import org.apache.fulcrum.security.util.
  */
 public abstract class AbstractGroupManager extends AbstractEntityManager 
implements GroupManager
 {
-    protected abstract <T extends Group> T persistNewGroup(T group) throws 
DataBackendException;
+    /**
+        * serial id
+        */
+       private static final long serialVersionUID = 1L;
+
+       protected abstract <T extends Group> T persistNewGroup(T group) throws 
DataBackendException;
 
     /**
      * Construct a blank Group object.

Modified: 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/api/src/test/org/apache/fulcrum/security/model/turbine/test/ModelManagerDummyImpl.java
 Wed Apr 26 14:36:57 2017
@@ -11,6 +11,11 @@ import org.apache.fulcrum.security.util.
 public class ModelManagerDummyImpl extends AbstractTurbineModelManager  
 {
 
+       /**
+        * 
+        */
+       private static final long serialVersionUID = 1L;
+
        @Override
        public void grant(Role role, Permission permission)
                        throws DataBackendException, UnknownEntityException {

Modified: turbine/fulcrum/trunk/security/memory/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/memory/pom.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/memory/pom.xml (original)
+++ turbine/fulcrum/trunk/security/memory/pom.xml Wed Apr 26 14:36:57 2017
@@ -64,6 +64,12 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.5</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.fulcrum</groupId>
             <artifactId>fulcrum-security-api</artifactId>
         </dependency>

Modified: 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
 (original)
+++ 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/AccessControlListTest.java
 Wed Apr 26 14:36:57 2017
@@ -22,9 +22,11 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.lang3.SerializationUtils;
 import org.apache.fulcrum.security.GroupManager;
 import org.apache.fulcrum.security.PermissionManager;
 import org.apache.fulcrum.security.RoleManager;
@@ -39,6 +41,7 @@ import org.apache.fulcrum.security.model
 import org.apache.fulcrum.security.model.dynamic.DynamicModelManager;
 import org.apache.fulcrum.security.model.dynamic.entity.DynamicGroup;
 import org.apache.fulcrum.security.model.dynamic.entity.DynamicRole;
+import org.apache.fulcrum.security.model.turbine.TurbineAccessControlList;
 import org.apache.fulcrum.security.util.GroupSet;
 import org.apache.fulcrum.security.util.PermissionSet;
 import org.apache.fulcrum.security.util.RoleSet;
@@ -105,6 +108,9 @@ public class AccessControlListTest exten
         DynamicAccessControlList dacl = (DynamicAccessControlList) acl;
         assertTrue(dacl.hasRole(role));
         assertTrue(dacl.hasPermission(permission));
+        
+        Serializable serDeSer = SerializationUtils.roundtrip(acl);
+        assertTrue( 
((DynamicAccessControlList)serDeSer).getRoles().toString().equals(dacl.getRoles().toString()));
 
     }
     @Test

Added: 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java?rev=1792752&view=auto
==============================================================================
--- 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
 (added)
+++ 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
 Wed Apr 26 14:36:57 2017
@@ -0,0 +1,423 @@
+package org.apache.fulcrum.security.acl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.SerializationUtils;
+import org.apache.fulcrum.security.GroupManager;
+import org.apache.fulcrum.security.PermissionManager;
+import org.apache.fulcrum.security.RoleManager;
+import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.UserManager;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Permission;
+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.util.GroupSet;
+import org.apache.fulcrum.security.util.PermissionSet;
+import org.apache.fulcrum.security.util.RoleSet;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test that we can generate AccessControlLists from the Factory
+ * 
+ * @author <a href="mailto:[email protected]";>Eric Pugh</a>
+ * @version $Id: AccessControlListTest.java 1791100 2017-04-12 09:48:44Z gk $
+ */
+public class TurbineAccessControlListTest extends BaseUnit4Test
+{
+
+    private UserManager userManager;
+    private GroupManager groupManager;
+    private RoleManager roleManager;
+    private TurbineModelManager modelManager;
+    private PermissionManager permissionManager;
+    private TurbineAccessControlList acl;
+    private static int counter = 1;
+    private User user;
+
+    @Before
+    public void setUp() throws Exception
+    {
+
+       this.setRoleFileName("src/test/TurbineMemoryRoleConfig.xml");
+        
this.setConfigurationFileName("src/test/TurbineMemoryComponentConfig.xml");
+
+        SecurityService securityService = (SecurityService) 
lookup(SecurityService.ROLE);
+        userManager = securityService.getUserManager();
+        groupManager = securityService.getGroupManager();
+        roleManager = securityService.getRoleManager();
+        permissionManager = securityService.getPermissionManager();
+        modelManager = (TurbineModelManager) securityService.getModelManager();
+        
+        user = userManager.getUserInstance("User 1");
+        if (!userManager.checkExists(user)) {
+               userManager.addUser(user, "secretpassword");
+        }
+        
+
+    }
+
+    @Test
+    public void testCreatingDefaultAccessControlListViaFactory() throws 
Exception
+    {
+        Group group = getGroup();
+        Role role = getRole();
+        Role globalRole = getRole();
+        Permission permission = getPermission();
+        modelManager.grant(user, modelManager.getGlobalGroup(), globalRole);
+        modelManager.grant(user, group, role);
+        modelManager.grant(role, permission);
+        RoleSet roleSet = new RoleSet();
+        PermissionSet permissionSet = new PermissionSet();
+        roleSet.add(role);
+        permissionSet.add(permission);
+        Map<Group, RoleSet> roleSets = new HashMap<Group, RoleSet>();
+        Map<Group, PermissionSet> permissionSets = new HashMap<Group, 
PermissionSet>();
+        roleSets.put(group, roleSet);
+        permissionSets.put(group, permissionSet);
+        AccessControlList acl = userManager.getACL(user);
+        assertTrue(acl instanceof TurbineAccessControlList);
+        TurbineAccessControlList dacl = (TurbineAccessControlList) acl;
+        assertTrue(dacl.hasRole(role,group));
+        assertTrue(dacl.hasRole(globalRole));
+        assertTrue(dacl.hasPermission(permission,group));     
+        
assertEquals(dacl.getPermissions(group).toString(),permissionSets.get(group).toString());
+        Serializable serDeSer = SerializationUtils.roundtrip(acl);
+        assertTrue("Expected RoleSet: [role 4 -> 4]", 
((TurbineAccessControlList)serDeSer).getRoles().toString().equals(dacl.getRoles().toString()));
+
+    }
+    @Test
+    public void testGetRolesGroup() throws Exception
+    {
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        modelManager.grant(user, modelManager.getGlobalGroup(), role);
+        modelManager.grant(user, modelManager.getGlobalGroup(), role2);
+        acl = userManager.getACL(user);
+        RoleSet resultRoleSet = acl.getRoles();
+        assertTrue(resultRoleSet.contains(role));
+        assertTrue(resultRoleSet.contains(role2));
+        assertFalse(resultRoleSet.contains(role3));
+    }
+
+    /*
+     * Class to test for RoleSet getRoles()
+     */
+    @Test
+    public void testGetRoles() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        modelManager.grant(user,group, role);
+        modelManager.grant(user,group, role2);
+        modelManager.grant(user,group2, role2);
+        modelManager.grant(user,group2, role3);
+        acl = userManager.getACL(user);
+        RoleSet resultRoleSet = acl.getRoles(group);
+        assertTrue(resultRoleSet.contains(role));
+        assertTrue(resultRoleSet.contains(role2));
+        assertTrue(!resultRoleSet.contains(role3));
+        assertEquals(2, resultRoleSet.size());
+    }
+
+    /*
+     * Class to test for PermissionSet getPermissions(Group)
+     */
+    @Test
+    public void testGetPermissionsGroup() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        Permission permission = getPermission();
+        Permission permission2 = getPermission();
+        Permission permission3 = getPermission();
+        modelManager.grant(user,group, role);
+        modelManager.grant(user,group, role2);
+        modelManager.grant(user,group2, role3);
+        modelManager.grant(role, permission);
+        modelManager.grant(role, permission2);
+        modelManager.grant(role, permission3);
+        modelManager.grant(role2, permission2);
+        modelManager.grant(role2, permission3);
+        acl = userManager.getACL(user);
+        PermissionSet resultPermissionSet = acl.getPermissions(group);
+        assertEquals(3, resultPermissionSet.size());
+        assertTrue(resultPermissionSet.contains(permission));
+        assertTrue(resultPermissionSet.contains(permission2));
+        assertTrue(resultPermissionSet.contains(permission3));
+        resultPermissionSet = acl.getPermissions(group2);
+        assertEquals(0, resultPermissionSet.size());
+    }
+
+    /*
+     * Class to test for PermissionSet getPermissions()
+     */
+    @Test
+    public void testGetPermissions() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        Permission permission = getPermission();
+        Permission permission2 = getPermission();
+        Permission permission3 = getPermission();
+        modelManager.grant(user,group, role);
+        modelManager.grant(user,group, role2);
+        modelManager.grant(user,group2, role3);
+        modelManager.grant(role, permission);
+        modelManager.grant(role, permission2);
+        modelManager.grant(role, permission3);
+        modelManager.grant(role2, permission2);
+        modelManager.grant(role2, permission3);
+        acl = userManager.getACL(user);
+        PermissionSet resultPermissionSet = acl.getPermissions(group);
+        assertEquals(3, resultPermissionSet.size());
+    }
+
+    /*
+     * Class to test for boolean hasRole(Role, Group)
+     */
+    @Test
+    public void testHasRoleRoleGroup() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        modelManager.grant(user,group, role);
+        modelManager.grant(user,group, role2);
+        modelManager.grant(user,group2, role);
+        modelManager.grant(user,group2, role3);
+        acl = userManager.getACL(user);
+        assertTrue(acl.hasRole(role, group));
+        assertTrue(acl.hasRole(role, group2));
+        assertTrue(acl.hasRole(role2, group));
+        assertFalse(acl.hasRole(role2, group2));
+        assertTrue(acl.hasRole(role, group2));
+        assertFalse(acl.hasRole(role2, group2));
+        assertTrue(acl.hasRole(role3, group2));
+    }
+
+    /*
+     * Class to test for boolean hasRole(Role, GroupSet)
+     */
+    @Test
+    public void testHasRoleRoleGroupSet() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        modelManager.grant(user,group, role);
+        modelManager.grant(user,group, role2);
+        modelManager.grant(user,group2, role);
+        modelManager.grant(user,group2, role3);
+        acl = userManager.getACL(user);
+        GroupSet groupSet = new GroupSet();
+        groupSet.add(group);
+        assertTrue(acl.hasRole(role, groupSet));
+        assertTrue(acl.hasRole(role2, groupSet));
+        assertFalse(acl.hasRole(role3, groupSet));
+        groupSet.add(group2);
+        assertTrue(acl.hasRole(role, groupSet));
+        assertTrue(acl.hasRole(role2, groupSet));
+        assertTrue(acl.hasRole(role3, groupSet));
+        groupSet.add(group2);
+    }
+
+    /*
+     * Class to test for boolean hasRole(String, String)
+     */
+    @Test
+    public void testHasRoleStringString() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        modelManager.grant(user, group, role);
+        modelManager.grant(user, group, role2);
+        modelManager.grant(user, group2, role);
+        modelManager.grant(user, group2, role3);
+        acl = userManager.getACL(user);
+        assertTrue(acl.hasRole(role.getName(), group.getName()));
+        assertTrue(acl.hasRole(role.getName(), group2.getName()));
+        assertTrue(acl.hasRole(role2.getName(), group.getName()));
+        assertFalse(acl.hasRole(role2.getName(), group2.getName()));
+        assertTrue(acl.hasRole(role.getName(), group2.getName()));
+        assertFalse(acl.hasRole(role2.getName(), group2.getName()));
+        assertTrue(acl.hasRole(role3.getName(), group2.getName()));
+    }
+
+    /*
+     * Class to test for boolean hasPermission(Permission, Group)
+     */
+    @Test
+    public void testHasPermissionPermissionGroup() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        Permission permission = getPermission();
+        Permission permission2 = getPermission();
+        Permission permission3 = getPermission();
+        Permission permission4 = getPermission();
+        modelManager.grant(user, group, role);
+        modelManager.grant(user, group, role2);
+        modelManager.grant(user, group2, role3);
+        modelManager.grant(role, permission);
+        modelManager.grant(role, permission2);
+        modelManager.grant(role, permission3);
+        modelManager.grant(role2, permission2);
+        modelManager.grant(role2, permission3);
+        modelManager.grant(role3, permission4);
+        acl = userManager.getACL(user);
+        assertTrue(acl.hasPermission(permission, group));
+        assertTrue(acl.hasPermission(permission2, group));
+        assertTrue(acl.hasPermission(permission3, group));
+        assertFalse(acl.hasPermission(permission4, group));
+        assertTrue(acl.hasPermission(permission4, group2));
+        assertFalse(acl.hasPermission(permission, group2));
+    }
+
+    /*
+     * Class to test for boolean hasPermission(Permission, GroupSet)
+     */
+    @Test
+    public void testHasPermissionPermissionGroupSet() throws Exception
+    {
+        Group group = getGroup();
+        Group group2 = getGroup();
+        Group group3 = getGroup();
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        Role role4 = getRole();
+        Permission permission = getPermission();
+        Permission permission2 = getPermission();
+        Permission permission3 = getPermission();
+        Permission permission4 = getPermission();
+        Permission permission5 = getPermission();
+        modelManager.grant(user,group, role);
+        modelManager.grant(user,group, role2);
+        modelManager.grant(user,group2, role3);
+        modelManager.grant(user,group3, role4);
+        modelManager.grant(role, permission);
+        modelManager.grant(role, permission2);
+        modelManager.grant(role, permission3);
+        modelManager.grant(role2, permission2);
+        modelManager.grant(role2, permission3);
+        modelManager.grant(role3, permission4);
+        modelManager.grant(role4, permission5);
+        acl = userManager.getACL(user);
+        GroupSet groupSet = new GroupSet();
+        groupSet.add(group);
+        groupSet.add(group2);
+        assertTrue(acl.hasPermission(permission, groupSet));
+        assertFalse(acl.hasPermission(permission5, groupSet));
+        groupSet.add(group3);
+        assertTrue(acl.hasPermission(permission5, groupSet));
+    }
+
+    /*
+     * Class to test for boolean hasPermission(Permission)
+     */
+    @Test
+    public void testHasPermissionPermission() throws Exception
+    {
+        Role role = getRole();
+        Role role2 = getRole();
+        Role role3 = getRole();
+        Role role4 = getRole();
+        Permission permission = getPermission();
+        Permission permission2 = getPermission();
+        Permission permission3 = getPermission();
+        Permission permission4 = getPermission();
+        Permission permission5 = getPermission();
+        modelManager.grant(user,modelManager.getGlobalGroup(), role);
+        modelManager.grant(user,modelManager.getGlobalGroup(), role2);
+        modelManager.grant(user,modelManager.getGlobalGroup(), role3);
+        modelManager.grant(user,modelManager.getGlobalGroup(), role4);
+        modelManager.grant(role, permission);
+        modelManager.grant(role, permission2);
+        modelManager.grant(role, permission3);
+        modelManager.grant(role2, permission2);
+        modelManager.grant(role2, permission3);
+        modelManager.grant(role3, permission4);
+        modelManager.grant(role4, permission5);
+        acl = userManager.getACL(user);
+        assertTrue(acl.hasPermission(permission));
+        assertTrue(acl.hasPermission(permission2));
+        assertTrue(acl.hasPermission(permission3));
+        assertTrue(acl.hasPermission(permission4));
+        assertTrue(acl.hasPermission(permission5));
+    }
+
+    private int getId()
+    {
+        return ++counter;
+    }
+
+    private Role getRole() throws Exception
+    {
+        Role role = roleManager.getRoleInstance("Role " + getId());
+        roleManager.addRole(role);
+        return role;
+    }
+
+    private Group getGroup() throws Exception
+    {
+        Group group = groupManager.getGroupInstance("Group " + getId());
+        groupManager.addGroup(group);
+        return group;
+    }
+
+    private Permission getPermission() throws Exception
+    {
+        Permission permission = 
permissionManager.getPermissionInstance("Permission " + getId());
+        permissionManager.addPermission(permission);
+        return permission;
+    }
+}

Propchange: 
turbine/fulcrum/trunk/security/memory/src/test/org/apache/fulcrum/security/acl/TurbineAccessControlListTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: turbine/fulcrum/trunk/security/pom.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/pom.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/pom.xml (original)
+++ turbine/fulcrum/trunk/security/pom.xml Wed Apr 26 14:36:57 2017
@@ -111,12 +111,12 @@
               <version>1.0.7</version>
                      <scope>test</scope>
                    </dependency>
-            <dependency>
-                <groupId>org.apache.fulcrum</groupId>
-                <artifactId>fulcrum-yaafi</artifactId>
-                <version>1.0.6</version>
-                <scope>test</scope>
-            </dependency>
+        <dependency>
+            <groupId>org.apache.fulcrum</groupId>
+            <artifactId>fulcrum-yaafi</artifactId>
+            <version>1.0.6</version>
+            <scope>test</scope>
+        </dependency>
                    <dependency>
                      <groupId>org.apache.fulcrum</groupId>
                      <artifactId>fulcrum-security-memory</artifactId>

Modified: turbine/fulcrum/trunk/security/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/src/changes/changes.xml?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- turbine/fulcrum/trunk/security/src/changes/changes.xml (original)
+++ turbine/fulcrum/trunk/security/src/changes/changes.xml Wed Apr 26 14:36:57 
2017
@@ -22,8 +22,15 @@
     <title>Changes</title>
     <author email="[email protected]">Eric Pugh</author>
   </properties>
-
+  
   <body>
+    <release version="1.1.1" date="in Subversion">
+      <action type="update" dev="gk">
+        Update to JUnit4
+        Configurable global group in Turbine and dynamic model
+        Optional second level permission check, i.e. TurbineRole and 
TurbineGroup impl are optional in Turbine ACL and Torque Manager, only 
TurbineUser interface implementation is required 
+      </action>
+    </release>
     <release version="1.1.0" date="">
       <action type="update" dev="tv">
         Updated to Hibernate 3.6.7

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractGroupManager.java
 Wed Apr 26 14:36:57 2017
@@ -43,8 +43,10 @@ import org.apache.torque.util.Transactio
 public abstract class TorqueAbstractGroupManager extends AbstractGroupManager 
 {
     
-    
-    /**
+       /** Serial version */
+       private static final long serialVersionUID = -3735730556110100621L;
+
+       /**
      * Avalon Service lifecycle method
      */
     @Override
@@ -204,7 +206,7 @@ public abstract class TorqueAbstractGrou
         }
         catch (NoRowsException e)
         {
-            throw new UnknownEntityException("Could not find group" + name);
+            throw new UnknownEntityException("Could not find group " + name);
         }
         catch (TooManyRowsException e)
         {

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractPermissionManager.java
 Wed Apr 26 14:36:57 2017
@@ -42,7 +42,10 @@ import org.apache.torque.util.Transactio
 public abstract class TorqueAbstractPermissionManager extends 
AbstractPermissionManager
 {
     
-    /**
+       /** Serial version */
+       private static final long serialVersionUID = 194503017446833485L;
+
+       /**
      * Avalon Service lifecycle method
      */ 
     @Override

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractRoleManager.java
 Wed Apr 26 14:36:57 2017
@@ -42,7 +42,10 @@ import org.apache.torque.util.Transactio
 public abstract class TorqueAbstractRoleManager extends AbstractRoleManager 
 {
     
-    /**
+       /** Serial version */
+       private static final long serialVersionUID = 4258137881250800204L;
+
+       /**
      * Avalon Service lifecycle method
      */
     @Override

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/TorqueAbstractUserManager.java
 Wed Apr 26 14:36:57 2017
@@ -42,7 +42,10 @@ import org.apache.torque.util.Transactio
 public abstract class TorqueAbstractUserManager extends AbstractUserManager
 {
     
-    /**
+       /** Serial version */
+       private static final long serialVersionUID = 2050218990148719292L;
+
+       /**
      * Avalon Service lifecycle method
      */
     @Override

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManager.java
 Wed Apr 26 14:36:57 2017
@@ -1,5 +1,7 @@
 package org.apache.fulcrum.security.torque.peer;
 
+import java.io.Serializable;
+
 import org.apache.fulcrum.security.spi.AbstractEntityManager;
 import org.apache.fulcrum.security.util.DataBackendException;
 
@@ -17,7 +19,7 @@ import org.apache.fulcrum.security.util.
  * @author <a href="mailto:[email protected]";>Georg Kallidis</a>
  * @version $Id$
  */
-public interface PeerManager
+public interface PeerManager extends Serializable
 {
 
     String ROLE = PeerManager.class.getName(); 

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/peer/PeerManagerDefaultImpl.java
 Wed Apr 26 14:36:57 2017
@@ -23,7 +23,9 @@ public class PeerManagerDefaultImpl exte
     implements PeerManager, Disposable
 {
       
-    private Map<String,Peer> peers = new 
ConcurrentHashMap<String,Peer>(4,0.75f,4);
+        /** Serial version */
+       private static final long serialVersionUID = -3891813089694207441L;
+       private Map<String,Peer> peers = new 
ConcurrentHashMap<String,Peer>(4,0.75f,4);
 
     @Override
     public <P extends Peer> P getPeerInstance(String peerClassName) throws 
DataBackendException

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineGroupManagerImpl.java
 Wed Apr 26 14:36:57 2017
@@ -35,10 +35,14 @@ import org.apache.torque.criteria.Criter
  * @author <a href="mailto:[email protected]";>Thomas Vandahl</a>
  * @version $Id:$
  */
-public class TorqueTurbineGroupManagerImpl extends PeerGroupManager 
+public class TorqueTurbineGroupManagerImpl extends PeerGroupManager
 {
     
-    /**
+
+       /** Serial version */
+       private static final long serialVersionUID = -5583297428186549693L;
+
+       /**
      * @see 
org.apache.fulcrum.security.torque.TorqueAbstractGroupManager#doSelectAllGroups(java.sql.Connection)
      */
     @Override

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineModelManagerImpl.java
 Wed Apr 26 14:36:57 2017
@@ -43,7 +43,10 @@ import org.apache.torque.util.Transactio
  */
 public class TorqueTurbineModelManagerImpl extends AbstractTurbineModelManager 
implements TurbineModelManager
 {
-    /**
+       /** Serial version */
+       private static final long serialVersionUID = -306753988209612899L;
+
+       /**
      * Grants a Role a Permission
      *
      * @param role the Role.

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbinePermissionManagerImpl.java
 Wed Apr 26 14:36:57 2017
@@ -39,7 +39,10 @@ public class TorqueTurbinePermissionMana
 {
     
     
-    /**
+       /** Serial version */
+       private static final long serialVersionUID = 1L;
+
+       /**
      * @see 
org.apache.fulcrum.security.torque.TorqueAbstractPermissionManager#doSelectAllPermissions(java.sql.Connection)
      */
     @Override

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineRoleManagerImpl.java
 Wed Apr 26 14:36:57 2017
@@ -38,6 +38,9 @@ import org.apache.torque.criteria.Criter
 public class TorqueTurbineRoleManagerImpl extends PeerRoleManager 
 {
 
+       /** Serial version */
+       private static final long serialVersionUID = 1L;
+
        /**
      * @see 
org.apache.fulcrum.security.torque.TorqueAbstractRoleManager#doSelectAllRoles(java.sql.Connection)
      */

Modified: 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java?rev=1792752&r1=1792751&r2=1792752&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
 (original)
+++ 
turbine/fulcrum/trunk/security/torque/src/java/org/apache/fulcrum/security/torque/turbine/TorqueTurbineUserManagerImpl.java
 Wed Apr 26 14:36:57 2017
@@ -41,7 +41,9 @@ import org.apache.torque.criteria.Criter
 public class TorqueTurbineUserManagerImpl extends PeerUserManager implements 
TurbineUserManager
 {
 
-    private static final String ANON = "anon";
+       /** Serial version */
+       private static final long serialVersionUID = 1L;
+       private static final String ANON = "anon";
 
     /**
      * Default implementation.


Reply via email to