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

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new e4481c0  [OPENMEETINGS-2701] web-service errors are visible to user; 
build time is reduced
e4481c0 is described below

commit e4481c01c31b94a23083243ccca7e0e7653d37b2
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Sun Nov 14 21:54:44 2021 +0700

    [OPENMEETINGS-2701] web-service errors are visible to user; build time is 
reduced
---
 openmeetings-server/pom.xml                        |  1 -
 .../src/site/xdoc/BuildInstructions.xml            |  2 +-
 openmeetings-util/pom.xml                          | 17 -----
 .../{NonJenkinsTests.java => NonJenkinsTest.java}  | 13 +++-
 openmeetings-web/pom.xml                           | 40 ++++++----
 .../openmeetings/web/admin/backup/BackupPanel.java | 15 +---
 .../main/webapp/WEB-INF/classes/cxf-servlet.xml    |  1 +
 .../src/main/webapp/WEB-INF/classes/hazelcast.xml  |  2 +-
 ...UnitDefaults.java => AbstractOmServerTest.java} | 32 +++++++-
 .../apache/openmeetings/AbstractSpringTest.java    | 48 ------------
 ...etTester.java => AbstractWicketTesterTest.java} |  6 +-
 .../TestSmokeBasic.java => IsolatedTest.java}      | 19 ++---
 .../TestSmokeBasic.java => RegularTest.java}       | 19 ++---
 .../openmeetings/backup/AbstractTestImport.java    |  6 +-
 .../org/apache/openmeetings/backup/TestExport.java |  4 +-
 .../calendar/TestAppointmentAddAppointment.java    |  4 +-
 .../calendar/TestAppointmentSchedulerTask.java     |  4 +-
 .../calendar/TestDatabaseStructureAppointment.java |  4 +-
 ...TestDatabaseStructureGetAppointmentByRange.java |  4 +-
 .../TestDatabaseStructureGetUserStart.java         |  4 +-
 .../TestDatabaseStructureMeetingMember.java        |  4 +-
 .../openmeetings/calendar/TestGetAppointment.java  |  4 +-
 .../openmeetings/calendar/TestOmCalendar.java      |  4 +-
 .../openmeetings/calendar/TestSendIcalMessage.java |  4 +-
 .../org/apache/openmeetings/cli/TestAdmin.java     | 12 +--
 .../org/apache/openmeetings/cli/TestPatcher.java   |  4 +-
 .../org/apache/openmeetings/config/TestConfig.java |  4 +-
 .../openmeetings/core/file/TestFileProcessor.java  |  4 +-
 .../apache/openmeetings/db/dao/TestFileDao.java    |  4 +-
 .../apache/openmeetings/db/dao/TestRoomDao.java    |  4 +-
 .../apache/openmeetings/domain/TestAddGroup.java   |  4 +-
 .../domain/TestUserGroupAggregation.java           |  4 +-
 .../openmeetings/invitiation/TestInvitation.java   |  4 +-
 .../org/apache/openmeetings/ldap/TestLdap.java     |  4 +-
 .../service/mail/template/TestEmailTemplate.java   |  4 +-
 .../mail/template/subject/TestSubjTemplate.java    |  4 +-
 .../openmeetings/service/scheduler/TestJob.java    |  4 +-
 .../apache/openmeetings/smoke/TestSmokeBasic.java  |  4 +-
 .../apache/openmeetings/user/TestUserContact.java  |  4 +-
 .../apache/openmeetings/user/TestUserCount.java    |  4 +-
 .../apache/openmeetings/user/TestUserGroup.java    |  6 +-
 .../org/apache/openmeetings/userdata/TestAuth.java |  4 +-
 .../apache/openmeetings/userdata/TestLogin.java    |  4 +-
 .../org/apache/openmeetings/util/TestDateTime.java |  2 +
 .../apache/openmeetings/util/TestStoredFile.java   |  4 +-
 .../org/apache/openmeetings/web/TestCalendar.java  |  4 +-
 .../org/apache/openmeetings/web/TestMainAreas.java |  4 +-
 .../org/apache/openmeetings/web/TestMainMenu.java  |  4 +-
 .../openmeetings/web/app/TestApplication.java      |  4 +-
 .../web/app/TestApplicationMocked.java             |  2 +
 .../web/app/TestOmAuthenticationStrategy.java      |  4 +-
 .../web/app/TestUserManagerMocked.java             |  2 +
 .../openmeetings/web/app/TestWebSession.java       |  4 +-
 .../openmeetings/web/pages/TestHashPage.java       |  4 +-
 .../openmeetings/web/pages/auth/TestLoginUI.java   |  4 +-
 .../web/pages/install/TestInstall.java             | 24 +++---
 .../webservice/AbstractWebServiceTest.java         | 50 +++----------
 .../webservice/CreateTomcatExtension.java          | 85 ++++++++++++++++++++++
 .../webservice/TestCalendarService.java            | 14 ++--
 .../openmeetings/webservice/TestErrorService.java  |  2 +-
 .../openmeetings/webservice/TestFileService.java   | 11 ++-
 .../openmeetings/webservice/TestGroupService.java  |  4 +-
 .../webservice/TestRecordingService.java           |  2 +-
 .../openmeetings/webservice/TestUserService.java   | 22 ++++--
 openmeetings-webservice/pom.xml                    |  3 +-
 .../webservice/util/OmExceptionHandler.java        | 21 ++++--
 pom.xml                                            | 11 +--
 67 files changed, 345 insertions(+), 293 deletions(-)

diff --git a/openmeetings-server/pom.xml b/openmeetings-server/pom.xml
index 79c9ba4..090f428 100644
--- a/openmeetings-server/pom.xml
+++ b/openmeetings-server/pom.xml
@@ -55,7 +55,6 @@
                        <properties>
                                <assembly.finalName>server</assembly.finalName>
                                <assembly.descriptor>quick</assembly.descriptor>
-                               <site.skip>true</site.skip>
                        </properties>
                        <build>
                                <plugins>
diff --git a/openmeetings-server/src/site/xdoc/BuildInstructions.xml 
b/openmeetings-server/src/site/xdoc/BuildInstructions.xml
index 6c733dc..0804851 100644
--- a/openmeetings-server/src/site/xdoc/BuildInstructions.xml
+++ b/openmeetings-server/src/site/xdoc/BuildInstructions.xml
@@ -72,7 +72,7 @@ cd ..; mvn clean install -PallModules,quick,mysql -pl 
openmeetings-util,openmeet
                        <p>In case you would like to develop Openmeetings you 
need to run <i>"unpacked"</i> build: </p>
                        <source>
 <![CDATA[
-mvn clean install -P allModules,unpacked,mysql -DskipTests=true 
-Dwicket.configuration=DEVELOPMENT
+mvn clean install -P allModules,unpacked,mysql -DskipTests=true 
-Dwicket.configuration=DEVELOPMENT -Dsite.skip=true
 ]]>
                        </source>
                        <p>After modifications are made you can run 
