You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2017/12/04 13:22:00 UTC

svn commit: r1817090 - in /turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources: META-INF/maven/ archetype-resources/ archetype-resources/src/main/torque-schema/ archetype-resources/src/test/java/services/security/ archetype-resources/s...

Author: gk
Date: Mon Dec  4 13:22:00 2017
New Revision: 1817090

URL: http://svn.apache.org/viewvc?rev=1817090&view=rev
Log:
- fix logging
- use slf4j 
- cleanup database

Modified:
    turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml
    turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml
    turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
    turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/AbstractTurbineTorqueModelManagerTest.java
    turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/TurbineTorqueDefaultModelManagerTest.java
    turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/resources/log4j.properties

Modified: turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml
URL: http://svn.apache.org/viewvc/turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml?rev=1817090&r1=1817089&r2=1817090&view=diff
==============================================================================
--- turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml (original)
+++ turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/META-INF/maven/archetype-metadata.xml Mon Dec  4 13:22:00 2017
@@ -59,6 +59,13 @@
           <include>**/*.java</include>
         </includes>
     </fileSet>
+   <fileSet filtered="true" packaged="false">
+        <directory>src/test/resources</directory>
+        <includes>
+          <include>**/*.properties</include>
+          <include>**/*.xml</include>
+        </includes>
+    </fileSet>
     <fileSet filtered="false" packaged="false">
         <directory>src/test/logs</directory>
         <includes>

Modified: turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml
URL: http://svn.apache.org/viewvc/turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml?rev=1817090&r1=1817089&r2=1817090&view=diff
==============================================================================
--- turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml (original)
+++ turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/pom.xml Mon Dec  4 13:22:00 2017
@@ -55,6 +55,10 @@ under the License.
         <testResources>
             <testResource>
                 <directory>src/test/resources</directory>
+                <includes>
+                    <include>*.xml</include>
+                    <include>*.properties</include>
+                </includes>
             </testResource>
         </testResources>
         <plugins>
@@ -62,6 +66,7 @@ under the License.
             <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
+              <version>2.20.1</version>
               <configuration>
                 <skipTests>#var("skipTests")</skipTests>
               </configuration>
@@ -271,6 +276,22 @@ under the License.
           <artifactId>turbine</artifactId>
           <version>#var("turbine.core")</version>
       </dependency>
+      <!-- slf4j still optional in 4.0 -->
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
+       <dependency>     <!-- delegate slf4j to log4j -->
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-log4j12</artifactId>
+        <version>${slf4j.version}</version>
+       </dependency>
+       <dependency>     <!-- redirect JCL to slf4j -->
+        <groupId>org.slf4j</groupId>
+        <artifactId>jcl-over-slf4j</artifactId>
+        <version>${slf4j.version}</version>
+      </dependency>
       <!-- yaafi is optional. NOTICE: 1.0.7 has group org.apache.turbine not org.apache.fulcrum  -->
       <dependency>
         <groupId>org.apache.turbine</groupId>
@@ -355,6 +376,7 @@ under the License.
         <fulcrum.json>1.1.1</fulcrum.json>
         <fulcrum.security>1.1.1</fulcrum.security>
         <turbine.core>4.0</turbine.core>
+        <slf4j.version>1.7.25</slf4j.version>
         <skipTests>true</skipTests>
     </properties>
     
@@ -384,7 +406,7 @@ under the License.
             <id>tomcat</id>
             <build>
                 <defaultGoal>tomcat:run</defaultGoal>
-                <finalName>#var("pom.artifactId")</finalName>
+                <finalName>#var("project.artifactId")</finalName>
                 <plugins>
                     <plugin>
                         <groupId>org.codehaus.mojo</groupId>

Modified: turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml
URL: http://svn.apache.org/viewvc/turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml?rev=1817090&r1=1817089&r2=1817090&view=diff
==============================================================================
--- turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml (original)
+++ turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/main/torque-schema/torque-security-schema.xml Mon Dec  4 13:22:00 2017
@@ -23,6 +23,10 @@
 <!--                                                                          -->
 <!--  Turbine Torque based Security Service Schema                            -->
 <!--                                                                          -->
+<!--  Schema documentation                                                    -->
+<!--  http://db.apache.org/torque/torque-4.0/documentation/orm-reference/database-4-0-strict.xsd -->
+<!--  http://db.apache.org/torque/torque-4.0/documentation/orm-reference/database-4-0.xsd -->
+<!--                                                                          -->
 <!-- $Id: turbine-security-schema.xml 615328 2008-01-25 20:25:05Z tv $ -->
 <!--                                                                          -->
 <!-- ======================================================================== -->
@@ -69,6 +73,7 @@
     <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"/>
     <column name="PERMISSION_ID" required="true" primaryKey="true" type="INTEGER"/>
 
+    <!-- Turbine service revokeAll(role) manages removal, but you might want to handle it just with onDelete="cascade" -->
     <foreign-key foreignTable="TURBINE_ROLE">
       <reference local="ROLE_ID" foreign="ROLE_ID"/>
     </foreign-key>
@@ -103,7 +108,7 @@
     <column name="USER_ID" required="true" primaryKey="true" type="INTEGER"/>
     <column name="GROUP_ID" required="true" primaryKey="true" type="INTEGER"/>
     <column name="ROLE_ID" required="true" primaryKey="true" type="INTEGER"/>
-
+    <!-- Turbine service revokeAll(user) manages removal, but you might want to handle it just with onDelete="cascade" -->
     <foreign-key foreignTable="TURBINE_USER">
       <reference local="USER_ID" foreign="USER_ID"/>
     </foreign-key>

Modified: turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/AbstractTurbineTorqueModelManagerTest.java
URL: http://svn.apache.org/viewvc/turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/AbstractTurbineTorqueModelManagerTest.java?rev=1817090&r1=1817089&r2=1817090&view=diff
==============================================================================
--- turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/AbstractTurbineTorqueModelManagerTest.java (original)
+++ turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/AbstractTurbineTorqueModelManagerTest.java Mon Dec  4 13:22:00 2017
@@ -1,7 +1,5 @@
 package ${package}.services.security;
 
-import static org.hamcrest.CoreMatchers.describedAs;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,11 +18,7 @@ import static org.hamcrest.CoreMatchers.
  * 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.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.util.Set;
 
@@ -49,12 +43,17 @@ import org.apache.fulcrum.security.util.
 import org.apache.fulcrum.security.util.UnknownEntityException;
 import org.apache.fulcrum.testcontainer.BaseUnit4Test;
 import org.apache.torque.ConstraintViolationException;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Initialization of services in implementing tests
- * @author Eric Pugh
+ * 
+ * @author gkallidis
+ * @version $Id$
  * 
  */
 public abstract class AbstractTurbineTorqueModelManagerTest extends BaseUnit4Test
