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

solomax pushed a commit to branch h2-test-DB
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 908fa6298519d5d6448f331a3a909cbf0742ceaa
Author: Maxim Solodovnik <solomax...@gmail.com>
AuthorDate: Tue Dec 25 16:01:41 2018 +0700

    no jira: H2 is being used as main test DB
---
 openmeetings-core/pom.xml                          |  1 -
 .../java/org/apache/openmeetings/cli/Admin.java    |  2 +-
 .../cli/ConnectionPropertiesPatcher.java           | 19 +++--
 .../org/apache/openmeetings/cli/H2Patcher.java     | 26 +++++++
 .../service/calendar/caldav/IcalUtils.java         | 25 ++++---
 .../openmeetings/util/ConnectionProperties.java    | 20 ++++--
 .../org/apache/openmeetings/util/OmFileHelper.java |  6 +-
 openmeetings-web/pom.xml                           |  8 ++-
 .../web/pages/install/InstallWizard.java           | 58 ++++++++++------
 .../WEB-INF/classes/META-INF/h2_persistence.xml    | 81 ++++++++++++++++++++++
 .../org/apache/openmeetings/cli/TestAdmin.java     |  4 +-
 .../openmeetings/derby/PrepareSystemFiles.java     |  2 +-
 .../webservice/AbstractWebServiceTest.java         | 17 ++++-
 pom.xml                                            |  8 ++-
 14 files changed, 221 insertions(+), 56 deletions(-)

diff --git a/openmeetings-core/pom.xml b/openmeetings-core/pom.xml
index d7538d8..a6b4b0e 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@ -98,7 +98,6 @@
                <dependency>
                        <groupId>org.kurento</groupId>
                        <artifactId>kurento-client</artifactId>
