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 2021/08/03 14:53:32 UTC

[turbine-archetypes] 01/06: cherry picked fro mbranch docker5x commit with junit 5 changes, merging docs/DOCKER-README.

This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-archetypes.git

commit fcda132f6fca20eae40fa8ce4c23e3b68b9be5fd
Author: Georg Kallidis <gk...@apache.org>
AuthorDate: Thu Jul 22 16:54:57 2021 +0200

    cherry picked fro mbranch docker5x commit with junit 5 changes, merging docs/DOCKER-README.
---
 .../archetype-resources/docs/DOCKER-README.md      |  92 ++++++++--------
 src/main/resources/archetype-resources/pom.xml     |   5 +-
 .../src/main/docker-resources/docker-compose.yml   |   2 +-
 .../main/webapp/templates/app/layouts/Default.vm   | 116 ++++++++++-----------
 .../src/main/webapp/templates/app/screens/Index.vm |  91 ++++++++--------
 .../AbstractFulcrumTorqueModelManagerTest.java     |  18 ++--
 .../FulcrumTorqueDefaultModelManagerTest.java      |  13 +--
 .../security/TurbineSecurityServiceTest.java       |  23 ++--
 8 files changed, 182 insertions(+), 178 deletions(-)

diff --git a/src/main/resources/archetype-resources/docs/DOCKER-README.md b/src/main/resources/archetype-resources/docs/DOCKER-README.md
index 4e121a8..8c67a37 100644
--- a/src/main/resources/archetype-resources/docs/DOCKER-README.md
+++ b/src/main/resources/archetype-resources/docs/DOCKER-README.md
@@ -44,24 +44,63 @@ First time building might take a couple of minutes.
  
 N.B. You may use the command *docker compose* or *docker-compose*, but will slightly different results.
 
-- Check database service call in ** target/<projectname>/WEB-INF/jetty-env.xml**. It should reference the service name (db), not localhost - as it is also set in maven docker profile.
+
+- Double check database service call in ** target/<projectname>/WEB-INF/jetty-env.xml**. It should reference the service name (db), not localhost - this was set when using the maven docker profile.
 
 
 ```xml
 <Set name="url">jdbc:mysql://db:3306/turbine</Set>
 ```
 
-- To change velocity templates check webapp in ** src/main/webapp**.  Ohter resources might depend on https://www.eclipse.org/jetty/documentation/jetty-9/index.html#jars-scanned-for-annotations.
+### Build Services
+
+The app service uses later a volume, which maps to the local maven repository, which you may need/not need.
+The db service uses mysql-latest (currently 8.x), you may replace it with a fixed release tag.
+
+If previously build, you may want to delete all volumes (this will delete all tables in /var/lib/mysql) and containers
+
+    docker-compose down -v
+
+- Build it
+
+    docker-compose build --no-cache
+
+ .. optionally build it separately
+    docker-compose build --no-cache --build-arg DB_CONTEXT=./docker-resources/db db
+    
+ .. building app service first/only requires removing the dependency in docker-compose.yml(comment depends_on: db)
+    docker-compose build --no-cache app
+
+DB_CONTEXT is set to allow starting the db container standalone (in folder db, e.g. with docker build --tag my-db .)
+to test it.  CAVEAT: The db service is build and populated until now with hard coded data. 
+It is a dependency for the service app (see app/Dockerfile).
+
+
+### Starting Services
+
+Start both services in one step
+
+    docker-compose up
+   
+.. or doing it in background, requires second start command
+
+    docker-compose -d up
+    docker-compose start
+
+This will start first the db service, then the app service. Jetty is run exposing the webapp to **http://localhost:8081/app**.
+By default remote debugging is activated (port 9000), which could be removed/commented in docker-compose.yml.
+You could follow the logs with docker-compose logs -f app or docker-compose logs -f db.
+
+
+- To change velocity templates check webapp in ** src/main/webapp** and run in another window *mvn package*.  Jetty should restart automatically. Other resources might depend on https://www.eclipse.org/jetty/documentation/jetty-9/index.html#jars-scanned-for-annotations.
 