@@ -72,11 +71,16 @@ public abstract class AbstractTurbineTor
     protected UserManager userManager;
 
     protected SecurityService securityService;
+    
+    boolean onDeleteCascade = true;
+    
+     // By default org.slf4j.LoggerFactory is optional in 4.0, but included in webapp 
+    Logger log = LoggerFactory.getLogger( getClass().getName() );
 
     @Before
     public void setUp() throws Exception
     {
-    	securityService  = (SecurityService) lookup(SecurityService.ROLE);
+        securityService  = (SecurityService) lookup(SecurityService.ROLE);
         roleManager = securityService.getRoleManager();
         userManager = securityService.getUserManager();
         groupManager = securityService.getGroupManager();
@@ -84,6 +88,13 @@ public abstract class AbstractTurbineTor
         modelManager = (TurbineModelManager) securityService.getModelManager();
     }
 
+    @Override
+    @After
+      public void tearDown()
+    {
+        modelManager = null;
+        securityService = null;
+    }
 
     @Test
     public void testGetGlobalGroup() throws Exception
@@ -105,6 +116,10 @@ public abstract class AbstractTurbineTor
         PermissionSet permissions = ((TurbineRole) role).getPermissions();
         assertEquals(1, permissions.size());
         assertTrue(((TurbineRole) role).getPermissions().contains(permission));
+        
+        checkAndRevoke( permission );
+        deletePermission( permission );
+        deleteRole();
     }
 
     @Test
@@ -124,6 +139,8 @@ public abstract class AbstractTurbineTor
         permissions = ((TurbineRole) role).getPermissions();
         assertEquals(0, permissions.size());
         assertFalse(((TurbineRole) role).getPermissions().contains(permission));
+        deletePermission( permission );
+        deleteRole();
     }
     @Test
     public void testRevokeAllRole() throws Exception
@@ -144,11 +161,16 @@ public abstract class AbstractTurbineTor
         try {
             modelManager.revokeAll(role);
         } catch (Exception e) {
-            System.out.println( "Might fail " + e.getMessage() );
+            log.info( "Might fail " + e.getMessage() );
         }
         role = roleManager.getRoleById(role.getId());
         permissions = ((TurbineRole) role).getPermissions();
         assertEquals(0, permissions.size());
+        checkAndRevoke( permission );
+        checkAndRevoke( permission2 );
+        deletePermission( permission );
+        deletePermission( permission2 );
+        deleteRole();
     }
 
     @Test
