You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/12/25 09:02:01 UTC
[openmeetings] 01/01: no jira: H2 is being used as main test DB
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 <so...@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>