<i>"quick"</i> build: </p>
diff --git a/openmeetings-util/pom.xml b/openmeetings-util/pom.xml
index c1ecea7..f066117 100644
--- a/openmeetings-util/pom.xml
+++ b/openmeetings-util/pom.xml
@@ -58,23 +58,6 @@
                        </resource>
                </resources>
        </build>
-       <profiles>
-               <profile>
-                       <id>Jenkins</id>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>org.apache.maven.plugins</groupId>
-                                               
<artifactId>maven-surefire-plugin</artifactId>
-                                               <inherited>true</inherited>
-                                               <configuration>
-                                                       
<excludedGroups>org.apache.openmeetings.test.NonJenkinsTests</excludedGroups>
-                                               </configuration>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
-       </profiles>
        <dependencies>
                <dependency>
                        <groupId>org.dom4j</groupId>
diff --git 
a/openmeetings-util/src/test/java/org/apache/openmeetings/test/NonJenkinsTests.java
 
b/openmeetings-util/src/test/java/org/apache/openmeetings/test/NonJenkinsTest.java
similarity index 69%
rename from 
openmeetings-util/src/test/java/org/apache/openmeetings/test/NonJenkinsTests.java
rename to 
openmeetings-util/src/test/java/org/apache/openmeetings/test/NonJenkinsTest.java
index 350e96b..285c88a 100644
--- 
a/openmeetings-util/src/test/java/org/apache/openmeetings/test/NonJenkinsTests.java
+++ 
b/openmeetings-util/src/test/java/org/apache/openmeetings/test/NonJenkinsTest.java
@@ -18,6 +18,17 @@
  */
 package org.apache.openmeetings.test;
 