@@ -168,9 +190,9 @@ public abstract class AbstractTurbineTor
             modelManager.grant(user, group, role);
         } catch (DataBackendException e ){
             if (e.getCause() != null && e.getCause() instanceof ConstraintViolationException) {
-                System.out.println( "error due to " + e.getCause().getMessage() );
+                log.info( "error due to " + e.getCause().getMessage() );
             } else {
-                System.out.println( "error due to " + e.getMessage() );
+                log.info( "error due to " + e.getMessage() );
             }
         }
 
@@ -183,13 +205,17 @@ public abstract class AbstractTurbineTor
         try {
             modelManager.revokeAll(user);
         } catch (Exception e) {
-            
+            log.info( "error due to " + e.getMessage() );
         }
         group = groupManager.getGroupById(group.getId());
         assertEquals(0, ((TurbineGroup) group).getUserGroupRoleSet().size());
         role = securityService.getRoleManager().getRoleByName("TEST_REVOKEALLUSER_ROLE");
 
         // assertFalse(((TurbineRole) role).getGroups().contains(group));
+        // cleanup ;
+        deleteGroup( group );
+        deleteRole();
+        deleteUser( user );
 
     }
 
@@ -210,9 +236,9 @@ public abstract class AbstractTurbineTor
             modelManager.grant(user, group, role);
         } catch (DataBackendException e ){
             if (e.getCause() != null && e.getCause() instanceof ConstraintViolationException) {
-                System.out.println( "error due to " + e.getCause().getMessage() );
+                log.info( "error due to " + e.getCause().getMessage() );
             } else {
-                System.out.println( "error due to " + e.getMessage() );
+                log.info( "error due to " + e.getMessage() );
             }
         }
         boolean ugrFound = false;
@@ -229,7 +255,19 @@ public abstract class AbstractTurbineTor
         assertTrue(ugrFound);
         assertTrue(ugrTest.getGroup().equals(group));
         assertTrue(ugrTest.getUser().equals(user));
-
+        
+        try {
+            modelManager.revoke(user, group, role);
+        } catch (DataBackendException e ){
+            if (e.getCause() != null && e.getCause() instanceof ConstraintViolationException) {
+                log.info( "error due to " + e.getCause().getMessage() );
+            } else {
+                log.info( "error due to " + e.getMessage() );
+            }
+        }
+        deleteGroup( group );
+        deleteRole();
+        deleteUser( user );
     }
     @Test
     public void testRevokeUserGroupRole() throws Exception
@@ -247,18 +285,18 @@ public abstract class AbstractTurbineTor
             modelManager.grant(user, group, role);
         } catch (DataBackendException e ){
             if (e.getCause() != null && e.getCause() instanceof ConstraintViolationException) {
-                System.out.println( "error due to " + e.getCause().getMessage() );
+                log.info( "error due to " + e.getCause().getMessage() );
             } else {
-                System.out.println( "error due to " + e.getMessage() );
+                log.info( "error due to " + e.getMessage() );
             }
         }
         try {
             modelManager.revoke(user, group, role);
         } catch (DataBackendException e ){
             if (e.getCause() != null && e.getCause() instanceof ConstraintViolationException) {
-                System.out.println( "error due to " + e.getCause().getMessage() );
+                log.info( "error due to " + e.getCause().getMessage() );
             } else {
-                System.out.println( "error due to " + e.getMessage() );
+                log.info( "error due to " + e.getMessage() );
             }
         }
         boolean ugrFound = false;
@@ -271,6 +309,10 @@ public abstract class AbstractTurbineTor
             }
         }
         assertFalse(ugrFound);
+        deleteGroup( group );
+        deleteRole();
+        deleteUser( user );
+       
     }
 
     private void checkAndAddPermission( Permission permission )
@@ -292,13 +334,13 @@ public abstract class AbstractTurbineTor
         permission.setId( dbPermission.getId() );
 
     }
-
-    // adds user but might be 
+    
+    // adds user 
     private User checkAndAddUser( User user, String password )
         throws DataBackendException, UnknownEntityException, EntityExistsException
     {
         if (user instanceof ExtendedUser) {
-            // set first last name which might be required almost always
+            // set first last name which might be required  (cft. schema definition)
             ((ExtendedUser)user).setFirstName( user.getName() );
             ((ExtendedUser)user).setLastName(  user.getName() );
         }
@@ -313,7 +355,6 @@ public abstract class AbstractTurbineTor
     private Group checkAndAddGroup( Group group )
                     throws DataBackendException, UnknownEntityException, EntityExistsException
     {
-        Group dbGroup;
         // cleanup if using real db
         if (securityService.getGroupManager().checkExists( group )) {
             return securityService.getGroupManager().getGroupByName( group.getName() );
@@ -350,7 +391,6 @@ public abstract class AbstractTurbineTor
         } else {
             this.role =dbRole;
         }
-       
     }
     
     private void checkAndGrant( Permission permission )
@@ -360,7 +400,7 @@ public abstract class AbstractTurbineTor
         try {
             modelManager.grant(role, permission);
         } catch (DataBackendException e) {
-            System.out.println( "Might be duplicate TODO ACL check" + e.getMessage() );
+            log.info( "Might be duplicate TODO ACL check" + e.getMessage() );
         }
     }
     
