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
#