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/02/27 16:51:11 UTC
[openmeetings] branch OPENMEETINGS-1649-kurento updated:
[OPENMEETINGS-1649] local run with jetty is fixed
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch OPENMEETINGS-1649-kurento
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/OPENMEETINGS-1649-kurento by this push:
new 2a553a2 [OPENMEETINGS-1649] local run with jetty is fixed
2a553a2 is described below
commit 2a553a228a7a2d02f4e774a0bf59d9dfec9e83cb
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Feb 27 23:50:59 2018 +0700
[OPENMEETINGS-1649] local run with jetty is fixed
---
openmeetings-install/pom.xml | 4 +
.../src/site/xdoc/BuildInstructions.xml | 12 ++-
openmeetings-util/pom.xml | 12 +++
.../openmeetings/util/OMContextListener.java | 26 ++++-
openmeetings-web/pom.xml | 119 +++++++++++----------
.../apache/openmeetings/web/app/Application.java | 43 ++++++++
.../apache/openmeetings/web/app/ClientManager.java | 11 +-
.../openmeetings/web/app/QuickPollManager.java | 2 +-
.../openmeetings/web/app/WhiteboardManager.java | 14 +--
.../openmeetings/web/pages/auth/SignInDialog.java | 4 +
.../WEB-INF/{classes => }/applicationContext.xml | 0
.../src/main/webapp/WEB-INF/red5-web.properties | 17 ---
.../src/main/webapp/WEB-INF/red5-web.xml | 42 --------
openmeetings-web/src/main/webapp/WEB-INF/web.xml | 44 ++------
.../apache/openmeetings/AbstractSpringTest.java | 3 +-
.../webservice/AbstractWebServiceTest.java | 60 ++++++-----
openmeetings-web/src/test/jetty/jetty-http.xml | 54 ++++++++++
openmeetings-web/src/test/jetty/jetty-https.xml | 61 +++++++++++
openmeetings-web/src/test/jetty/jetty-ssl.xml | 52 +++++++++
openmeetings-web/src/test/jetty/jetty.xml | 39 +++++++
pom.xml | 37 ++++---
21 files changed, 446 insertions(+), 210 deletions(-)
diff --git a/openmeetings-install/pom.xml b/openmeetings-install/pom.xml
index 6e9fd9d..2e8c07a 100644
--- a/openmeetings-install/pom.xml
+++ b/openmeetings-install/pom.xml
@@ -39,6 +39,10 @@
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-core</artifactId>
</dependency>
diff --git a/openmeetings-server/src/site/xdoc/BuildInstructions.xml b/openmeetings-server/src/site/xdoc/BuildInstructions.xml
index 6cbe1d3..e27fb4b 100644
--- a/openmeetings-server/src/site/xdoc/BuildInstructions.xml
+++ b/openmeetings-server/src/site/xdoc/BuildInstructions.xml
@@ -58,6 +58,12 @@
<source>mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.0:analyze-only</source>
</section>
<section name="Tips and Gotchas">
+ <source><![CDATA[
+MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql,jetty jetty:run-exploded
+
+cd ..; mvn clean install -pl openmeetings-util -P allModules,quick; cd openmeetings-web;
+
+ ]]></source>
<p>To compile only client you can run following command: </p>
<source>
<![CDATA[
@@ -67,19 +73,19 @@ mvn install -P allModules -pl openmeetings-flash # compiles a comp
<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.mode=DEVELOPMENT
+mvn clean install -P allModules,unpacked,mysql -DskipTests=true -Dwicket.configuration=DEVELOPMENT
]]>
</source>
<p>After modifications are made you can run <i>"quick"</i> build: </p>
<source>
<![CDATA[
-mvn install -P allModules,quick,mysql -pl openmeetings-web -pl openmeetings-server -Dwicket.mode=DEVELOPMENT
+mvn install -P allModules,quick,mysql -pl openmeetings-web -pl openmeetings-server -Dwicket.configuration=DEVELOPMENT
]]>
</source>
<p>Any number of projects can be specified during build: </p>
<source>
<![CDATA[
-mvn install -P allModules,quick,mysql -pl openmeetings-util -pl openmeetings-db -pl openmeetings-core -pl openmeetings-install -pl openmeetings-service -pl openmeetings-web -pl openmeetings-server -pl openmeetings-webservice -Dwicket.mode=DEVELOPMENT
+mvn install -P allModules,quick,mysql -pl openmeetings-util -pl openmeetings-db -pl openmeetings-core -pl openmeetings-install -pl openmeetings-service -pl openmeetings-web -pl openmeetings-server -pl openmeetings-webservice -Dwicket.configuration=DEVELOPMENT
]]>
</source>
<div>
diff --git a/openmeetings-util/pom.xml b/openmeetings-util/pom.xml
index 8ce63dd..e8d7a96 100644
--- a/openmeetings-util/pom.xml
+++ b/openmeetings-util/pom.xml
@@ -120,6 +120,18 @@
<artifactId>wicket-extensions</artifactId>
</dependency>
<dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.17</version>
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
index d6bd72e..9f4c1a3 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
@@ -21,13 +21,29 @@ package org.apache.openmeetings.util;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
+
public class OMContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
- System.setProperty("current_openmeetings_context_name", pathToName(event));
- System.setProperty("webapp.contextPath", String.format("/%s"));
- System.setProperty("logback.configurationFile", "logback-config.xml");
+ String ctx = pathToName(event);
+ System.setProperty("current_openmeetings_context_name", ctx);
+ System.setProperty("webapp.contextPath", String.format("/%s", ctx));
+ try {
+ LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
+ JoranConfigurator configurator = new JoranConfigurator();
+ configurator.setContext(context);
+ context.reset();
+ configurator.doConfigure("logback-config.xml");
+ } catch (JoranException je) {
+ // StatusPrinter will handle this
+ }
+ //System.setProperty("logback.configurationFile", "logback-config.xml");
}
private static String pathToName(ServletContextEvent event) {
@@ -37,4 +53,8 @@ public class OMContextListener implements ServletContextListener {
}
return contextName;
}
+
+ @Override
+ public void contextDestroyed(ServletContextEvent arg0) {
+ }
}
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 0a77370..59fccab 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -251,10 +251,36 @@
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
<webResources>
<webResource>
+ <directory>${project.basedir}/src/main/java</directory>
+ <targetPath>WEB-INF/classes</targetPath>
+ <includes>
+ <include>**/*.html</include>
+ <include>**/*.css</include>
+ <include>**/*.js</include>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </webResource>
+ <webResource>
+ <directory>${project.parent.basedir}/openmeetings-service/src/main/java</directory>
+ <targetPath>WEB-INF/classes</targetPath>
+ <includes>
+ <include>**/*.html</include>
+ <include>**/*.css</include>
+ <include>**/*.js</include>
+ <include>**/*.xml</include>
+ <include>**/*.properties</include>
+ </includes>
+ </webResource>
+ <webResource>
<directory>${project.build.directory}/generated-res</directory>
<targetPath>WEB-INF/classes/META-INF</targetPath>
<filtering>true</filtering>
</webResource>
+ <webResource>
+ <directory>${project.build.directory}/generated-sources/main/java/</directory>
+ <targetPath>WEB-INF/classes</targetPath>
+ </webResource>
</webResources>
</configuration>
<executions>
@@ -436,13 +462,34 @@
<languages.home>${project.build.directory}/test-root/languages</languages.home>
<red5.root>red5.root</red5.root>
<backups.dir>${old-backups.dir}</backups.dir>
- <logback.ContextSelector>org.red5.logging.LoggingContextSelector</logback.ContextSelector>
<catalina.useNaming>true</catalina.useNaming>
</systemPropertyVariables>
<skip>${maven.test.skip}</skip>
</configuration>
</plugin>
</plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>${jetty9.version}</version>
+ <configuration>
+ <!--systemProperties>
+ <systemProperty>
+ <name>logback.configurationFile</name>
+ <value>${project.build.directory}/${project.build.finalName}/WEB-INF/classes/logback-config.xml</value>
+ </systemProperty>
+ </systemProperties-->
+ <webApp>
+ <contextPath>/openmeetings</contextPath>
+ </webApp>
+ <!-- jettyXml>${project.basedir}/src/test/jetty/jetty.xml,${project.basedir}/src/test/jetty/jetty-ssl.xml,${project.basedir}/src/test/jetty/jetty-http.xml,${project.basedir}/src/test/jetty/jetty-https.xml</jettyXml-->
+ <jettyXml>${project.basedir}/src/test/jetty/jetty.xml,${project.basedir}/src/test/jetty/jetty-http.xml</jettyXml>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
<dependencies>
<dependency>
@@ -498,6 +545,11 @@
<version>${wicket.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.wicket</groupId>
+ <artifactId>wicket-spring</artifactId>
+ <version>${wicket.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.googlecode.wicket-jquery-ui</groupId>
<artifactId>wicket-jquery-ui-core</artifactId>
<version>${wicketju.version}</version>
@@ -548,44 +600,6 @@
<version>${wickets.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-websocket</artifactId>
- <version>${tomcat.version}</version>
- <!--exclusions> commented for Red5 lib substitution
- <exclusion>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-core</artifactId>
- </exclusion>
- </exclusions-->
- </dependency>
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-catalina-ha</artifactId>
- <version>${tomcat.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-coyote</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-juli</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-catalina</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-util</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-util-scan</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
@@ -614,12 +628,6 @@
<version>${cxf.version}</version>
<scope>test</scope>
</dependency>
- <!--dependency> commented for Red5 lib substitution
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-core</artifactId>
- <version>${tomcat.version}</version>
- <scope>test</scope>
- </dependency-->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbynet</artifactId>
@@ -637,21 +645,18 @@
</exclusion>
</exclusions>
</dependency>
- <!-- added for Red5 lib substitution -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>${spring.version}</version>
- </dependency>
+ <!-- JETTY DEPENDENCIES FOR TESTING -->
<dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-core</artifactId>
- <version>${tomcat.version}</version>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-webapp</artifactId>
+ <scope>test</scope>
+ <version>${jetty9.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-jasper</artifactId>
- <version>${tomcat.version}</version>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-jmx</artifactId>
+ <version>${jetty9.version}</version>
+ <scope>test</scope>
</dependency>
</dependencies>
</project>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 495b04f..8881f12 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -18,11 +18,18 @@
*/
package org.apache.openmeetings.web.app;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_EXT_PROCESS_TTL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_CSP;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_HEADER_XFRAME;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_CSP_SELF;
import static org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_XFRAME_SAMEORIGIN;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getApplicationName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getExtProcessTtl;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setExtProcessTtl;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setInitComplete;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
import static org.apache.openmeetings.web.pages.HashPage.INVITATION_HASH;
import static org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;
@@ -30,6 +37,7 @@ import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
import static org.apache.wicket.resource.JQueryResourceReference.getV3;
import static org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext;
+import java.io.File;
import java.net.UnknownHostException;
import java.text.MessageFormat;
import java.util.ArrayList;
@@ -46,6 +54,7 @@ import org.apache.openmeetings.core.service.MainService;
import org.apache.openmeetings.core.util.WebSocketHelper;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.label.LabelDao;
+import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.record.Recording;
@@ -55,7 +64,9 @@ import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.entity.user.User.Type;
import org.apache.openmeetings.db.util.ws.RoomMessage;
import org.apache.openmeetings.db.util.ws.TextRoomMessage;
+import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.Version;
import org.apache.openmeetings.util.ws.IClusterWsMessage;
import org.apache.openmeetings.web.pages.AccessDeniedPage;
import org.apache.openmeetings.web.pages.ActivatePage;
@@ -105,9 +116,12 @@ import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.info.PageComponentInfo;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import org.apache.wicket.validation.validator.UrlValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
import org.springframework.web.context.WebApplicationContext;
import org.wicketstuff.dashboard.WidgetRegistry;
import org.wicketstuff.dashboard.web.DashboardContext;
@@ -124,6 +138,7 @@ import com.hazelcast.core.MemberAttributeEvent;
import com.hazelcast.core.MembershipEvent;
import com.hazelcast.core.MembershipListener;
+@Component
public class Application extends AuthenticatedWebApplication implements IApplication {
private static final Logger log = LoggerFactory.getLogger(Application.class);
private static boolean isInstalled;
@@ -145,6 +160,11 @@ public class Application extends AuthenticatedWebApplication implements IApplica
private String contentSecurityPolicy = OpenmeetingsVariables.HEADER_CSP_SELF;
private ITopic<IClusterWsMessage> hazelWsTopic;
+ @Autowired
+ private ConfigurationDao cfgDao;
+ @Autowired
+ private RecordingDao recordingDao;
+
@Override
protected void init() {
setWicketApplicationName(super.getName());
@@ -252,6 +272,29 @@ public class Application extends AuthenticatedWebApplication implements IApplica
mountResource("/room/preview/${id}", new RoomPreviewResourceReference());
mountResource("/profile/${id}", new ProfileImageResourceReference());
mountResource("/group/${id}", new GroupLogoResourceReference());
+ getComponentInstantiationListeners().add(new SpringComponentInjector(this));
+
+ log.debug("InitComponent::PostConstruct");
+ try {
+ OmFileHelper.setOmHome(new File(getServletContext().getRealPath("/"))); //FIXME TODO move to OMContextListener
+ LabelDao.initLanguageMap(); //FIXME TODO move to OMContextListener
+
+ log.debug("webAppPath : {}", OmFileHelper.getOmHome()); //FIXME TODO move to OMContextListener
+
+ // Init all global config properties
+ cfgDao.reinit();
+
+ setInitComplete(true);
+ // Init properties
+ setXFrameOptions(cfgDao.getString(CONFIG_HEADER_XFRAME, HEADER_XFRAME_SAMEORIGIN));
+ setContentSecurityPolicy(cfgDao.getString(CONFIG_HEADER_CSP, HEADER_CSP_SELF));
+ updateJpaAddresses(cfgDao);
+ setExtProcessTtl(cfgDao.getInt(CONFIG_EXT_PROCESS_TTL, getExtProcessTtl()));
+ Version.logOMStarted();
+ recordingDao.resetProcessingStatus(); //we are starting so all processing recordings are now errors
+ } catch (Exception err) {
+ log.error("[appStart]", err);
+ }
}
private static class NoVersionMapper extends MountedMapper {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index cf77652..f64d813 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -29,7 +29,6 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.function.Predicate;
-import org.apache.openmeetings.core.remote.ScopeApplicationAdapter;
import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.IClient;
@@ -53,18 +52,20 @@ public class ClientManager implements IClientManager {
@Autowired
private ConferenceLogDao confLogDao;
+ /*
@Autowired
private ScopeApplicationAdapter scopeAdapter;
+ */
- private Map<String, Client> map() {
+ private static Map<String, Client> map() {
return getHazelcast().getMap(ONLINE_USERS_KEY);
}
- private Map<String, String> mapUidBySid() {
+ private static Map<String, String> mapUidBySid() {
return getHazelcast().getMap(UID_BY_SID_KEY);
}
- private IMap<Long, Set<String>> getRooms() {
+ private static IMap<Long, Set<String>> getRooms() {
return getHazelcast().getMap(ROOMS_KEY);
}
@@ -252,7 +253,7 @@ public class ClientManager implements IClientManager {
return false;
}
- private Client getByKeys(Long userId, String sessionId) {
+ private static Client getByKeys(Long userId, String sessionId) {
Client client = null;
for (Map.Entry<String, Client> e : map().entrySet()) {
Client c = e.getValue();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
index f5e01e1..e2f8a33 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
@@ -41,7 +41,7 @@ public class QuickPollManager {
private static final Logger log = LoggerFactory.getLogger(QuickPollManager.class);
private static final String QPOLLS_KEY = "QPOLLS_KEY";
- private IMap<Long, Map<Long, Boolean>> map() {
+ private static IMap<Long, Map<Long, Boolean>> map() {
return getHazelcast().getMap(QPOLLS_KEY);
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
index 9a8c4f4..52b9994 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
@@ -42,16 +42,16 @@ import com.hazelcast.core.IMap;
public class WhiteboardManager implements IWhiteboardManager {
private static final String WBS_KEY = "WBS_KEY";
- private IMap<Long, Whiteboards> getCache() {
+ private static IMap<Long, Whiteboards> map() {
return getHazelcast().getMap(WBS_KEY);
}
public boolean tryLock(Long roomId) {
- return getCache().tryLock(roomId);
+ return map().tryLock(roomId);
}
public void unlock(Long roomId) {
- getCache().unlock(roomId);
+ map().unlock(roomId);
}
private static String getDefaultName(Long langId, int num) {
@@ -63,7 +63,7 @@ public class WhiteboardManager implements IWhiteboardManager {
}
public boolean contains(Long roomId) {
- return getCache().containsKey(roomId);
+ return map().containsKey(roomId);
}
@Override
@@ -75,7 +75,7 @@ public class WhiteboardManager implements IWhiteboardManager {
if (roomId == null) {
return null;
}
- Whiteboards wbs = getCache().get(roomId);
+ Whiteboards wbs = map().get(roomId);
if (wbs == null) {
wbs = new Whiteboards(roomId);
Whiteboard wb = add(wbs, langId);
@@ -132,7 +132,7 @@ public class WhiteboardManager implements IWhiteboardManager {
update(wbs);
}
- private void update(Whiteboards wbs) {
- getCache().put(wbs.getRoomId(), wbs);
+ private static void update(Whiteboards wbs) {
+ map().put(wbs.getRoomId(), wbs);
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
index 027546a..9b0e267 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
@@ -65,6 +65,7 @@ import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -90,6 +91,9 @@ public class SignInDialog extends NonClosableDialog<String> {
private LdapConfig domain;
private final KendoFeedbackPanel feedback = new KendoFeedbackPanel("feedback", new Options("button", true));
+ @SpringBean
+ private ConfigurationDao cfgDao;
+
public SignInDialog(String id) {
super(id, "");
add(form = new SignInForm("signin"));
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/applicationContext.xml
similarity index 100%
rename from openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
rename to openmeetings-web/src/main/webapp/WEB-INF/applicationContext.xml
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/red5-web.properties b/openmeetings-web/src/main/webapp/WEB-INF/red5-web.properties
deleted file mode 100644
index 518301d..0000000
--- a/openmeetings-web/src/main/webapp/WEB-INF/red5-web.properties
+++ /dev/null
@@ -1,17 +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.
-webapp.virtualHosts=*,localhost, 127.0.0.1
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml b/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
deleted file mode 100644
index 4723baf..0000000
--- a/openmeetings-web/src/main/webapp/WEB-INF/red5-web.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?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.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
- >
- <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="location" value="/WEB-INF/red5-web.properties" />
- </bean>
-
- <bean id="web.context" class="org.red5.server.Context" autowire="byType" />
-
- <bean id="web.scope" class="org.red5.server.scope.WebScope">
- <property name="server" ref="red5.server" />
- <property name="parent" ref="global.scope" />
- <property name="context" ref="web.context" />
- <property name="handler" ref="web.handler" />
- <property name="contextPath" value="${webapp.contextPath}" />
- <property name="virtualHosts" value="${webapp.virtualHosts}" />
- </bean>
-
- <import resource="classes/applicationContext.xml" />
-</beans>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/web.xml b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
index 209395a..634ffee 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/web.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
@@ -21,38 +21,11 @@
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
- <context-param>
- <param-name>globalScope</param-name>
- <param-value>default</param-value>
- </context-param>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/red5-*.xml</param-value>
- </context-param>
- <context-param>
- <param-name>locatorFactorySelector</param-name>
- <param-value>red5.xml</param-value>
- </context-param>
- <context-param>
- <param-name>parentContextKey</param-name>
- <param-value>default.context</param-value>
- </context-param>
-
<listener>
<listener-class>org.apache.openmeetings.util.OMContextListener</listener-class>
</listener>
<filter>
- <filter-name>LoggerContextFilter</filter-name>
- <filter-class>org.red5.logging.LoggerContextFilter</filter-class>
- <async-supported>true</async-supported>
- </filter>
- <filter-mapping>
- <filter-name>LoggerContextFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <filter>
<filter-name>OpenmeetingsApplication</filter-name>
<filter-class>org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter</filter-class>
<async-supported>true</async-supported>
@@ -61,8 +34,12 @@
<param-value>org.apache.openmeetings.web.app.Application</param-value>
</init-param>
<init-param>
+ <param-name>applicationFactoryClassName</param-name>
+ <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value>
+ </init-param>
+ <init-param>
<param-name>configuration</param-name>
- <param-value>${wicket.mode}</param-value>
+ <param-value>${wicket.configuration}</param-value>
</init-param>
<init-param>
<param-name>ignorePaths</param-name>
@@ -73,6 +50,11 @@
<filter-name>OpenmeetingsApplication</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
+ <listener>
+ <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+ </listener>
+
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
@@ -88,12 +70,6 @@
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
- <!-- remove the following servlet tags if you want to disable remoting for this application -->
- <servlet>
- <servlet-name>gateway</servlet-name>
- <servlet-class>org.red5.server.net.servlet.AMFGatewayServlet</servlet-class>
- </servlet>
-
<mime-mapping>
<extension>inc</extension>
<mime-type>text/plain</mime-type>
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java
index f5b83b1..4985bc2 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractSpringTest.java
@@ -22,7 +22,6 @@ import static org.junit.Assert.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.BeforeClass;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
@@ -38,7 +37,7 @@ public abstract class AbstractSpringTest extends AbstractJUnit4SpringContextTest
@BeforeClass
public static void init() {
setOmHome();
- System.setProperty(Constants.SKIP_JARS_PROPERTY, "*");
+ //FIXME TODO System.setProperty(Constants.SKIP_JARS_PROPERTY, "*");
LabelDao.initLanguageMap();
if (LabelDao.getLanguages().isEmpty()) {
fail("Failed to set languages");
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 94dcac3..80039d7 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,7 +20,6 @@ package org.apache.openmeetings.webservice;
import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
import static org.apache.openmeetings.AbstractWicketTester.getWicketTester;
-import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -28,19 +27,16 @@ 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.lang.management.ManagementFactory;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
+import javax.management.MBeanServer;
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;
@@ -54,13 +50,20 @@ import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.webservice.util.AppointmentMessageBodyReader;
import org.apache.wicket.util.tester.WicketTester;
+import org.eclipse.jetty.jmx.MBeanContainer;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.util.component.AbstractLifeCycle;
+import org.eclipse.jetty.webapp.WebAppContext;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
public class AbstractWebServiceTest extends AbstractJUnitDefaults {
- private static Tomcat tomcat;
+ private static Server server;
private static final String HOST = "localhost";
private static final String CONTEXT = "/openmeetings";
private static int port = 8080;
@@ -97,21 +100,27 @@ public class AbstractWebServiceTest extends AbstractJUnitDefaults {
@BeforeClass
public static void initialize() throws Exception {
- 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" + UUID.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();
+ server = new Server();
+ HttpConfiguration config = new HttpConfiguration();
+ ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(config));
+ http.setPort(0);
+ http.setIdleTimeout(1000 * 60 * 60);
+ server.addConnector(http);
+
+ WebAppContext bb = new WebAppContext();
+ bb.setServer(server);
+ bb.setContextPath("/");
+ bb.setWar("src/main/webapp");
+
+ server.setHandler(bb);
+
+ MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
+ MBeanContainer mBeanContainer = new MBeanContainer(mBeanServer);
+ server.addEventListener(mBeanContainer);
+ server.addBean(mBeanContainer);
+ server.start();
+ server.join();
+ port = ((ServerConnector)server.getConnectors()[0]).getLocalPort();
}
@Override
@@ -131,11 +140,8 @@ public class AbstractWebServiceTest extends AbstractJUnitDefaults {
@AfterClass
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();
+ if (server != null && (AbstractLifeCycle.STARTING.equals(server.getState()) || AbstractLifeCycle.STARTED.equals(server.getState()))) {
+ server.stop();
}
}
diff --git a/openmeetings-web/src/test/jetty/jetty-http.xml b/openmeetings-web/src/test/jetty/jetty-http.xml
new file mode 100644
index 0000000..92ad3d1
--- /dev/null
+++ b/openmeetings-web/src/test/jetty/jetty-http.xml
@@ -0,0 +1,54 @@
+<?xml version="1.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.
+-->
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!-- ============================================================= -->
+<!-- Configure the Jetty Server instance with an ID "Server" -->
+<!-- by adding a HTTP connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+ <!-- =========================================================== -->
+ <!-- Add a HTTP Connector. -->
+ <!-- Configure an o.e.j.server.ServerConnector with a single -->
+ <!-- HttpConnectionFactory instance using the common httpConfig -->
+ <!-- instance defined in jetty.xml -->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.ServerConnector and -->
+ <!-- o.e.j.server.HttpConnectionFactory for all configuration -->
+ <!-- that may be set here. -->
+ <!-- =========================================================== -->
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config"><Ref refid="httpConfig" /></Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.host" /></Set>
+ <Set name="port"><Property name="jetty.port" default="5080" /></Set>
+ <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
+ </New>
+ </Arg>
+ </Call>
+</Configure>
diff --git a/openmeetings-web/src/test/jetty/jetty-https.xml b/openmeetings-web/src/test/jetty/jetty-https.xml
new file mode 100644
index 0000000..8718ac3
--- /dev/null
+++ b/openmeetings-web/src/test/jetty/jetty-https.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!--
+ 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.
+-->
+<!-- ============================================================= -->
+<!-- Configure a HTTPS connector. -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and jetty-ssl.xml. -->
+<!-- ============================================================= -->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+ <!-- =========================================================== -->
+ <!-- Add a HTTPS Connector. -->
+ <!-- Configure an o.e.j.server.ServerConnector with connection -->
+ <!-- factories for TLS (aka SSL) and HTTP to provide HTTPS. -->
+ <!-- All accepted TLS connections are wired to a HTTP connection.-->
+ <!-- -->
+ <!-- Consult the javadoc of o.e.j.server.ServerConnector, -->
+ <!-- o.e.j.server.SslConnectionFactory and -->
+ <!-- o.e.j.server.HttpConnectionFactory for all configuration -->
+ <!-- that may be set here. -->
+ <!-- =========================================================== -->
+ <Call id="httpsConnector" name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.ServerConnector">
+ <Arg name="server"><Ref refid="Server" /></Arg>
+ <Arg name="factories">
+ <Array type="org.eclipse.jetty.server.ConnectionFactory">
+ <Item>
+ <New class="org.eclipse.jetty.server.SslConnectionFactory">
+ <Arg name="next">http/1.1</Arg>
+ <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
+ </New>
+ </Item>
+ <Item>
+ <New class="org.eclipse.jetty.server.HttpConnectionFactory">
+ <Arg name="config"><Ref refid="sslHttpConfig"/></Arg>
+ </New>
+ </Item>
+ </Array>
+ </Arg>
+ <Set name="host"><Property name="jetty.host" /></Set>
+ <Set name="port"><Property name="jetty.https.port" default="5443" /></Set>
+ <Set name="idleTimeout">30000</Set>
+ </New>
+ </Arg>
+ </Call>
+</Configure>
diff --git a/openmeetings-web/src/test/jetty/jetty-ssl.xml b/openmeetings-web/src/test/jetty/jetty-ssl.xml
new file mode 100644
index 0000000..dad4b38
--- /dev/null
+++ b/openmeetings-web/src/test/jetty/jetty-ssl.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!--
+ 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.
+-->
+<!-- ============================================================= -->
+<!-- Configure a TLS (SSL) Context Factory -->
+<!-- This configuration must be used in conjunction with jetty.xml -->
+<!-- and either jetty-https.xml or jetty-spdy.xml (but not both) -->
+<!-- ============================================================= -->
+<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
+ <Set name="KeyStorePath"><Property name="maven.project.build.directory.test-classes" default="." />/<Property name="jetty.keystore" default="keystore"/></Set>
+ <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="wicket"/></Set>
+ <Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="wicket"/></Set>
+ <Set name="EndpointIdentificationAlgorithm"></Set>
+ <Set name="ExcludeCipherSuites">
+ <Array type="String">
+ <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
+ <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
+ <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
+ <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
+ <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+ <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
+ <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
+ </Array>
+ </Set>
+ <!-- =========================================================== -->
+ <!-- Create a TLS specific HttpConfiguration based on the -->
+ <!-- common HttpConfiguration defined in jetty.xml -->
+ <!-- Add a SecureRequestCustomizer to extract certificate and -->
+ <!-- session information -->
+ <!-- =========================================================== -->
+ <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Arg><Ref refid="httpConfig"/></Arg>
+ <Call name="addCustomizer">
+ <Arg><New class="org.eclipse.jetty.server.SecureRequestCustomizer"/></Arg>
+ </Call>
+ </New>
+</Configure>
diff --git a/openmeetings-web/src/test/jetty/jetty.xml b/openmeetings-web/src/test/jetty/jetty.xml
new file mode 100644
index 0000000..edaeb72
--- /dev/null
+++ b/openmeetings-web/src/test/jetty/jetty.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
+<!--
+ 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.
+-->
+<!-- ============================================================= -->
+<!-- Configure a HTTP connector. -->
+<!-- ============================================================= -->
+<Configure>
+ <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
+ <Set name="secureScheme">https</Set>
+ <Set name="securePort">
+ <Property name="jetty.secure.port" default="8443" />
+ </Set>
+ <Set name="outputBufferSize">32768</Set>
+ <Set name="requestHeaderSize">8192</Set>
+ <Set name="responseHeaderSize">8192</Set>
+ <Set name="sendServerVersion">true</Set>
+ <Set name="sendDateHeader">false</Set>
+ <Set name="headerCacheSize">512</Set>
+
+ <!-- Uncomment to enable handling of X-Forwarded- style headers <Call name="addCustomizer"> -->
+ <!-- <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg> -->
+ <!-- </Call> -->
+ </New>
+</Configure>
diff --git a/pom.xml b/pom.xml
index a03b2c6..bbc69c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.build.timestamp.format>yyyy/MM/dd HH:mm</maven.build.timestamp.format>
- <wicket.mode>DEPLOYMENT</wicket.mode>
+ <wicket.configuration>DEPLOYMENT</wicket.configuration>
<om.quick.build>false</om.quick.build>
<db>derby</db>
<jdk.version>1.8</jdk.version>
@@ -74,6 +74,9 @@
<src.pack.skip>false</src.pack.skip>
<derby.version>10.14.1.0</derby.version>
<commons-lang3.version>3.7</commons-lang3.version>
+ <slf4j.version>1.7.25</slf4j.version>
+ <logback.version>1.2.3</logback.version>
+ <jetty9.version>9.4.8.v20171121</jetty9.version>
<license.excludedScopes>test</license.excludedScopes>
<!-- URL of the ASF SonarQube server -->
<sonar.host.url>https://builds.apache.org/analysis</sonar.host.url>
@@ -109,7 +112,7 @@
<properties>
<maven.test.skip>true</maven.test.skip>
<om.quick.build>true</om.quick.build>
- <wicket.mode>DEVELOPMENT</wicket.mode>
+ <wicket.configuration>DEVELOPMENT</wicket.configuration>
<src.pack.skip>true</src.pack.skip>
</properties>
</profile>
@@ -776,9 +779,9 @@
</exclusions>
</dependency>
<dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-servlet-api</artifactId>
- <version>${tomcat.version}</version>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
+ <version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -791,6 +794,21 @@
<artifactId>commons-text</artifactId>
<version>1.2</version>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
<dependencies>
@@ -802,18 +820,13 @@
</dependency>
<dependency>
<groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-servlet-api</artifactId>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
<build>
--
To stop receiving notification emails like this one, please contact
solomax@apache.org.