@@ -371,8 +411,78 @@ public abstract class AbstractTurbineTor
         try {
             modelManager.revoke(role, permission);
         } catch (DataBackendException e) {
-            System.out.println( "Might be duplicate TODO ACL check" + e.getMessage() );
+            log.info( "Might be duplicate TODO ACL check" + e.getMessage() );
+        }
+    }
+    
+    private void deleteUser( User user )
+    {
+        if (onDeleteCascade) {
+            try {
+               userManager.removeUser( user );
+               log.info( "try to delete user " + user.getName() );
+             } catch (Exception e) {
+               log.error( "deleting user " + user.getName() + " failed. " + e.getMessage());
+               if (e.getCause() != null && e.getCause() instanceof ConstraintViolationException) {
+                    log.info( "error due to " + e.getCause().getMessage() );
+                } else {
+                    log.info( "error due to " + e.getMessage() );
+                }
+             }
+        } else {
+            log.info( "onDeleteCascade false, user " + user.getName() + " not deleted!");
+        }
+    }
+    
+    private void deleteRole()
+    {
+        log.info("deleting role ");
+        if (role != null) {
+            try
+            {
+                log.info("deleting role "+ role.getName());
+                roleManager.removeRole( role );
+                role =null;
+            }
+            catch ( Exception e )
+            {
+                // fail
+                log.error( e.getMessage(),e);
+            }
         }
     }
 
+    private void deletePermission(Permission permission)
+    {
+        log.info("deleting permission *");
+        if (role != null) {
+            try
+            {
+                log.info("deleting permission "+ permission.getName());
+                permissionManager.removePermission(  permission );
+            }
+            catch ( Exception e )
+            {
+                // fail
+                log.error( e.getMessage(),e);
+            }
+        }
+    }
+    
+    private void deleteGroup(Group group)
+    {
+        log.info("deleting group *");
+        if (role != null) {
+            try
+            {
+                log.info("deleting group "+ group.getName());
+                groupManager.removeGroup(  group );
+            }
+            catch ( Exception e )
+            {
+                // fail
+                log.error( e.getMessage(),e);
+            }
+        }
+    }
 }

Modified: turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/TurbineTorqueDefaultModelManagerTest.java
URL: http://svn.apache.org/viewvc/turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/TurbineTorqueDefaultModelManagerTest.java?rev=1817090&r1=1817089&r2=1817090&view=diff
==============================================================================
--- turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/TurbineTorqueDefaultModelManagerTest.java (original)
+++ turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/java/services/security/TurbineTorqueDefaultModelManagerTest.java Mon Dec  4 13:22:00 2017
@@ -31,15 +31,15 @@ import org.junit.Ignore;
  * Stub for further tests, relying on Fulcrum.
  *
  * @author gkallidis
- * @version $Id:$
+ * @version $Id$
  */
 public class TurbineTorqueDefaultModelManagerTest
     extends AbstractTurbineTorqueModelManagerTest
 {
 
-  @Override
-	@Before
-	public void setUp() throws Exception
+    @Override
+    @Before
+    public void setUp() throws Exception
     {
         try
         {
@@ -47,25 +47,17 @@ public class TurbineTorqueDefaultModelMa
             setConfigurationFileName("src/test/conf/torque/fulcrumComponentConfiguration.xml");
             setRoleFileName("src/test/conf/torque/fulcrumRoleConfiguration.xml");
             super.setUp();
-
+    
         }
         catch (Exception e)
         {
             fail(e.toString());
         }
     }
-
+    
     @Test
     public void testDummy() {
     	// all tests in abstract
     }
 
-    @Override
-    @After
-	  public void tearDown()
-    {
-        modelManager = null;
-        securityService = null;
-    }
-
 }

Modified: turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/resources/log4j.properties?rev=1817090&r1=1817089&r2=1817090&view=diff
==============================================================================
--- turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/resources/log4j.properties (original)
+++ turbine/maven/archetypes/trunk/turbine-webapp-4.0/src/main/resources/archetype-resources/src/test/resources/log4j.properties Mon Dec  4 13:22:00 2017
@@ -6,6 +6,10 @@
 #
 log4j.rootLogger = INFO, app, console
 
+
+log4j.logger.${package} = DEBUG, app, console
+log4j.additivity.${package} = false
+
 #
 # Avalon log
 #