-public @interface NonJenkinsTests {
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
 
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Tag("non-jenkins")
+@Test
+public @interface NonJenkinsTest {
 }
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index bcfd548..d4def4e 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -65,21 +65,6 @@
                                <db_pass>openmeetings_test</db_pass>
                        </properties>
                </profile>
-               <profile>
-                       <id>Jenkins</id>
-                       <build>
-                               <plugins>
-                                       <plugin>
-                                               
<groupId>org.apache.maven.plugins</groupId>
-                                               
<artifactId>maven-surefire-plugin</artifactId>
-                                               <inherited>true</inherited>
-                                               <configuration>
-                                                       
<excludedGroups>org.apache.openmeetings.test.HeavyTests,org.apache.openmeetings.test.NonJenkinsTests</excludedGroups>
-                                               </configuration>
-                                       </plugin>
-                               </plugins>
-                       </build>
-               </profile>
        </profiles>
        <build>
                <plugins>
@@ -457,7 +442,7 @@
                                <inherited>true</inherited>
                                <configuration>
                                        
<workingDirectory>${project.build.directory}</workingDirectory>
-                                       
<excludedGroups>org.apache.openmeetings.test.HeavyTests</excludedGroups>
+                                       
<excludedGroups>heavy-test</excludedGroups>
                                        <systemPropertyVariables>
                                                
<om.home>${project.build.directory}/test-root</om.home>
                                                
<languages.home>${project.build.directory}/test-root/languages</languages.home>
@@ -471,6 +456,29 @@
                                        </additionalClasspathElements>
                                        <skip>${maven.test.skip}</skip>
                                </configuration>
+                               <executions>
+                                       <execution>
+                                               <id>default-test</id>
+                                               <configuration>
+                                                       <groups>regular</groups>
+                                               </configuration>
+                                       </execution>
+                                       <execution>
+                                               <id>isolated-test</id>
+                                               <goals><goal>test</goal></goals>
+                                               <configuration>
+                                                       
<reuseForks>false</reuseForks>
+                                                       
<groups>isolated</groups>
+                                               </configuration>
+                                       </execution>
+                                       <execution>
+                                               <id>webservice-test</id>
+                                               <goals><goal>test</goal></goals>
+                                               <configuration>
+                                                       
<groups>webservice</groups>
+                                               </configuration>
+                                       </execution>
+                               </executions>
                        </plugin>
                </plugins>
        </build>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
index 06c939f..a862c7f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
@@ -28,7 +28,6 @@ import java.text.DecimalFormat;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 
 import org.apache.openmeetings.backup.BackupExport;
 import org.apache.openmeetings.backup.BackupImport;
@@ -91,19 +90,7 @@ public class BackupPanel extends AdminBasePanel {
        private class BackupForm extends Form<Void> {
                private static final long serialVersionUID = 1L;
                private final Model<Boolean> includeFilesInBackup = 
Model.of(true);
-               private final FileUploadField fileUploadField = new 
FileUploadField("fileInput", new IModel<List<FileUpload>>() {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       public void setObject(List<FileUpload> object) {
-                               //no-op
-                       }
-
-                       @Override
-                       public List<FileUpload> getObject() {
-                               return new ArrayList<>();
-                       }
-               }) {
+               private final FileUploadField fileUploadField = new 
FileUploadField("fileInput", Model.ofList(new ArrayList<FileUpload>())) {
                        private static final long serialVersionUID = 1L;
 
                        @Override
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml
index 6ba3b7d..e375507 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml
@@ -59,6 +59,7 @@
                        <bean 
class="org.apache.openmeetings.webservice.util.AppointmentListMessageBodyWriter"/>
                        <bean 
class="org.apache.openmeetings.webservice.util.UserMessageBodyWriter"/>
                        <bean 
class="org.apache.openmeetings.webservice.util.OmParamConverterProvider"/>
+                       <bean 
class="org.apache.openmeetings.webservice.util.OmExceptionHandler"/>
                </jaxrs:providers>
                <jaxrs:outInterceptors>
                        <bean id="allowOriginProvider" 
class="org.apache.openmeetings.webservice.util.AllowOriginProvider"/>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
index 4c3f21b..0e64c18 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
@@ -21,7 +21,7 @@
 <hazelcast
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                xmlns="http://www.hazelcast.com/schema/config";
-               xsi:schemaLocation="http://www.hazelcast.com/schema/config 
http://www.hazelcast.com/schema/config/hazelcast-config-4.2.xsd";
+               xsi:schemaLocation="http://www.hazelcast.com/schema/config 
http://www.hazelcast.com/schema/config/hazelcast-config-5.0.xsd";
        >
        <map name="ONLINE_USERS_KEY">
                <near-cache>
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java
similarity index 88%
rename from 
openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
rename to 
openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java
index 3ac007f..b277a75 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java
@@ -25,12 +25,14 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getCryptClassNa
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.util.Date;
 import java.util.Random;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
@@ -39,14 +41,20 @@ import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.installation.InstallationConfig;
+import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.tomcat.util.scan.Constants;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
 
-public abstract class AbstractJUnitDefaults extends AbstractSpringTest {
-       private static final Logger log = 
LoggerFactory.getLogger(AbstractJUnitDefaults.class);
+@SpringJUnitWebConfig(locations={"classpath:applicationContext.xml"})
+@RegularTest
+public abstract class AbstractOmServerTest {
+       private static final Logger log = 
LoggerFactory.getLogger(AbstractOmServerTest.class);
        private static final String timeZone = "Europe/Berlin";
        public static final int ONE_HOUR = 60 * 60 * 1000;
        public static final String adminUsername = "admin";
@@ -72,8 +80,18 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
        @Autowired
        protected Application app;
 
+       @BeforeAll
+       public static void init() {
+               setOmHome();
+               System.setProperty(Constants.SKIP_JARS_PROPERTY, "*");
+               LabelDao.initLanguageMap();
+               if (LabelDao.getLanguages().isEmpty()) {
+                       fail("Failed to set languages");
+               }
+       }
+
        @BeforeEach
-       public void setUp() throws Exception {
+       public void serverSetup() throws Exception {
                if (app.getName() == null) {
                        app.setName(DEFAULT_CONTEXT_NAME);
                }
@@ -84,6 +102,14 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
                ensureSchema(userDao, importInitvalues);
        }
 
+       public static void setOmHome() {
+               String webappsDir = System.getProperty("om.home", ".");
+               OmFileHelper.setOmHome(webappsDir);
+               if (!OmFileHelper.getOmHome().exists() || 
!OmFileHelper.getOmHome().isDirectory()) {
+                       fail("Invalid directory is specified as OM HOME: " + 
webappsDir);
+               }
+       }
+
        public static void ensureSchema(UserDao userDao, ImportInitvalues 
importInitvalues) throws Exception {
                if (userDao.count() < 1) {
                        makeDefaultScheme(importInitvalues);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java
deleted file mode 100644
index e8fc40a..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.
- */
-package org.apache.openmeetings;
-
-import static org.junit.jupiter.api.Assertions.fail;
-
-import org.apache.openmeetings.db.dao.label.LabelDao;
-import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.tomcat.util.scan.Constants;
-import org.junit.jupiter.api.BeforeAll;
-import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
-
-@SpringJUnitWebConfig(locations={"classpath:applicationContext.xml"})
-public abstract class AbstractSpringTest {
-       @BeforeAll
-       public static void init() {
-               setOmHome();
-               System.setProperty(Constants.SKIP_JARS_PROPERTY, "*");
-               LabelDao.initLanguageMap();
-               if (LabelDao.getLanguages().isEmpty()) {
-                       fail("Failed to set languages");
-               }
-       }
-
-       public static void setOmHome() {
-               String webappsDir = System.getProperty("om.home", ".");
-               OmFileHelper.setOmHome(webappsDir);
-               if (!OmFileHelper.getOmHome().exists() || 
!OmFileHelper.getOmHome().isDirectory()) {
-                       fail("Invalid directory is specified as OM HOME: " + 
webappsDir);
-               }
-       }
-}
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTesterTest.java
similarity index 97%
rename from 
openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
rename to 
openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTesterTest.java
index 6285b75..773cbd1 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTesterTest.java
@@ -47,8 +47,8 @@ import org.junit.jupiter.api.BeforeEach;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class AbstractWicketTester extends AbstractJUnitDefaults {
-       private static final Logger log = 
LoggerFactory.getLogger(AbstractWicketTester.class);
+public class AbstractWicketTesterTest extends AbstractOmServerTest {
+       private static final Logger log = 
LoggerFactory.getLogger(AbstractWicketTesterTest.class);
        public static final String PATH_CHILD = 
"main-container:main:contents:child";
        public static final String PATH_MENU = 
"main-container:main:topControls:menu:menu";
        protected WicketTester tester;
@@ -77,10 +77,8 @@ public class AbstractWicketTester extends 
AbstractJUnitDefaults {
                return escapeMarkup(getString(lbl)).toString();
        }
 
-       @Override
        @BeforeEach
        public void setUp() throws Exception {
-               super.setUp();
                tester = getWicketTester(app);
                assertNotNull(WebSession.get(), "Web session should not be 
null");
                Locale[] locales = Locale.getAvailableLocales();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
 b/openmeetings-web/src/test/java/org/apache/openmeetings/IsolatedTest.java
similarity index 69%
copy from 
openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
copy to openmeetings-web/src/test/java/org/apache/openmeetings/IsolatedTest.java
index 361b090..85a526a 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/IsolatedTest.java
@@ -16,16 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.smoke;
+package org.apache.openmeetings;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Tag;
 
-class TestSmokeBasic extends AbstractJUnitDefaults {
-       @Test
-       void createErrorValueAndTest() {
-               assertNotNull(userDao.get(1L));
-       }
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Tag("isolated")
+public @interface IsolatedTest {
 }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
 b/openmeetings-web/src/test/java/org/apache/openmeetings/RegularTest.java
similarity index 69%
copy from 
openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
copy to openmeetings-web/src/test/java/org/apache/openmeetings/RegularTest.java
index 361b090..73a8e94 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/RegularTest.java
@@ -16,16 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.smoke;
+package org.apache.openmeetings;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Tag;
 
-class TestSmokeBasic extends AbstractJUnitDefaults {
-       @Test
-       void createErrorValueAndTest() {
-               assertNotNull(userDao.get(1L));
-       }
+@Target({ ElementType.TYPE, ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@Tag("regular")
+public @interface RegularTest {
 }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
index e0904e9..4f44062 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
@@ -26,21 +26,19 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_SOX
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getCryptClassName;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class AbstractTestImport extends AbstractJUnitDefaults {
+public class AbstractTestImport extends AbstractOmServerTest {
        private String cryptClass = null;
        @Autowired
        protected BackupImport backupImport;
 
-       @Override
        @BeforeEach
        public void setUp() throws Exception {
-               super.setUp();
                // Crypt class need to be preserved here to avoid overriding by 
backup import
                cryptClass = getCryptClassName();
        }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
index 04bd0dc..8327cae 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
@@ -33,7 +33,7 @@ import java.time.LocalDate;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Marshaller;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
@@ -45,7 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 
 import com.sun.xml.bind.marshaller.CharacterEscapeHandler;
 
-class TestExport extends AbstractJUnitDefaults {
+class TestExport extends AbstractOmServerTest {
        @Autowired
        private FileItemDao fileItemDao;
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
index 5819d14..65ba0b0 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
@@ -29,7 +29,7 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
@@ -45,7 +45,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestAppointmentAddAppointment extends AbstractWicketTester {
+class TestAppointmentAddAppointment extends AbstractWicketTesterTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestAppointmentAddAppointment.class);
 
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
index 642c15f..50996e8 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
@@ -23,7 +23,7 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setBaseUrl;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.service.calendar.AppointmentLogic;
 import org.junit.jupiter.api.Test;
@@ -31,7 +31,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestAppointmentSchedulerTask extends AbstractJUnitDefaults {
+class TestAppointmentSchedulerTask extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestAppointmentSchedulerTask.class);
 
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
index a5993c2..21371c2 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
@@ -24,13 +24,13 @@ import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestDatabaseStructureAppointment extends AbstractJUnitDefaults {
+class TestDatabaseStructureAppointment extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestDatabaseStructureAppointment.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
index cf58b10..33f9a57 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
@@ -23,14 +23,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import java.util.ArrayList;
 import java.util.Calendar;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestDatabaseStructureGetAppointmentByRange extends AbstractJUnitDefaults 
{
+class TestDatabaseStructureGetAppointmentByRange extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestDatabaseStructureGetAppointmentByRange.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
index 9898299..a40d9a8 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
@@ -18,12 +18,12 @@
  */
 package org.apache.openmeetings.calendar;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestDatabaseStructureGetUserStart extends AbstractJUnitDefaults {
+class TestDatabaseStructureGetUserStart extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestDatabaseStructureGetUserStart.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
index 25e4d16..b29ffdb 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
@@ -18,10 +18,10 @@
  */
 package org.apache.openmeetings.calendar;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.junit.jupiter.api.Test;
 
-class TestDatabaseStructureMeetingMember extends AbstractJUnitDefaults {
+class TestDatabaseStructureMeetingMember extends AbstractOmServerTest {
 
        @Test
        void testUpdateMeetingMember(){
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
index 511b803..bde1652 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
@@ -24,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import java.util.Calendar;
 import java.util.Date;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.junit.jupiter.api.Test;
@@ -32,7 +32,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestGetAppointment extends AbstractJUnitDefaults {
+class TestGetAppointment extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestGetAppointment.class);
 
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
index 9b1483f..cf9e953 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
@@ -21,14 +21,14 @@ package org.apache.openmeetings.calendar;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
 import org.apache.openmeetings.db.entity.calendar.OmCalendar;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestOmCalendar extends AbstractJUnitDefaults {
+class TestOmCalendar extends AbstractOmServerTest {
        @Autowired
        private OmCalendarDao calendarDao;
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
index 7da0ed6..2d3d2cf 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
@@ -35,7 +35,7 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.core.mail.MailHandler;
 import org.apache.openmeetings.util.mail.ByteArrayDataSource;
 import org.apache.openmeetings.util.mail.IcalHandler;
@@ -44,7 +44,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestSendIcalMessage extends AbstractJUnitDefaults {
+class TestSendIcalMessage extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestSendIcalMessage.class);
 
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestAdmin.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestAdmin.java
index 38bcf05..5ba13a8 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestAdmin.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestAdmin.java
@@ -19,11 +19,11 @@
 package org.apache.openmeetings.cli;
 
 import static org.apache.commons.io.FileUtils.deleteQuietly;
-import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
-import static org.apache.openmeetings.AbstractJUnitDefaults.email;
-import static org.apache.openmeetings.AbstractJUnitDefaults.group;
-import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
-import static org.apache.openmeetings.AbstractSpringTest.setOmHome;
+import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
+import static org.apache.openmeetings.AbstractOmServerTest.email;
+import static org.apache.openmeetings.AbstractOmServerTest.group;
+import static org.apache.openmeetings.AbstractOmServerTest.setOmHome;
+import static org.apache.openmeetings.AbstractOmServerTest.userpass;
 import static org.apache.openmeetings.cli.Admin.OM_HOME;
 import static 
org.apache.openmeetings.db.util.ApplicationHelper.destroyApplication;
 import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
@@ -42,12 +42,14 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
+import org.apache.openmeetings.IsolatedTest;
 import org.apache.wicket.Application;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+@IsolatedTest
 class TestAdmin {
        private File tempFolder;
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestPatcher.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestPatcher.java
index 149583f..194572c 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestPatcher.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/cli/TestPatcher.java
@@ -18,13 +18,14 @@
  */
 package org.apache.openmeetings.cli;
 
-import static org.apache.openmeetings.AbstractSpringTest.setOmHome;
+import static org.apache.openmeetings.AbstractOmServerTest.setOmHome;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.IOException;
 import java.util.TimeZone;
 
 import org.apache.openjpa.lib.util.Files;
+import org.apache.openmeetings.IsolatedTest;
 import org.apache.openmeetings.util.ConnectionProperties;
 import org.apache.openmeetings.util.ConnectionProperties.DbType;
 import org.apache.openmeetings.util.OmFileHelper;
@@ -36,6 +37,7 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
+@IsolatedTest
 class TestPatcher {
        private static final String HOST = "myhost";
        private static final String PORT = "6666";
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java
index 9e45fbb..56bce75 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java
@@ -24,13 +24,13 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 
 import java.util.List;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestConfig extends AbstractJUnitDefaults {
+class TestConfig extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestConfig.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
index 5a0545f..e472b79 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
@@ -28,7 +28,7 @@ import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.Optional;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.core.data.file.FileProcessor;
 import org.apache.openmeetings.db.dto.file.FileItemDTO;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
@@ -37,7 +37,7 @@ import org.apache.openmeetings.util.process.ProcessResultList;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestFileProcessor extends AbstractJUnitDefaults {
+class TestFileProcessor extends AbstractOmServerTest {
        private static final String FILE_NAME = "test_name";
 
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
index 058705d..6e9b0a4 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
@@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import java.util.List;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
@@ -33,7 +33,7 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestFileDao extends AbstractJUnitDefaults {
+class TestFileDao extends AbstractOmServerTest {
        @Autowired
        protected FileItemDao fileDao;
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
index 30e02be..86ee4ca 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
@@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
@@ -36,7 +36,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestRoomDao extends AbstractJUnitDefaults {
+class TestRoomDao extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestRoomDao.class);
        @Autowired
        protected RoomDao roomDao;
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
index 03d1726..18bc5c0 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
@@ -20,14 +20,14 @@ package org.apache.openmeetings.domain;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestAddGroup extends AbstractJUnitDefaults {
+class TestAddGroup extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestAddGroup.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
index 576757e..3aec7e8 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
@@ -21,14 +21,14 @@ package org.apache.openmeetings.domain;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestUserGroupAggregation extends AbstractJUnitDefaults {
+class TestUserGroupAggregation extends AbstractOmServerTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestUserGroupAggregation.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
index ec508a2..bd5b349 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertNotNull;
 import java.time.LocalDateTime;
 import java.util.Date;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.room.Invitation;
@@ -36,7 +36,7 @@ import org.apache.openmeetings.service.room.InvitationManager;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestInvitation extends AbstractWicketTester {
+class TestInvitation extends AbstractWicketTesterTest {
        @Autowired
        private InvitationManager invitationManager;
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
index fe1296d..0f4e998 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
@@ -52,7 +52,7 @@ import 
org.apache.directory.server.core.annotations.ApplyLdifFiles;
 import org.apache.directory.server.core.annotations.CreateDS;
 import org.apache.directory.server.core.annotations.CreatePartition;
 import org.apache.directory.server.protocol.shared.transport.Transport;
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.core.ldap.LdapLoginManager;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
@@ -71,7 +71,7 @@ import org.springframework.beans.factory.annotation.Autowired;
        })
 @CreateLdapServer(transports = { @CreateTransport(protocol = "LDAP", address = 
"localhost")})
 @ApplyLdifFiles({"schema/users.ldif"})
-class TestLdap extends AbstractWicketTester {
+class TestLdap extends AbstractWicketTesterTest {
        private static final String CFG_SEARCH_BIND = 
UUID.randomUUID().toString();
        private static final String BAD_PASSWORD = "bad password";
        private static final String USER1 = "ldaptest1";
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/TestEmailTemplate.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/TestEmailTemplate.java
index 9f0e26f..1476a8b 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/TestEmailTemplate.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/TestEmailTemplate.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.service.mail.template;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.UserContact;
 import org.apache.wicket.util.string.Strings;
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
-class TestEmailTemplate extends AbstractWicketTester {
+class TestEmailTemplate extends AbstractWicketTesterTest {
        private static void checkTemplate(String eml) {
                assertFalse(Strings.isEmpty(eml), "Body should be not empty");
        }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/subject/TestSubjTemplate.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/subject/TestSubjTemplate.java
index 5d6e699..d579181 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/subject/TestSubjTemplate.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/mail/template/subject/TestSubjTemplate.java
@@ -29,7 +29,7 @@ import java.util.Locale;
 import java.util.TimeZone;
 import java.util.function.Consumer;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.Group;
@@ -37,7 +37,7 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.util.string.Strings;
 import org.junit.jupiter.api.Test;
 
-class TestSubjTemplate extends AbstractWicketTester {
+class TestSubjTemplate extends AbstractWicketTesterTest {
        private static void checkTemplate(SubjectEmailTemplate t) {
                assertNotNull(t, "Template should be created");
                assertFalse(Strings.isEmpty(t.getSubject()), "Subject should be 
not empty");
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
index 89515a8..c2521fd 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
@@ -32,7 +32,7 @@ import java.time.ZoneId;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.core.mail.MailHandler;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.db.entity.user.Group;
@@ -48,7 +48,7 @@ import org.mockito.stubbing.Answer;
 import org.springframework.beans.factory.annotation.Autowired;
 
 @ExtendWith(MockitoExtension.class)
-class TestJob extends AbstractWicketTester {
+class TestJob extends AbstractWicketTesterTest {
        @Autowired
        private CleanupJob cleanJob;
        @Mock
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
index 361b090..073daec 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
@@ -20,10 +20,10 @@ package org.apache.openmeetings.smoke;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.junit.jupiter.api.Test;
 
-class TestSmokeBasic extends AbstractJUnitDefaults {
+class TestSmokeBasic extends AbstractOmServerTest {
        @Test
        void createErrorValueAndTest() {
                assertNotNull(userDao.get(1L));
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
index 6aeb394..2831699 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
@@ -29,11 +29,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.List;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 
-class TestUserContact extends AbstractWicketTester {
+class TestUserContact extends AbstractWicketTesterTest {
 
        @Test
        void testGetUser() {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
index f835642..73957e2 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
@@ -23,12 +23,12 @@ import static 
org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 
-class TestUserCount extends AbstractWicketTester {
+class TestUserCount extends AbstractWicketTesterTest {
        @Test
        void testCountSearchUsers() throws Exception {
                User u = createUser();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
index d201a8b..f4c4683 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
@@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.util.List;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.user.GroupUserDao;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestUserGroup extends AbstractJUnitDefaults {
+class TestUserGroup extends AbstractOmServerTest {
        public static final String GROUP_NAME = "Test Group";
        @Autowired
        private GroupUserDao groupUserDao;
@@ -106,7 +106,7 @@ class TestUserGroup extends AbstractJUnitDefaults {
        }
 
        @Test
-       @Tag("org.apache.openmeetings.test.HeavyTests")
+       @Tag("heavy-test")
        void add10kUsers() throws Exception {
                List<Group> groups = groupDao.get(GROUP_NAME, 0, 1, null);
                Group g = null;
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
index 15a4808..b2a36aa 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
@@ -22,13 +22,13 @@ import static java.util.UUID.randomUUID;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-class TestAuth extends AbstractJUnitDefaults {
+class TestAuth extends AbstractOmServerTest {
        @Autowired
        private SessiondataDao sessionDao;
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
index 7a6e834..43133d1 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
@@ -20,12 +20,12 @@ package org.apache.openmeetings.userdata;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmException;
 import org.junit.jupiter.api.Test;
 
-class TestLogin extends AbstractJUnitDefaults {
+class TestLogin extends AbstractOmServerTest {
        @Test
        void testTestLogin() throws OmException {
                User us = userDao.login(adminUsername, userpass);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestDateTime.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestDateTime.java
index 926c59a..b6500ca 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestDateTime.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestDateTime.java
@@ -29,9 +29,11 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
 
+import org.apache.openmeetings.RegularTest;
 import org.apache.openmeetings.web.common.datetime.AbstractOmDateTimePicker;
 import org.junit.jupiter.api.Test;
 
+@RegularTest
 class TestDateTime {
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestStoredFile.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestStoredFile.java
index ff343c3..4529a41 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestStoredFile.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/util/TestStoredFile.java
@@ -25,10 +25,10 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.junit.jupiter.api.Test;
 
-class TestStoredFile extends AbstractJUnitDefaults {
+class TestStoredFile extends AbstractOmServerTest {
        @Test
        void testPng() throws FileNotFoundException, IOException {
                File f = getDefaultProfilePicture();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
index 4d14dfe..16d5a97 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
@@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import java.time.LocalDateTime;
 import java.util.List;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmException;
@@ -38,7 +38,7 @@ import com.googlecode.wicket.jquery.ui.calendar.CalendarView;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.navbar.Navbar;
 
-class TestCalendar extends AbstractWicketTester {
+class TestCalendar extends AbstractWicketTesterTest {
        private static final String PATH_APPOINTMENT_DLG = 
String.format("%s:calendarAppointment", PATH_CHILD);
        private static final String PATH_APPOINTMENT_DLG_FRM = 
String.format("%s:appForm", PATH_APPOINTMENT_DLG);
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
index a24b3e2..e433169 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
@@ -40,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.util.function.Consumer;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.admin.backup.BackupPanel;
 import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
@@ -73,7 +73,7 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-class TestMainAreas extends AbstractWicketTester {
+class TestMainAreas extends AbstractWicketTesterTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestMainAreas.class);
 
        @Test
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
index adfd94c..344111d 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.web;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.admin.backup.BackupPanel;
 import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
@@ -42,7 +42,7 @@ import org.junit.jupiter.api.Test;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.navbar.Navbar;
 
-class TestMainMenu extends AbstractWicketTester {
+class TestMainMenu extends AbstractWicketTesterTest {
        private void checkMenuItem(int idx1, Integer idx2, Class<? extends 
BasePanel> clazz) throws OmException {
                testArea(adminUsername, p -> {
                        Navbar menu = (Navbar)p.get(PATH_MENU);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
index 985d45b..0a305c0 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
@@ -29,11 +29,11 @@ import java.util.Locale;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.junit.jupiter.api.Test;
 
-class TestApplication extends AbstractJUnitDefaults {
+class TestApplication extends AbstractOmServerTest {
        @Test
        void testMissing() {
                assertEquals("[Missing]", app.getOmString("909", 
Locale.ENGLISH));
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
index 7d5fa53..fbeff05 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
@@ -21,9 +21,11 @@ package org.apache.openmeetings.web.app;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
+import org.apache.openmeetings.RegularTest;
 import org.apache.wicket.request.Url;
 import org.junit.jupiter.api.Test;
 
+@RegularTest
 class TestApplicationMocked {
        @Test
        void testWsUrlIncomplete() {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
index a055f3c..8c0a7c1 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
@@ -25,11 +25,11 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 
 import javax.servlet.http.Cookie;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 
-class TestOmAuthenticationStrategy extends AbstractWicketTester {
+class TestOmAuthenticationStrategy extends AbstractWicketTesterTest {
        @Test
        void test() {
                String encKey = randomUUID().toString();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
index b57c21e..6ac16bc 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
@@ -36,6 +36,7 @@ import java.io.IOException;
 import java.net.http.HttpRequest;
 import java.security.NoSuchAlgorithmException;
 
+import org.apache.openmeetings.RegularTest;
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.server.OAuthServer;
@@ -55,6 +56,7 @@ import org.mockito.invocation.InvocationOnMock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.stubbing.Answer;
 
+@RegularTest
 @ExtendWith(MockitoExtension.class)
 class TestUserManagerMocked {
        @Mock
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
index bfa1208..0c1ab7b 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
@@ -22,12 +22,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmException;
 import org.junit.jupiter.api.Test;
 
-class TestWebSession extends AbstractWicketTester {
+class TestWebSession extends AbstractWicketTesterTest {
        @Test
        void testLogin() throws OmException {
                WebSession ws = WebSession.get();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
index e94fa3c..fdab9aa 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
@@ -30,7 +30,7 @@ import static org.junit.Assert.assertEquals;
 import java.util.Date;
 import java.util.UUID;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -54,7 +54,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 
-class TestHashPage extends AbstractWicketTester {
+class TestHashPage extends AbstractWicketTesterTest {
        private static final Logger log = 
LoggerFactory.getLogger(TestHashPage.class);
 
        @Autowired
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
index 1dfcd8e..7d943b1 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
@@ -32,7 +32,7 @@ import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.WebSession;
@@ -47,7 +47,7 @@ import 
org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.jupiter.api.Test;
 
-class TestLoginUI extends AbstractWicketTester {
+class TestLoginUI extends AbstractWicketTesterTest {
        private final static String PATH_REGISTER = "register:form";
 
        private void checkLogin(String login, String pass) {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
index de2da84..a2f5d41 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
@@ -19,13 +19,14 @@
 package org.apache.openmeetings.web.pages.install;
 
 import static org.apache.commons.io.FileUtils.deleteQuietly;
-import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
-import static org.apache.openmeetings.AbstractJUnitDefaults.email;
-import static org.apache.openmeetings.AbstractJUnitDefaults.group;
-import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
-import static org.apache.openmeetings.AbstractWicketTester.checkErrors;
-import static org.apache.openmeetings.AbstractWicketTester.countErrors;
-import static org.apache.openmeetings.AbstractWicketTester.getWicketTester;
+import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
+import static org.apache.openmeetings.AbstractOmServerTest.email;
+import static org.apache.openmeetings.AbstractOmServerTest.group;
+import static org.apache.openmeetings.AbstractOmServerTest.setOmHome;
+import static org.apache.openmeetings.AbstractOmServerTest.userpass;
+import static org.apache.openmeetings.AbstractWicketTesterTest.checkErrors;
+import static org.apache.openmeetings.AbstractWicketTesterTest.countErrors;
+import static org.apache.openmeetings.AbstractWicketTesterTest.getWicketTester;
 import static 
org.apache.openmeetings.cli.ConnectionPropertiesPatcher.DEFAULT_DB_NAME;
 import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
@@ -41,8 +42,8 @@ import java.util.Locale;
 import java.util.Random;
 import java.util.TimeZone;
 
-import org.apache.openmeetings.AbstractSpringTest;
-import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.AbstractWicketTesterTest;
+import org.apache.openmeetings.IsolatedTest;
 import org.apache.openmeetings.cli.ConnectionPropertiesPatcher;
 import org.apache.openmeetings.util.ConnectionProperties.DbType;
 import org.apache.openmeetings.util.crypt.SCryptImplementation;
@@ -62,6 +63,7 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@IsolatedTest
 public class TestInstall {
        private static final Logger log = 
LoggerFactory.getLogger(TestInstall.class);
        private static final String WIZARD_PATH = "wizard";
@@ -91,7 +93,7 @@ public class TestInstall {
        @BeforeEach
        public void setUp() throws Exception {
                log.info("Going to perform setup for TestInstall");
-               AbstractSpringTest.setOmHome();
+               setOmHome();
                setWicketApplicationName(DEFAULT_APP_NAME);
                tempFolder = Files.createTempDirectory("omtempdb").toFile();
                setH2Home(tempFolder);
@@ -113,7 +115,7 @@ public class TestInstall {
        @AfterEach
        public void tearDown() throws Exception {
                log.info("Going to perform clean-up for TestInstall");
-               AbstractWicketTester.destroy(tester);
+               AbstractWicketTesterTest.destroy(tester);
                log.info("WicketTester is destroyed");
                resetH2Home();
                deleteQuietly(tempFolder);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
index 67cf812..e77fb4c 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
@@ -20,12 +20,11 @@ package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
 import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
-import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
-import static org.apache.openmeetings.AbstractJUnitDefaults.ensureSchema;
-import static org.apache.openmeetings.AbstractJUnitDefaults.soapUsername;
-import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
+import static org.apache.openmeetings.AbstractOmServerTest.createPass;
+import static org.apache.openmeetings.AbstractOmServerTest.ensureSchema;
+import static org.apache.openmeetings.AbstractOmServerTest.soapUsername;
+import static org.apache.openmeetings.AbstractOmServerTest.userpass;
 import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
-import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -33,21 +32,15 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.InetAddress;
-import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.ws.rs.core.Form;
 import javax.ws.rs.core.MediaType;
 
-import org.apache.catalina.LifecycleState;
-import org.apache.catalina.connector.Connector;
-import org.apache.catalina.startup.Tomcat;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
 import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
-import org.apache.openmeetings.AbstractSpringTest;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
@@ -58,12 +51,13 @@ import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.webservice.util.AppointmentMessageBodyReader;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
+@Tag("webservice")
 public class AbstractWebServiceTest {
-       private static Tomcat tomcat;
        private static final String HOST = "localhost";
        private static final String CONTEXT = "/openmeetings";
        private static int port = 8080;
@@ -73,6 +67,9 @@ public class AbstractWebServiceTest {
        public static final String UNIT_TEST_EXT_TYPE = "om_unit_tests";
        public static final long TIMEOUT = 5 * 60 * 1000;
 
+       @RegisterExtension
+       public static final CreateTomcatExtension tomcatExt = new 
CreateTomcatExtension(HOST, CONTEXT);
+
        protected static <T> T getBean(Class<T> clazz) {
                return ensureApplication().getBean(clazz);
        }
@@ -103,22 +100,7 @@ public class AbstractWebServiceTest {
 
        @BeforeAll
        public static void initialize() throws Exception {
-               AbstractSpringTest.init();
-               tomcat = new Tomcat();
-               Connector connector = new Connector("HTTP/1.1");
-               connector.setProperty("address", 
InetAddress.getByName(HOST).getHostAddress());
-               connector.setPort(0);
-               tomcat.getService().addConnector(connector);
-               tomcat.setConnector(connector);
-               File wd = Files.createTempDirectory("om" + 
randomUUID().toString()).toFile();
-               tomcat.setBaseDir(wd.getCanonicalPath());
-               tomcat.getHost().setAppBase(wd.getCanonicalPath());
-               tomcat.getHost().setAutoDeploy(false);
-               tomcat.getHost().setDeployOnStartup(false);
-               tomcat.addWebapp(CONTEXT, getOmHome().getAbsolutePath());
-               tomcat.getConnector(); // to init the connector
-               tomcat.start();
-               port = tomcat.getConnector().getLocalPort();
+               port = tomcatExt.getPort();
        }
 
        @BeforeEach
@@ -126,16 +108,6 @@ public class AbstractWebServiceTest {
                ensureSchema(getBean(UserDao.class), 
getBean(ImportInitvalues.class));
        }
 
-       @AfterAll
-       public static void destroy() throws Exception {
-               if (tomcat.getServer() != null && tomcat.getServer().getState() 
!= LifecycleState.DESTROYED) {
-                       if (tomcat.getServer().getState() != 
LifecycleState.STOPPED) {
-                               tomcat.stop();
-                       }
-                       tomcat.destroy();
-               }
-       }
-
        protected static CallResult<RoomDTO> createAndValidate(RoomDTO r) {
                return createAndValidate(null, r);
        }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/CreateTomcatExtension.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/CreateTomcatExtension.java
new file mode 100644
index 0000000..ad9c454
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/CreateTomcatExtension.java
@@ -0,0 +1,85 @@
+/*
+ * 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.
+ */
+package org.apache.openmeetings.webservice;
+
+import static java.util.UUID.randomUUID;
+import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
+
+import java.io.File;
+import java.net.InetAddress;
+import java.nio.file.Files;
+
+import org.apache.catalina.LifecycleState;
+import org.apache.catalina.connector.Connector;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.openmeetings.AbstractOmServerTest;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CreateTomcatExtension implements BeforeAllCallback {
+       private static final Logger log = 
LoggerFactory.getLogger(CreateTomcatExtension.class);
+       private String host;
+       private String context;
+       private int port = 8080;
+       private Tomcat tomcat;
+
+       public CreateTomcatExtension(String host, String context) {
+               this.host = host;
+               this.context = context;
+       }
+
+       @Override
+       public void beforeAll(ExtensionContext extContext) throws Exception {
+               if (tomcat == null) {
+                       
extContext.getRoot().getStore(ExtensionContext.Namespace.GLOBAL).put("my_report",
 new ExtensionContext.Store.CloseableResource() {
+                               @Override
+                               public void close() throws Throwable {
+                                       if (tomcat.getServer() != null && 
tomcat.getServer().getState() != LifecycleState.DESTROYED) {
+                                               if 
(tomcat.getServer().getState() != LifecycleState.STOPPED) {
+                                                       tomcat.stop();
+                                               }
+                                               tomcat.destroy();
+                                       }
+                               }
+                       });
+                       AbstractOmServerTest.init();
+                       tomcat = new Tomcat();
+                       Connector connector = new Connector("HTTP/1.1");
+                       connector.setProperty("address", 
InetAddress.getByName(host).getHostAddress());
+                       connector.setPort(0);
+                       tomcat.getService().addConnector(connector);
+                       tomcat.setConnector(connector);
+                       File wd = Files.createTempDirectory("om" + 
randomUUID().toString()).toFile();
+                       tomcat.setBaseDir(wd.getCanonicalPath());
+                       tomcat.getHost().setAppBase(wd.getCanonicalPath());
+                       tomcat.getHost().setAutoDeploy(false);
+                       tomcat.getHost().setDeployOnStartup(false);
+                       tomcat.addWebapp(context, 
getOmHome().getAbsolutePath());
+                       tomcat.getConnector(); // to init the connector
+                       tomcat.start();
+                       port = tomcat.getConnector().getLocalPort();
+               }
+       }
+
+       public int getPort() {
+               return port;
+       }
+}
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
index 18fdafa..ff962b0 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
@@ -19,11 +19,11 @@
 package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.AbstractJUnitDefaults.ONE_HOUR;
-import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
-import static org.apache.openmeetings.AbstractJUnitDefaults.createUser;
-import static org.apache.openmeetings.AbstractJUnitDefaults.getAppointment;
-import static org.apache.openmeetings.AbstractJUnitDefaults.getUser;
+import static org.apache.openmeetings.AbstractOmServerTest.ONE_HOUR;
+import static org.apache.openmeetings.AbstractOmServerTest.createPass;
+import static org.apache.openmeetings.AbstractOmServerTest.createUser;
+import static org.apache.openmeetings.AbstractOmServerTest.getAppointment;
+import static org.apache.openmeetings.AbstractOmServerTest.getUser;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -37,7 +37,7 @@ import java.util.List;
 import javax.ws.rs.core.Form;
 import javax.ws.rs.core.Response;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
 import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
@@ -69,7 +69,7 @@ class TestCalendarService extends AbstractWebServiceTest {
                u = getBean(UserDao.class).get(u.getId());
 
                Date start = new Date();
-               Appointment a = 
AbstractJUnitDefaults.createAppointment(getBean(AppointmentDao.class), 
getAppointment(u, r, start, new Date(start.getTime() + ONE_HOUR)));
+               Appointment a = 
AbstractOmServerTest.createAppointment(getBean(AppointmentDao.class), 
getAppointment(u, r, start, new Date(start.getTime() + ONE_HOUR)));
 
                AppointmentDTO app = getClient(getCalendarUrl()).path("/room/" 
+ a.getRoom().getId()).query("sid", sr.getMessage())
                                .get(AppointmentDTO.class);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
index 2b4f875..42124d6 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
@@ -19,7 +19,7 @@
 package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.AbstractJUnitDefaults.rnd;
+import static org.apache.openmeetings.AbstractOmServerTest.rnd;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
index 7a93bd5..4474b6f 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
@@ -20,9 +20,9 @@ package org.apache.openmeetings.webservice;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.UUID.randomUUID;
-import static 
org.apache.openmeetings.AbstractJUnitDefaults.UNIT_TEST_ARAB_EXT_TYPE;
-import static org.apache.openmeetings.AbstractJUnitDefaults.createUser;
-import static org.apache.openmeetings.AbstractJUnitDefaults.getUser;
+import static 
org.apache.openmeetings.AbstractOmServerTest.UNIT_TEST_ARAB_EXT_TYPE;
+import static org.apache.openmeetings.AbstractOmServerTest.createUser;
+import static org.apache.openmeetings.AbstractOmServerTest.getUser;
 import static org.junit.Assert.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -45,14 +45,13 @@ import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.test.NonJenkinsTest;
 import org.apache.wicket.util.encoding.UrlEncoder;
-import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
 class TestFileService extends AbstractWebServiceTest {
 
-       @Test
-       @Tag("org.apache.openmeetings.test.NonJenkinsTests")
+       @NonJenkinsTest
        void addFileTest() throws IOException {
                File img = null;
                try {
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
index 820c4a3..3b24400 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
@@ -18,8 +18,8 @@
  */
 package org.apache.openmeetings.webservice;
 
-import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
-import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
+import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
+import static org.apache.openmeetings.AbstractOmServerTest.userpass;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
index 142cd76..e237380 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
@@ -19,7 +19,7 @@
 package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.AbstractJUnitDefaults.getUser;
+import static org.apache.openmeetings.AbstractOmServerTest.getUser;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
index 104ab48..e3319ba 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
@@ -20,10 +20,10 @@ package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
 import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
-import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
-import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
-import static org.apache.openmeetings.AbstractJUnitDefaults.rnd;
-import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
+import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
+import static org.apache.openmeetings.AbstractOmServerTest.createPass;
+import static org.apache.openmeetings.AbstractOmServerTest.rnd;
+import static org.apache.openmeetings.AbstractOmServerTest.userpass;
 import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -177,8 +177,20 @@ class TestUserService extends AbstractWebServiceTest {
                ServiceResult r = login();
                Collection<? extends UserDTO> users = getClient(getUserUrl())
                                .path("/")
-                               .query("sid", 
r.getMessage()).getCollection(UserDTO.class);
+                               .query("sid", r.getMessage())
+                               .getCollection(UserDTO.class);
                assertNotNull(users, "Collection should be not null");
                assertFalse(users.isEmpty(), "Collection should be not empty");
        }
+
+       @Test
+       void listNoAuth() {
+               Response r = getClient(getUserUrl())
+                               .path("/")
+                               .get();
+               assertEquals(500, r.getStatus(), "Not allowed error");
+               assertTrue(r.hasEntity());
+               ServiceResult result = r.readEntity(ServiceResult.class);
+               assertEquals(ServiceResult.Type.ERROR.name(), result.getType());
+       }
 }
diff --git a/openmeetings-webservice/pom.xml b/openmeetings-webservice/pom.xml
index 31dfb65..ee5580f 100644
--- a/openmeetings-webservice/pom.xml
+++ b/openmeetings-webservice/pom.xml
@@ -47,7 +47,7 @@
                                                                        
<packages>org.apache.openmeetings.webservice</packages>
                                                                </group>
                                                        </groups>
-                                                       
<skip>${om.quick.build}</skip>
+                                                       
<skip>${site.skip}</skip>
                                                </configuration>
                                                <goals>
                                                        
<goal>javadoc-no-fork</goal>
@@ -147,6 +147,7 @@
                                                        </server>
                                                </servers>
                                        </swaggerConfig>
+                                       <skip>${site.skip}</skip>
                                </configuration>
                                <executions>
                                        <execution>
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java
similarity index 55%
copy from 
openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
copy to 
openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java
index 361b090..56aac5d 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java
@@ -16,16 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.smoke;
+package org.apache.openmeetings.webservice.util;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.ExceptionMapper;
 
-import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.junit.jupiter.api.Test;
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.webservice.error.ServiceException;
 
-class TestSmokeBasic extends AbstractJUnitDefaults {
-       @Test
-       void createErrorValueAndTest() {
-               assertNotNull(userDao.get(1L));
+public class OmExceptionHandler implements ExceptionMapper<ServiceException> {
+       @Override
+       public Response toResponse(ServiceException exception) {
+               return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
+                               .entity(new 
ServiceResult(exception.getMessage(), Type.ERROR))
+                               .header("exception", exception.getMessage())
+                               .build();
        }
 }
diff --git a/pom.xml b/pom.xml
index 446b51b..0058f41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,9 +80,9 @@
                <swagger-plugin.version>2.1.6</swagger-plugin.version>
                <!-- dependency versions -->
                <junit.version>5.8.1</junit.version>
-               <wicket.version>9.5.0</wicket.version>
+               <wicket.version>9.6.0</wicket.version>
                <wicket-jquery-ui.version>9.5.0</wicket-jquery-ui.version>
-               <wicketstuff.version>9.5.0</wicketstuff.version>
+               <wicketstuff.version>9.6.0</wicketstuff.version>
                <wicket-bootstrap.version>6.0.0-M4</wicket-bootstrap.version>
                <font-awesome.version>5.15.4</font-awesome.version>
                <spring.version>5.3.12</spring.version>
@@ -1049,7 +1049,7 @@
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-site-plugin</artifactId>
                                <configuration>
-                                       <skip>${om.quick.build}</skip>
+                                       <skip>${site.skip}</skip>
                                </configuration>
                                <executions>
                                        <execution>
@@ -1250,7 +1250,7 @@
                                        
<version>${maven-surefire-plugin.version}</version>
                                        <configuration>
                                                <forkCount>1</forkCount>
-                                               <reuseForks>false</reuseForks>
+                                               <reuseForks>true</reuseForks>
                                                <includes>
                                                        
<include>**/Test*.java</include>
                                                </includes>
@@ -1711,6 +1711,7 @@
                        <id>quick</id>
                        <properties>
                                <maven.test.skip>true</maven.test.skip>
+                               <site.skip>true</site.skip>
                                <om.quick.build>true</om.quick.build>
                                <om.notquick.build>false</om.notquick.build>
                                
<wicket.configuration>DEVELOPMENT</wicket.configuration>
@@ -1864,7 +1865,7 @@
                                                
<groupId>org.apache.maven.plugins</groupId>
                                                
<artifactId>maven-surefire-plugin</artifactId>
                                                <configuration>
-                                                       
<excludedGroups>org.apache.openmeetings.test.NonJenkinsTests</excludedGroups>
+                                                       
<excludedGroups>heavy-test,non-jenkins</excludedGroups>
                                                </configuration>
                                        </plugin>
                                </plugins>

Reply via email to