-                       <version>6.8.0</version>
                </dependency>
                <!-- Test dependencies -->
                <dependency>
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
index 00838cc..5317515 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
@@ -320,7 +320,7 @@ public class Admin {
                                || cmdl.hasOption(OPTION_DB_PORT) || 
cmdl.hasOption(OPTION_DB_NAME) || cmdl.hasOption(OPTION_DB_USER)
                                || cmdl.hasOption(OPTION_DB_PASS))
                {
-                       String dbType = cmdl.getOptionValue(OPTION_DB_TYPE, 
DbType.derby.name());
+                       String dbType = cmdl.getOptionValue(OPTION_DB_TYPE, 
DbType.DERBY.getLabel());
                        connectionProperties = 
ConnectionPropertiesPatcher.patch(dbType
                                        , cmdl.getOptionValue(OPTION_DB_HOST, 
"localhost")
                                        , cmdl.getOptionValue(OPTION_DB_PORT, 
null)
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
index 6fc273d..80ab310 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.cli;
 
 import java.io.File;
+import java.util.Locale;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -50,22 +51,25 @@ public abstract class ConnectionPropertiesPatcher {
        public static ConnectionPropertiesPatcher 
getPatcher(ConnectionProperties props) {
                ConnectionPropertiesPatcher patcher;
                switch (props.getDbType()) {
-                       case db2:
+                       case DB2:
                                patcher = new Db2Patcher();
                                break;
-                       case mssql:
+                       case MSSQL:
                                patcher = new MssqlPatcher();
                                break;
-                       case mysql:
+                       case MYSQL:
                                patcher = new MysqlPatcher();
                                break;
-                       case oracle:
+                       case ORACLE:
                                patcher = new OraclePatcher();
                                break;
-                       case postgresql:
+                       case POSTGRESQL:
                                patcher = new PostgresPatcher();
                                break;
-                       case derby:
+                       case H2:
+                               patcher = new H2Patcher();
+                               break;
+                       case DERBY:
                        default:
                                patcher = new DerbyPatcher();
                                break;
@@ -165,7 +169,8 @@ public abstract class ConnectionPropertiesPatcher {
                                try {
                                        //will try to "guess" dbType
                                        String[] parts = prop.split(":");
-                                       
connectionProperties.setDbType("sqlserver".equals(parts[1]) ? DbType.mssql : 
DbType.valueOf(parts[1]));
+                                       final String name = 
parts[1].toUpperCase(Locale.ROOT);
+                                       
connectionProperties.setDbType("SQLSERVER".equals(name) ? DbType.MSSQL : 
DbType.valueOf(name));
                                } catch (Exception e) {
                                        //ignore
                                }
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/H2Patcher.java 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/H2Patcher.java
new file mode 100644
index 0000000..a6ab29f
--- /dev/null
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/H2Patcher.java
@@ -0,0 +1,26 @@
+/*
+ * 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.cli;
+
+public class H2Patcher extends ConnectionPropertiesPatcher {
+       @Override
+       protected String getUrl(String _url, String host, String _port, String 
_db) {
+               return _url; // no processing
+       }
+}
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index fe96d1a..7a4acd1 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -53,7 +53,7 @@ import net.fortuna.ical4j.model.DateTime;
 import net.fortuna.ical4j.model.Parameter;
 import net.fortuna.ical4j.model.Property;
 import net.fortuna.ical4j.model.PropertyList;
-import net.fortuna.ical4j.model.Recur;
+import net.fortuna.ical4j.model.Recur.Frequency;
 import net.fortuna.ical4j.model.TimeZoneRegistry;
 import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
 import net.fortuna.ical4j.model.component.CalendarComponent;
@@ -205,17 +205,26 @@ public class IcalUtils {
                }
 
                if (recur != null) {
-                       Parameter freq = recur.getParameter("FREQ");
-                       if (freq != null) {
-                               if (freq.getValue().equals(Recur.DAILY)) {
+                       Parameter pFreq = recur.getParameter("FREQ");
+                       Frequency freq = Frequency.valueOf(pFreq.getValue());
+                       switch (freq) {
+                               case DAILY:
                                        a.setIsDaily(true);
-                               } else if 
(freq.getValue().equals(Recur.WEEKLY)) {
+                                       break;
+                               case WEEKLY:
                                        a.setIsWeekly(true);
-                               } else if 
(freq.getValue().equals(Recur.MONTHLY)) {
+                                       break;
+                               case MONTHLY:
                                        a.setIsMonthly(true);
-                               } else if 
(freq.getValue().equals(Recur.YEARLY)) {
+                                       break;
+                               case YEARLY:
                                        a.setIsYearly(true);
-                               }
+                                       break;
+                               case SECONDLY:
+                               case MINUTELY:
+                               case HOURLY:
+                               default:
+                                       break;
                        }
                }
 
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/ConnectionProperties.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/ConnectionProperties.java
index 9bdd639..1223467 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/ConnectionProperties.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/ConnectionProperties.java
@@ -19,24 +19,30 @@
 package org.apache.openmeetings.util;
 
 import java.io.Serializable;
+import java.util.Locale;
 
 public class ConnectionProperties implements Serializable {
        private static final long serialVersionUID = 1L;
 
        public enum DbType {
-               db2
-               , derby
-               , mssql
-               , mysql
-               , oracle
-               , postgresql
+               DB2
+               , DERBY
+               , MSSQL
+               , MYSQL
+               , ORACLE
+               , POSTGRESQL
+               , H2; // for testing purposes
+
+               public final String getLabel() {
+                       return name().toLowerCase(Locale.ROOT);
+               }
        }
 
        private String driver = "org.apache.derby.jdbc.EmbeddedDriver";
        private String url = "jdbc:derby:openmeetings";
        private String login = "user";
        private String password = "secret";
-       private DbType dbType = DbType.derby;
+       private DbType dbType = DbType.DERBY;
 
        public String getDriver() {
                return driver;
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
index fee3d02..b014e42 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
@@ -31,6 +31,7 @@ import java.util.Locale;
 import java.util.Properties;
 
 import org.apache.openmeetings.util.ConnectionProperties.DbType;
+import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -255,11 +256,12 @@ public class OmFileHelper {
        }
 
        public static File getPersistence(String dbType) {
-               return getPersistence(DbType.valueOf(dbType));
+               return getPersistence(Strings.isEmpty(dbType) ? null
+                               : 
DbType.valueOf(dbType.toUpperCase(Locale.ROOT)));
        }
 
        public static File getPersistence(DbType dbType) {
-               return new File(OmFileHelper.getWebinfDir(), dbType == null ? 
PERSISTENCE_NAME : String.format(DB_PERSISTENCE_NAME, dbType));
+               return new File(OmFileHelper.getWebinfDir(), dbType == null ? 
PERSISTENCE_NAME : String.format(DB_PERSISTENCE_NAME, dbType.getLabel()));
        }
 
        public static File getLdapConf(String name) {
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 94092e4..3fb30fc 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -521,7 +521,7 @@
                                                
<phase>generate-test-resources</phase>
                                                <configuration>
                                                        <target>
-                                                               <copy 
file="${project.basedir}/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml"
+                                                               <copy 
file="${project.basedir}/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml"
                                                                        
tofile="${project.build.directory}/generated-test-res/META-INF/persistence.xml"
                                                                        
overwrite="true" force="true"/>
                                                        </target>
@@ -738,5 +738,11 @@
                        <artifactId>mockito-core</artifactId>
                        <scope>test</scope>
                </dependency>
+<dependency>
+    <groupId>com.h2database</groupId>
+    <artifactId>h2</artifactId>
+    <version>1.4.197</version>
+    <scope>test</scope>
+</dependency>
        </dependencies>
 </project>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index d746010..df90df0 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -34,9 +34,11 @@ import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.openmeetings.cli.ConnectionPropertiesPatcher;
 import org.apache.openmeetings.core.converter.DocumentConverter;
@@ -195,21 +197,20 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                }
        }
 
-       private final class DbStep extends BaseStep {
+       private final static class DbTypeDropDown extends 
DropDownChoice<DbType> {
                private static final long serialVersionUID = 1L;
-               private final RequiredTextField<String> host = new 
RequiredTextField<>("host", Model.of(""));
-               private final RequiredTextField<Integer> port = new 
RequiredTextField<>("port", Model.of(0));
-               private final RequiredTextField<String> dbname = new 
RequiredTextField<>("dbname", Model.of(""));
-               private final RequiredTextField<String> user = new 
RequiredTextField<>("login");
-               private final TextField<String> pass = new 
TextField<>("password");
-               private final Form<ConnectionProperties> form = new 
Form<ConnectionProperties>("form", new CompoundPropertyModel<>(getProps(null))) 
{
-                       private static final long serialVersionUID = 1L;
-                       private final DropDownChoice<DbType> db = new 
DropDownChoice<>("dbType", Arrays.asList(DbType.values()), new 
ChoiceRenderer<DbType>() {
+
+               public DbTypeDropDown(String id) {
+                       super(id);
+                       Set<DbType> types = new 
LinkedHashSet<>(Arrays.asList(DbType.values()));
+                       types.remove(DbType.H2);
+                       setChoices(new ArrayList<>(types));
+                       setChoiceRenderer(new ChoiceRenderer<DbType>() {
                                private static final long serialVersionUID = 1L;
 
                                @Override
                                public Object getDisplayValue(DbType object) {
-                                       return 
getString(String.format("install.wizard.db.step.%s.name", object.name()));
+                                       return 
getString(String.format("install.wizard.db.step.%s.name", object.getLabel()));
                                }
 
                                @Override
@@ -217,6 +218,19 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                                        return object.name();
                                }
                        });
+               }
+       }
+
+       private final class DbStep extends BaseStep {
+               private static final long serialVersionUID = 1L;
+               private final RequiredTextField<String> host = new 
RequiredTextField<>("host", Model.of(""));
+               private final RequiredTextField<Integer> port = new 
RequiredTextField<>("port", Model.of(0));
+               private final RequiredTextField<String> dbname = new 
RequiredTextField<>("dbname", Model.of(""));
+               private final RequiredTextField<String> user = new 
RequiredTextField<>("login");
+               private final TextField<String> pass = new 
TextField<>("password");
+               private final Form<ConnectionProperties> form = new 
Form<ConnectionProperties>("form", new CompoundPropertyModel<>(getProps(null))) 
{
+                       private static final long serialVersionUID = 1L;
+                       private final DbTypeDropDown db = new 
DbTypeDropDown("dbType");
 
                        @Override
                        protected void onInitialize() {
@@ -247,7 +261,7 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                        }
 
                        private String getDbName(ConnectionProperties props) {
-                               return 
getString("install.wizard.db.step.instructions." + props.getDbType().name());
+                               return 
getString("install.wizard.db.step.instructions." + 
props.getDbType().getLabel());
                        }
 
                        @Override
@@ -266,13 +280,13 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                                        valid = conn.isValid(0); //no timeout
                                        String sql = null;
                                        switch (props.getDbType()) {
-                                               case db2:
+                                               case DB2:
                                                        sql = "select count(*) 
from systables";
                                                        break;
-                                               case oracle:
+                                               case ORACLE:
                                                        sql = "SELECT 1 FROM 
DUAL";
                                                        break;
-                                               case derby:
+                                               case DERBY:
                                                        sql = "SELECT 1 FROM 
SYSIBM.SYSDUMMY1";
                                                        break;
                                                default:
@@ -330,7 +344,7 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                                        return props; // initial select
                                }
                                props = 
ConnectionPropertiesPatcher.getConnectionProperties(conf);
-                               if (DbType.derby != props.getDbType()) {
+                               if (DbType.DERBY != props.getDbType()) {
                                        // resetting default login/password
                                        props.setLogin(null);
                                        props.setPassword(null);
@@ -344,13 +358,13 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                private void initForm(boolean getProps, AjaxRequestTarget 
target) {
                        ConnectionProperties props = getProps ? 
getProps(form.getModelObject().getDbType()) : form.getModelObject();
                        form.setModelObject(props);
-                       host.setVisible(props.getDbType() != DbType.derby);
-                       port.setVisible(props.getDbType() != DbType.derby);
-                       user.setVisible(props.getDbType() != DbType.derby);
-                       pass.setVisible(props.getDbType() != DbType.derby);
+                       host.setVisible(props.getDbType() != DbType.DERBY);
+                       port.setVisible(props.getDbType() != DbType.DERBY);
+                       user.setVisible(props.getDbType() != DbType.DERBY);
+                       pass.setVisible(props.getDbType() != DbType.DERBY);
                        try {
                                switch (props.getDbType()) {
-                                       case mssql: {
+                                       case MSSQL: {
                                                String url = 
props.getURL().substring("jdbc:sqlserver://".length());
                                                String[] parts = url.split(";");
                                                String[] hp = 
parts[0].split(":");
@@ -359,14 +373,14 @@ public class InstallWizard extends 
AbstractWizard<InstallationConfig> {
                                                
dbname.setModelObject(parts[1].substring(parts[1].indexOf('=') + 1));
                                                }
                                                break;
-                                       case oracle: {
+                                       case ORACLE: {
                                                String[] parts = 
props.getURL().split(":");
                                                
host.setModelObject(parts[3].substring(1));
                                                
port.setModelObject(Integer.parseInt(parts[4]));
                                                dbname.setModelObject(parts[5]);
                                                }
                                                break;
-                                       case derby: {
+                                       case DERBY: {
                                                host.setModelObject("");
                                                port.setModelObject(0);
                                                String[] parts = 
props.getURL().split(";");
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
new file mode 100644
index 0000000..f22558c
--- /dev/null
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+               xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";
+               version="2.0">
+       <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+               
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
+               
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+               
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+               
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+               
<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+               
<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+               
<class>org.apache.openmeetings.db.entity.calendar.OmCalendar</class>
+               
<class>org.apache.openmeetings.db.entity.file.BaseFileItem</class>
+               <class>org.apache.openmeetings.db.entity.file.FileItem</class>
+               
<class>org.apache.openmeetings.db.entity.file.FileItemLog</class>
+               
<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+               
<class>org.apache.openmeetings.db.entity.record.Recording</class>
+               
<class>org.apache.openmeetings.db.entity.record.RecordingChunk</class>
+               <class>org.apache.openmeetings.db.entity.room.Invitation</class>
+               <class>org.apache.openmeetings.db.entity.room.Room</class>
+               <class>org.apache.openmeetings.db.entity.room.RoomFile</class>
+               <class>org.apache.openmeetings.db.entity.room.RoomGroup</class>
+               
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+               <class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+               
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+               
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+               
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+               
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+               
<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+               <class>org.apache.openmeetings.db.entity.user.Address</class>
+               
<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+               <class>org.apache.openmeetings.db.entity.user.Group</class>
+               <class>org.apache.openmeetings.db.entity.user.GroupUser</class>
+               
<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+               
<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+               <class>org.apache.openmeetings.db.entity.user.User</class>
+               
<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+               <exclude-unlisted-classes>false</exclude-unlisted-classes>
+               <properties>
+                       <property name="openjpa.RuntimeUnenhancedClasses" 
value="unsupported" />
+                       <property name="openjpa.ConnectionDriverName" 
value="org.apache.commons.dbcp2.BasicDataSource" />
+                       <property name="openjpa.ConnectionProperties"
+                               value="DriverClassName=org.h2.Driver,
+                                               
Url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1,
+                                               create=true,
+                                               MaxActive=100,
+                                               MaxWait=10000,
+                                               TestOnBorrow=true,
+                                               Username=omdbuser,
+                                               Password=" />
+                       <property name="openjpa.jdbc.SynchronizeMappings" 
value="buildSchema" />
+                       <property name="openjpa.Log" value="DefaultLevel=WARN, 
Tool=INFO" />
+                       <property name="openjpa.DataCache" value="true" />
+                       <!-- QueryCache disabled due to changes outside of JPA 
doesn't take effect with caching -->
+                       <property name="openjpa.QueryCache" value="false" />
+                       <property name="openjpa.jdbc.DBDictionary" 
value="batchLimit=100" />
+                       <property name="openjpa.jdbc.QuerySQLCache" 
value="false" />
+               </properties>
+       </persistence-unit>
+</persistence>
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 d6e0395..543c995 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
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.cli;
 
-import static org.apache.commons.io.FileUtils.deleteDirectory;
+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;
@@ -63,7 +63,7 @@ public class TestAdmin {
        public void tearDown() throws IOException {
                resetDerbyHome();
                System.getProperties().remove(RED5_HOME);
-               deleteDirectory(tempFolder);
+               deleteQuietly(tempFolder);
                WebApplication app = 
(WebApplication)Application.get(getWicketApplicationName());
                if (app != null) {
                        destroyApplication();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/derby/PrepareSystemFiles.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/derby/PrepareSystemFiles.java
index 3e6f6f7..3987450 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/derby/PrepareSystemFiles.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/derby/PrepareSystemFiles.java
@@ -50,7 +50,7 @@ public class PrepareSystemFiles {
                                conf.delete();
                        }
 
-                       ConnectionPropertiesPatcher.patch(DbType.derby.name()
+                       ConnectionPropertiesPatcher.patch(DbType.DERBY.name()
                                        , "localhost"
                                        , "1527"
                                        , databaseHomeDirectory + "openmeetings"
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 d2ac7fd..b2a2cd2 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,10 +20,13 @@ 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.commons.io.FileUtils.deleteQuietly;
 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.AbstractSpringTest.setOmHome;
+import static org.apache.openmeetings.cli.Admin.RED5_HOME;
 import static 
org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
 import static org.junit.Assert.assertEquals;
@@ -35,6 +38,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.InetAddress;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -48,7 +52,6 @@ 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;
@@ -59,12 +62,14 @@ 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.apache.tomcat.util.scan.Constants;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
 public class AbstractWebServiceTest {
+       private static Path TEMP_TOMCAT_BASE;
        private static Tomcat tomcat;
        private static final String HOST = "localhost";
        private static final String CONTEXT = "/openmeetings";
@@ -106,14 +111,18 @@ public class AbstractWebServiceTest {
 
        @BeforeClass
        public static void initialize() throws Exception {
-               AbstractSpringTest.init();
+               setOmHome();
+               System.setProperty(Constants.SKIP_JARS_PROPERTY, "*");
+               TEMP_TOMCAT_BASE = Files.createTempDirectory("om" + 
randomUUID().toString());
+               File wd = TEMP_TOMCAT_BASE.toFile();
+               System.setProperty("user.dir", wd.getCanonicalPath());
+               System.setProperty(RED5_HOME, getOmHome().getCanonicalPath());
                tomcat = new Tomcat();
                Connector connector = new Connector("HTTP/1.1");
                connector.setAttribute("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);
@@ -137,6 +146,8 @@ public class AbstractWebServiceTest {
                        }
                        tomcat.destroy();
                }
+               System.getProperties().remove(RED5_HOME);
+               deleteQuietly(TEMP_TOMCAT_BASE.toFile());
        }
 
        protected static CallResult<RoomDTO> createAndValidate(RoomDTO r) {
diff --git a/pom.xml b/pom.xml
index 6539adc..03e2d14 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,7 +76,7 @@
                <wicket.version>8.3.0-SNAPSHOT</wicket.version>
                <wicketju.version>8.1.0</wicketju.version>
                <wickets.version>8.2.0</wickets.version>
-               <red5-client.version>1.0.10-M9</red5-client.version>
+               <red5-client.version>1.0.10-M10</red5-client.version>
                <spring.version>5.1.3.RELEASE</spring.version>
                <mina.version>2.0.19</mina.version>
                <tomcat.version>9.0.14</tomcat.version>
@@ -113,6 +113,7 @@
                <license.excludedScopes>test</license.excludedScopes>
                <bcprov-jdk15on.version>1.60</bcprov-jdk15on.version>
                <mockito.version>2.23.4</mockito.version>
+               <kurento.version>6.9.0</kurento.version>
                <!--  URL of the ASF SonarQube server  -->
                
<sonar.host.url>https://builds.apache.org/analysis</sonar.host.url>
                <!--  Exclude all generated code  -->
@@ -643,6 +644,11 @@
                                <version>${mockito.version}</version>
                                <scope>test</scope>
                        </dependency>
+                       <dependency>
+                               <groupId>org.kurento</groupId>
+                               <artifactId>kurento-client</artifactId>
+                               <version>${kurento.version}</version>
+                       </dependency>
                </dependencies>
        </dependencyManagement>
        <dependencies>

Reply via email to