-## Start, cleanup or restart 
+### Cleanup or restart (optional)
 
-- Optionally check system or cleanup, e.g. with docker-compose down, docker-compose down -v or docker sytem prune (removes any container on system).
+- Optionally Check system or cleanup, e.g. with docker-compose down, docker-compose down -v or docker sytem prune (removes any container on system).
 
 - If services are already installed, activate/start by 
     docker-compose up
     
-You might do it separately for the db and the app service. The latter will start a maven build process finally starting the jetty server. Maven depends on the Maven settings, which are set in docker-resources/app/settings.xml. The local maven repository is mapped in the docker-compose.yml final to the host's local repository settings.localRepository during the first build, which reads the host's environment. Be sure to check this, if compilation errors occur as the host's maven executabl [...]
-    
  Example Logs:
   
     [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.
@@ -90,52 +129,13 @@ You might do it separately for the db and the app service. The latter will start
     [INFO] --- torque-maven-plugin:5.1-SNAPSHOT:generate (torque-om) @ integrationtest ---
     [main] INFO | org.apache.torque.generator.control.Controller - readConfiguration() : Starting to read configuration files
 
-- Starting the app service will build the app and start jetty with Maven on port 8081 by default. 
+- Starting the app service will build the app and start jetty with Maven on port 8081. 
 This command is set as a **command** in the app service in docker compose. 
 
 Currently the docker-compose is generated once more, if starting the containers, this will overwrite m2repo and may result in errors.
 
 If not yet done, build on the host with mvn clean install -f ../pom.xml -Pdocker.
 
-### Build Services
-
-The app service uses later a volume, which maps to the local maven repository, which you may need/not need.
-The db service uses mysql-latest (currently 8.x), you may replace it with a fixed release tag.
-
-If previously build, you may want to delete all volumes (this will delete all tables in /var/lib/mysql) and containers
-
-    docker-compose down -v
-
-- Build it
-
-    docker-compose build --no-cache
-
- .. optionally build it separately
-    docker-compose build --no-cache --build-arg DB_CONTEXT=./docker-resources/db db
-    
- .. building app service first/only requires removing the dependency in docker-compose.yml(comment depends_on: db)
-    docker-compose build --no-cache app
-
-DB_CONTEXT is set to allow starting the db container standalone (in folder db, e.g. with docker build --tag my-db .)
-to test it.  CAVEAT: The db service is build and populated until now with hard coded data. 
-It is a dependency for the service app (see app/Dockerfile).
-
-
-### Starting Services
-
-Start both services in one step
-
-    docker-compose up
-   
-.. or doing it in background, requires second start command
-
-    docker-compose -d up
-    docker-compose start
-
-This will start first the db service, then the app service. Jetty is run exposing the webapp to **http://localhost:8081/app**.
-By default remote debugging is activated (port 9000), which could be removed/commented in docker-compose.yml.
-You could follow the logs with docker-compose logs -f app or docker-compose logs -f db.
-
 #### Lifecycle (developers only)
 
 - If you generate the archetype itself, you might have to stop the services before cleaning up (docker-compose stop).
diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml
index 0e2d8d5..5fc4b71 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -101,7 +101,7 @@ under the License.
             </plugin>
             <plugin>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.0</version>
+                <version>3.8.1</version>
                 <configuration>
                     <source>#var("maven.compile.source")</source>
                     <target>#var("maven.compile.target")</target>
@@ -437,7 +437,8 @@ under the License.
                             </webApp> 
                         </configuration>
                     </plugin>
-                    <!-- aswe call this profile in docker-resources/docker-compose.yml for app, which will replace /m2repo, 
+                    <!-- we call this profile in docker-resources/docker-compose.yml for app, 
+                    which should not replace /m2repo, 
                     we want to avoid a second parsing from inside the container -->
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
diff --git a/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml b/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
index 026a5de..868ad52 100644
--- a/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
+++ b/src/main/resources/archetype-resources/src/main/docker-resources/docker-compose.yml
@@ -12,7 +12,7 @@ services:
         - MAVEN_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
     
     # this runs the app server in the container, be sure not to filter resources once again!
-    command: mvn -Pjetty
+    command: mvn -Pjetty,docker
     ports:
       - "8081:8081"
       # remote debugging port, uncomment if not needed
diff --git a/src/main/resources/archetype-resources/src/main/webapp/templates/app/layouts/Default.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/app/layouts/Default.vm
index 798ecba..7a5befc 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/templates/app/layouts/Default.vm
+++ b/src/main/resources/archetype-resources/src/main/webapp/templates/app/layouts/Default.vm
@@ -1,58 +1,58 @@
-## 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.
-
-$page.addStyleSheet("http://www.w3schools.com/lib/w3.css")
-$page.addStyleSheet("http://www.w3schools.com/lib/w3-theme-blue-grey.css")
-$page.setTitle("Sample Apache Turbine Application")
-$page.addScript($ui.getScript("page.js"))
-<html>
-
-#TurbineHtmlHead()
-
-<link href="$ui.getStylecss()" rel="stylesheet" type="text/css" />
-
-<body #TurbineHtmlBodyAttributes() class="w3-theme-l4">
-
-	<div class="w3-wrapper">
-
-    <!-- Header -->
-    <header class="w3-container w3-center w3-padding-32 w3-theme">
-          <img class="w3-right" src="$ui.image('turbine4-project.png')" /> 
-          #if ( $data.getUser().hasLoggedIn() ) 
-            #set ( $u = $data.getUser() )
-            <div class="w3-right">
-          <h5>Hello $!u.FirstName</h5>
-            </div>
-      #end
-    </header>
-
-        <!-- Default Menu -->
-        $navigation.setTemplate("/Menu.vm")
-
-        <!-- Content -->
-        <div class="w3-left w3-padding" id="content">
-                $screen_placeholder
-        </div>
-
-        <!-- Footer -->
-        <footer class="w3-bottom">
-			<p>Powered by <img src="$ui.image('pb-turbine100px.png')"/></p>
-        </footer>
-	</div>
-
-</body>
-</html>
+## 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.
+
+$page.addStyleSheet("http://www.w3schools.com/lib/w3.css")
+$page.addStyleSheet("http://www.w3schools.com/lib/w3-theme-blue-grey.css")
+$page.setTitle("Sample Apache Turbine Application")
+$page.addScript($ui.getScript("page.js"))
+<html>
+
+#TurbineHtmlHead()
+
+<link href="$ui.getStylecss()" rel="stylesheet" type="text/css" />
+
+<body #TurbineHtmlBodyAttributes() class="w3-theme-l4">
+
+	<div class="w3-wrapper">
+
+    <!-- Header -->
+    <header class="w3-container w3-center w3-padding-32 w3-theme">
+          <img class="w3-right" src="$ui.image('turbine4-project.png')" /> 
+          #if ( $data.getUser().hasLoggedIn() ) 
+            #set ( $u = $data.getUser() )
+            <div class="w3-right">
+          <h5>Hello $!u.FirstName</h5>
+            </div>
+      #end
+    </header>
+
+        <!-- Default Menu -->
+        $navigation.setTemplate("/Menu.vm")
+
+        <!-- Content -->
+        <div class="w3-left w3-padding" id="content">
+                $screen_placeholder
+        </div>
+
+        <!-- Footer -->
+        <footer class="w3-bottom">
+			<p>Powered by <img src="$ui.image('pb-turbine100px.png')"/></p>
+        </footer>
+	</div>
+
+</body>
+</html>
diff --git a/src/main/resources/archetype-resources/src/main/webapp/templates/app/screens/Index.vm b/src/main/resources/archetype-resources/src/main/webapp/templates/app/screens/Index.vm
index 578e66f..04926f4 100644
--- a/src/main/resources/archetype-resources/src/main/webapp/templates/app/screens/Index.vm
+++ b/src/main/resources/archetype-resources/src/main/webapp/templates/app/screens/Index.vm
@@ -1,45 +1,46 @@
-## 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.
-
-
-
-#if ( $data.getMessage() )
-        #info( $data.getMessage() )
-#end
-
-#if ($!success) <div align="center"><h1>$success</h1></div> 
-       <p>
-               You're now successfully running a <a href="http://turbine.apache.org/">Turbine</a> based
-               application, deployed to <font color="red">$data.ServerData.ContextPath</a></font> on
-               your web container.
-       </p>
-      
-       <p>
-               You can (and should!) change or remove this page at any time. It is
-               intended to give you immediate feedback if you just deployed an newly
-               setup Turbine application.
-       </p>
-#end
-    
-     ## including a secured does not trigger the security check, as it is just handled by velocity, not turbine
-     #parse("/screens/TestSecure.vm")
-     
-     ## trigger the security check, but without all context
-     ## <a href="$link.setPage("TestSecure.vm")">Test a secure access without context</a>
-     ## trigger the security check
-     <a href="$link.setPage("TestSecure.vm").addPathInfo("action","SecureAction")">Test a secure access with context</a>
-     
+## 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.
+
+
+
+#if ( $data.getMessage() )
+        #info( $data.getMessage() )
+#end
+
+#if ($!success) <div align="center"><h1>$success</h1></div> 
+       <p>
+               You're now successfully running a <a href="http://turbine.apache.org/">Turbine</a> based
+               application, deployed to <font color="red">$data.ServerData.ContextPath</a></font> on
+               your web container.
+       </p>
+      
+       <p>
+               You can (and should!) change or remove this page at any time. It is
+               intended to give you immediate feedback if you just deployed an newly
+               setup Turbine application.
+       </p>
+       
+#end
+    
+     ## including a secured does not trigger the security check, as it is just handled by velocity, not turbine
+     #parse("/screens/TestSecure.vm")
+     
+     ## trigger the security check, but without all context
+     ## <a href="$link.setPage("TestSecure.vm")">Test a secure access without context</a>
+     ## trigger the security check
+     <a href="$link.setPage("TestSecure.vm").addPathInfo("action","SecureAction")">Test a secure access with context</a>
+     
diff --git a/src/main/resources/archetype-resources/src/test/java/services/security/AbstractFulcrumTorqueModelManagerTest.java b/src/main/resources/archetype-resources/src/test/java/services/security/AbstractFulcrumTorqueModelManagerTest.java
index 2ffc5de..e31ffe9 100644
--- a/src/main/resources/archetype-resources/src/test/java/services/security/AbstractFulcrumTorqueModelManagerTest.java
+++ b/src/main/resources/archetype-resources/src/test/java/services/security/AbstractFulcrumTorqueModelManagerTest.java
@@ -18,7 +18,7 @@ package ${package}.services.security;
  * specific language governing permissions and limitations
  * under the License.
  */
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.Set;
 
@@ -41,11 +41,13 @@ import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.EntityExistsException;
 import org.apache.fulcrum.security.util.PermissionSet;
 import org.apache.fulcrum.security.util.UnknownEntityException;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
 import org.apache.torque.ConstraintViolationException;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * @version $Id$
  * 
  */
-public abstract class AbstractFulcrumTorqueModelManagerTest extends BaseUnit4Test
+public abstract class AbstractFulcrumTorqueModelManagerTest extends BaseUnit5Test
 {
     protected Role role;
 
@@ -77,7 +79,7 @@ public abstract class AbstractFulcrumTorqueModelManagerTest extends BaseUnit4Tes
      // By default org.slf4j.LoggerFactory is optional in 4.0, but included in webapp 
     Logger log = LoggerFactory.getLogger( getClass().getName() );
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception
     {
         securityService  = (SecurityService) lookup(SecurityService.ROLE);
@@ -89,7 +91,7 @@ public abstract class AbstractFulcrumTorqueModelManagerTest extends BaseUnit4Tes
     }
 
     @Override
-    @After
+    @AfterEach
       public void tearDown()
     {
         modelManager = null;
diff --git a/src/main/resources/archetype-resources/src/test/java/services/security/FulcrumTorqueDefaultModelManagerTest.java b/src/main/resources/archetype-resources/src/test/java/services/security/FulcrumTorqueDefaultModelManagerTest.java
index 67f5781..c57a51d 100644
--- a/src/main/resources/archetype-resources/src/test/java/services/security/FulcrumTorqueDefaultModelManagerTest.java
+++ b/src/main/resources/archetype-resources/src/test/java/services/security/FulcrumTorqueDefaultModelManagerTest.java
@@ -18,12 +18,13 @@ package ${package}.services.security;
  * under the License.
  */
 
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.*;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.Ignore;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test Fulcrum Integration.
@@ -38,7 +39,7 @@ public class FulcrumTorqueDefaultModelManagerTest
 {
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception
     {
         try
diff --git a/src/main/resources/archetype-resources/src/test/java/services/security/TurbineSecurityServiceTest.java b/src/main/resources/archetype-resources/src/test/java/services/security/TurbineSecurityServiceTest.java
index aa38651..7a48dae 100644
--- a/src/main/resources/archetype-resources/src/test/java/services/security/TurbineSecurityServiceTest.java
+++ b/src/main/resources/archetype-resources/src/test/java/services/security/TurbineSecurityServiceTest.java
@@ -18,9 +18,7 @@ package ${package}.services.security;
  * specific language governing permissions and limitations
  * under the License.
  */
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.*;
 
 import org.apache.fulcrum.security.ModelManager;
 import org.apache.fulcrum.security.entity.ExtendedUser;
@@ -34,7 +32,7 @@ import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
 import org.apache.fulcrum.security.util.DataBackendException;
 import org.apache.fulcrum.security.util.EntityExistsException;
 import org.apache.fulcrum.security.util.UnknownEntityException;
-import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
 import org.apache.torque.ConstraintViolationException;
 import org.apache.turbine.annotation.AnnotationProcessor;
 import org.apache.turbine.annotation.TurbineService;
@@ -44,10 +42,11 @@ import org.apache.turbine.services.ServiceManager;
 import org.apache.turbine.services.TurbineServices;
 import org.apache.turbine.services.security.SecurityService;
 import org.apache.turbine.util.TurbineConfig;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,7 +59,7 @@ import org.slf4j.LoggerFactory;
  */
 
 public class TurbineSecurityServiceTest
-    extends BaseUnit4Test
+    extends BaseUnit5Test
 {
 
     org.apache.fulcrum.security.SecurityService fulcrumSecurityService;
@@ -77,7 +76,7 @@ public class TurbineSecurityServiceTest
     // By default org.slf4j.LoggerFactory is optional in 4.0, but included in webapp
     Logger log = LoggerFactory.getLogger( getClass().getName() );
 
-    @BeforeClass
+    @BeforeAll
     public static void init()
         throws Exception
     {
@@ -85,7 +84,7 @@ public class TurbineSecurityServiceTest
         tc.initialize();
     }
 
-    @Before
+    @BeforeEach
     public void setUpBefore()
         throws Exception
     {
@@ -296,7 +295,7 @@ public class TurbineSecurityServiceTest
         assertTrue( ugrTest.getUser().equals( user ) );
     }
 
-    @AfterClass
+    @AfterAll
     public static void setupAfter()
     {
         ServiceManager serviceManager = TurbineServices.getInstance();