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 2017/07/08 14:38:56 UTC
[2/2] openmeetings git commit: [OPENMEETINGS-1665] dublicated beans
are removed
[OPENMEETINGS-1665] dublicated beans are removed
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/4850a819
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/4850a819
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/4850a819
Branch: refs/heads/3.3.x
Commit: 4850a8191830606268a5c6e0ca7d90af9ba3ee85
Parents: e77cd1d
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sat Jul 8 21:38:44 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sat Jul 8 21:38:44 2017 +0700
----------------------------------------------------------------------
.../org/apache/openmeetings/IApplication.java | 1 +
.../apache/openmeetings/db/dto/basic/Info.java | 7 ++
.../openmeetings/db/util/TimezoneUtil.java | 9 ++-
openmeetings-util/pom.xml | 17 +++++
.../org/apache/openmeetings/util/Version.java | 30 ++++----
.../apache/openmeetings/util/version.properties | 21 ++++++
openmeetings-web/pom.xml | 7 ++
.../openmeetings/web/app/Application.java | 5 ++
.../WEB-INF/classes/applicationContext.xml | 48 +-----------
.../main/webapp/WEB-INF/classes/cxf-servlet.xml | 74 +++++++++++++++++++
.../src/main/webapp/WEB-INF/web.xml | 55 +++++++-------
.../test/AbstractJUnitDefaults.java | 6 +-
.../test/invitiation/TestInvitation.java | 7 +-
.../openmeetings/test/user/TestUserContact.java | 4 +-
.../openmeetings/test/user/TestUserGroup.java | 2 +-
.../test/webservice/AbstractWebServiceTest.java | 46 +++++++++++-
.../test/webservice/TestCalendarService.java | 10 +--
.../test/webservice/TestFileService.java | 23 +-----
.../test/webservice/TestGroupService.java | 20 -----
.../test/webservice/TestRecordingService.java | 7 +-
.../test/webservice/TestUserService.java | 22 +-----
.../openmeetings/webservice/BaseWebService.java | 63 ++++++++++++++++
.../webservice/CalendarWebService.java | 70 ++++++++----------
.../webservice/ErrorWebService.java | 13 +---
.../openmeetings/webservice/FileWebService.java | 77 +++++++++----------
.../webservice/GroupWebService.java | 66 ++++++++---------
.../webservice/RecordingWebService.java | 54 ++++++--------
.../openmeetings/webservice/RoomWebService.java | 78 ++++++++------------
.../webservice/ServerWebService.java | 49 +++++-------
.../openmeetings/webservice/UserWebService.java | 66 ++++++++---------
pom.xml | 27 -------
31 files changed, 506 insertions(+), 478 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java b/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
index 49e3385..809f471 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
@@ -32,6 +32,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
public interface IApplication {
<T> T getOmBean(Class<T> clazz);
+ <T> T _getOmBean(Class<T> clazz);
ServletContext getServletContext();
IRequestMapper getRootRequestMapper();
Supplier<IExceptionMapper> getExceptionMapperProvider();
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
index 3b585bf..a32dd66 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
@@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
+import org.apache.openmeetings.util.InitializationContainer;
import org.apache.openmeetings.util.Version;
@XmlRootElement
@@ -33,11 +34,13 @@ public class Info implements Serializable {
private final String version;
private final String revision;
private final String buildDate;
+ private final boolean inited;
public Info() {
version = Version.getVersion();
revision = Version.getRevision();
buildDate = Version.getBuildDate();
+ inited = InitializationContainer.initComplete;
}
public String getVersion() {
@@ -51,4 +54,8 @@ public class Info implements Serializable {
public String getBuildDate() {
return buildDate;
}
+
+ public boolean isInited() {
+ return inited;
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
index f2d185c..3898589 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
@@ -25,6 +25,7 @@ import java.util.TimeZone;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.util.string.Strings;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,18 +40,18 @@ public class TimezoneUtil {
* Parameters: ID - the ID for a TimeZone, either an abbreviation such as "PST", a full name such as
* "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x
* compatibility only and full names should be used.
- *
+ *
* Returns: the specified TimeZone, or the GMT zone if the given ID cannot be understood. <br/>
* <br/>
* TODO: Fall-back mechanism and maybe a log output if the given timeZoneId is not found in the list of available
* TimeZones of the current java.util.TimeZone package of the Java SDK the the user is running <br/>
- *
+ *
* @param timeZoneId
* @return
*/
public TimeZone getTimeZone(String timeZoneId) {
- if (timeZoneId == null || timeZoneId.equals("")) {
+ if (Strings.isEmpty(timeZoneId)) {
return getDefaultTimeZone();
}
@@ -79,7 +80,7 @@ public class TimezoneUtil {
/**
* Returns the timezone based on the user profile, if not return the timezone from the server
- *
+ *
* @param user
* @return
*/
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-util/pom.xml
----------------------------------------------------------------------
diff --git a/openmeetings-util/pom.xml b/openmeetings-util/pom.xml
index 25f9748..2f5b428 100644
--- a/openmeetings-util/pom.xml
+++ b/openmeetings-util/pom.xml
@@ -41,7 +41,24 @@
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
</build>
<profiles>
<profile>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java
index 7ad8c08..525fc38 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/Version.java
@@ -19,10 +19,7 @@
package org.apache.openmeetings.util;
import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
+import java.util.Properties;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -33,38 +30,41 @@ public class Version {
private static String version = null;
private static String revision = null;
private static String buildDate = null;
-
- private static Attributes getAttributes() throws MalformedURLException, IOException {
- String jarUrl = Version.class.getResource(Version.class.getSimpleName() + ".class").toString();
- return new Manifest(new URL(jarUrl.substring(0, jarUrl.indexOf('!')) + "!/META-INF/MANIFEST.MF").openStream()).getMainAttributes();
+
+ private static void init() throws IOException {
+ Properties props = new Properties();
+ props.load(Version.class.getResourceAsStream("version.properties"));
+ version = props.getProperty("version");
+ revision = props.getProperty("revision");
+ buildDate = props.getProperty("date");
}
-
+
public static String getVersion() {
if (version == null) {
try {
- version = getAttributes().getValue("Product-Version");
+ init();
} catch (Exception e) {
log.error("Error", e);
}
}
return version;
}
-
+
public static String getRevision() {
if (revision == null) {
try {
- revision = getAttributes().getValue("Git-Revision");
+ init();
} catch (Exception e) {
log.error("Error", e);
}
}
return revision;
}
-
+
public static String getBuildDate() {
if (buildDate == null) {
try {
- buildDate = getAttributes().getValue("Built-On");
+ init();
} catch (Exception e) {
log.error("Error", e);
}
@@ -85,7 +85,7 @@ public class Version {
}
sb.append("#\n");
}
-
+
public static void logOMStarted() {
StringBuilder sb = new StringBuilder("\n");
getLine(sb, "", '#');
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-util/src/main/resources/org/apache/openmeetings/util/version.properties
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/resources/org/apache/openmeetings/util/version.properties b/openmeetings-util/src/main/resources/org/apache/openmeetings/util/version.properties
new file mode 100644
index 0000000..a907b98
--- /dev/null
+++ b/openmeetings-util/src/main/resources/org/apache/openmeetings/util/version.properties
@@ -0,0 +1,21 @@
+################################################################################
+##
+## 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.
+##
+################################################################################
+version=${project.version}
+date=${maven.build.timestamp}
+revision=${buildNumber}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/pom.xml
----------------------------------------------------------------------
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index d80de60..24ad1c8 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -483,6 +483,13 @@
</dependency>
<dependency>
<groupId>org.apache.openmeetings</groupId>
+ <artifactId>openmeetings-util</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openmeetings</groupId>
<artifactId>openmeetings-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
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 2a5e608..48b1b56 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
@@ -607,6 +607,11 @@ public class Application extends AuthenticatedWebApplication implements IApplica
return Application.getBean(clazz);
}
+ @Override
+ public <T> T _getOmBean(Class<T> clazz) { //FIXME hack for web services support (should be in separate module for now
+ return Application.get()._getBean(clazz);
+ }
+
public static String getContactsLink() {
return PROFILE_MESSAGES.getLink();
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index c99613a..7f2bfdc 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -22,15 +22,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
- xmlns:jaxrs="http://cxf.apache.org/jaxrs"
- xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
- http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
- http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
+ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="openmeetings" />
@@ -235,46 +231,4 @@
<property name="maxPoolSize" value="10" />
<property name="queueCapacity" value="25" />
</bean>
-
- <!-- CXF beans -->
- <bean id="calendarWebService" class="org.apache.openmeetings.webservice.CalendarWebService" />
- <bean id="errorWebService" class="org.apache.openmeetings.webservice.ErrorWebService" />
- <bean id="fileWebService" class="org.apache.openmeetings.webservice.FileWebService" />
- <bean id="groupWebService" class="org.apache.openmeetings.webservice.GroupWebService" />
- <bean id="infoWebService" class="org.apache.openmeetings.webservice.InfoWebService" />
- <bean id="recordWebService" class="org.apache.openmeetings.webservice.RecordingWebService" />
- <bean id="roomWebService" class="org.apache.openmeetings.webservice.RoomWebService" />
- <bean id="serverWebService" class="org.apache.openmeetings.webservice.ServerWebService" />
- <bean id="userWebService" class="org.apache.openmeetings.webservice.UserWebService" />
- <bean id="netTestWebService" class="org.apache.openmeetings.webservice.NetTestWebService" />
-
- <!-- (writeXsiType=false) -->
- <jaxrs:server id="server" address="/">
- <jaxrs:serviceBeans>
- <ref bean="calendarWebService"/>
- <ref bean="errorWebService"/>
- <ref bean="fileWebService"/>
- <ref bean="groupWebService"/>
- <ref bean="infoWebService"/>
- <ref bean="recordWebService"/>
- <ref bean="roomWebService"/>
- <ref bean="serverWebService"/>
- <ref bean="userWebService"/>
- <ref bean="netTestWebService"/> <!-- JaxRs only -->
- </jaxrs:serviceBeans>
- <jaxrs:providers>
- <bean id="appDtoMessageBodyWriter" class="org.apache.openmeetings.webservice.util.AppointmentMessageBodyWriter" />
- <bean id="appDtoListMessageBodyWriter" class="org.apache.openmeetings.webservice.util.AppointmentListMessageBodyWriter" />
- <bean id="omParamProvider" class="org.apache.openmeetings.webservice.util.OmParamConverterProvider"/>
- </jaxrs:providers>
- </jaxrs:server>
- <jaxws:endpoint id="calendarServiceWS" address="/CalendarService" implementor="#calendarWebService"/>
- <jaxws:endpoint id="errorServiceWS" address="/ErrorService" implementor="#errorWebService" />
- <jaxws:endpoint id="groupServiceWS" address="/GroupService" implementor="#groupWebService" />
- <jaxws:endpoint id="infoServiceWS" address="/InfoService" implementor="#infoWebService" />
- <jaxws:endpoint id="fileServiceWS" address="/FileService" implementor="#fileWebService" />
- <jaxws:endpoint id="recordServiceWS" address="/RecordService" implementor="#recordWebService" />
- <jaxws:endpoint id="roomServiceWS" address="/RoomService" implementor="#roomWebService" />
- <jaxws:endpoint id="serverServiceWS" address="/ServerService" implementor="#serverWebService" />
- <jaxws:endpoint id="userServiceWS" address="/UserService" implementor="#userWebService" />
</beans>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml
new file mode 100644
index 0000000..3fc11be
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/cxf-servlet.xml
@@ -0,0 +1,74 @@
+<?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"
+ xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+ xmlns:jaxws="http://cxf.apache.org/jaxws"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+ http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
+ >
+ <!-- CXF beans -->
+ <import resource="classpath:META-INF/cxf/cxf.xml" />
+ <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
+
+ <bean id="calendarWebService" class="org.apache.openmeetings.webservice.CalendarWebService" />
+ <bean id="errorWebService" class="org.apache.openmeetings.webservice.ErrorWebService" />
+ <bean id="fileWebService" class="org.apache.openmeetings.webservice.FileWebService" />
+ <bean id="groupWebService" class="org.apache.openmeetings.webservice.GroupWebService" />
+ <bean id="infoWebService" class="org.apache.openmeetings.webservice.InfoWebService" />
+ <bean id="recordWebService" class="org.apache.openmeetings.webservice.RecordingWebService" />
+ <bean id="roomWebService" class="org.apache.openmeetings.webservice.RoomWebService" />
+ <bean id="serverWebService" class="org.apache.openmeetings.webservice.ServerWebService" />
+ <bean id="userWebService" class="org.apache.openmeetings.webservice.UserWebService"/>
+ <bean id="netTestWebService" class="org.apache.openmeetings.webservice.NetTestWebService" />
+
+ <!-- (writeXsiType=false) -->
+ <jaxrs:server id="server" address="/">
+ <jaxrs:serviceBeans>
+ <ref bean="calendarWebService"/>
+ <ref bean="errorWebService"/>
+ <ref bean="fileWebService"/>
+ <ref bean="groupWebService"/>
+ <ref bean="infoWebService"/>
+ <ref bean="recordWebService"/>
+ <ref bean="roomWebService"/>
+ <ref bean="serverWebService"/>
+ <ref bean="userWebService"/>
+ <ref bean="netTestWebService"/> <!-- JaxRs only -->
+ </jaxrs:serviceBeans>
+ <jaxrs:providers>
+ <bean id="appDtoMessageBodyWriter" class="org.apache.openmeetings.webservice.util.AppointmentMessageBodyWriter" />
+ <bean id="appDtoListMessageBodyWriter" class="org.apache.openmeetings.webservice.util.AppointmentListMessageBodyWriter" />
+ <bean id="omParamProvider" class="org.apache.openmeetings.webservice.util.OmParamConverterProvider"/>
+ </jaxrs:providers>
+ </jaxrs:server>
+ <jaxws:endpoint id="calendarServiceWS" address="/CalendarService" implementor="#calendarWebService"/>
+ <jaxws:endpoint id="errorServiceWS" address="/ErrorService" implementor="#errorWebService" />
+ <jaxws:endpoint id="groupServiceWS" address="/GroupService" implementor="#groupWebService" />
+ <jaxws:endpoint id="infoServiceWS" address="/InfoService" implementor="#infoWebService" />
+ <jaxws:endpoint id="fileServiceWS" address="/FileService" implementor="#fileWebService" />
+ <jaxws:endpoint id="recordServiceWS" address="/RecordService" implementor="#recordWebService" />
+ <jaxws:endpoint id="roomServiceWS" address="/RoomService" implementor="#roomWebService" />
+ <jaxws:endpoint id="serverServiceWS" address="/ServerService" implementor="#serverWebService" />
+ <jaxws:endpoint id="userServiceWS" address="/UserService" implementor="#userWebService" />
+</beans>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/web.xml b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
index 1e89d1a..fb83a38 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/web.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
@@ -25,32 +25,28 @@
<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>
- <servlet>
- <servlet-name>CXFServlet</servlet-name>
- <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
- <init-param>
- <param-name>config-location</param-name>
- <param-value>classpath:applicationContext.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- <async-supported>true</async-supported>
- </servlet>
- <servlet-mapping>
- <servlet-name>CXFServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
-
<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>
@@ -77,19 +73,20 @@
<filter-name>OpenmeetingsApplication</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-
- <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>
+ <servlet>
+ <servlet-name>CXFServlet</servlet-name>
+ <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
+ <init-param>
+ <param-name>config-location</param-name>
+ <param-value>classpath:cxf-servlet.xml</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ <async-supported>true</async-supported>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>CXFServlet</servlet-name>
+ <url-pattern>/services/*</url-pattern>
+ </servlet-mapping>
<!-- remove the following servlet tags if you want to disable remoting for this application -->
<servlet>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
index cb301aa..b0c0a6c 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
@@ -135,8 +135,8 @@ public abstract class AbstractJUnitDefaults extends AbstractSpringTest {
return getUser(UUID.randomUUID().toString());
}
- protected String getRandomPass(String uuid) {
- return "pass" + uuid;
+ protected String createPass() {
+ return "pass1_!@#$%_A";
}
public User getUser(String uuid) throws Exception {
@@ -149,7 +149,7 @@ public abstract class AbstractJUnitDefaults extends AbstractSpringTest {
u.getAddress().setEmail(String.format("email%s@local", uuid));
u.setRights(UserDao.getDefaultRights());
u.setTimeZoneId("Asia/Bangkok");
- u.updatePassword(cfgDao, getRandomPass(uuid));
+ u.updatePassword(cfgDao, createPass());
u.setLanguageId(1L);
return u;
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
index 2c49435..2c97de5 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
@@ -24,14 +24,12 @@ import java.time.LocalDateTime;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.entity.room.Invitation;
import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
import org.apache.openmeetings.db.entity.room.Invitation.Valid;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.service.room.InvitationManager;
import org.apache.openmeetings.test.AbstractWicketTester;
-import org.apache.openmeetings.webservice.UserWebService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,16 +37,13 @@ public class TestInvitation extends AbstractWicketTester {
@Autowired
private InvitationManager invitationManager;
@Autowired
- private UserWebService userWebService;
- @Autowired
private UserDao userDao;
@Autowired
private RoomDao roomDao;
@Test
public void testSendInvitationLink() throws Exception {
- ServiceResult result = userWebService.login(username, userpass);
- User us = userDao.get(result.getCode());
+ User us = userDao.getByLogin(username, User.Type.user, null);
LocalDateTime from = LocalDateTime.now().plusDays(1).withHour(12).withMinute(0).withSecond(0);
User invitee = userDao.getContact("sebawagner@apache.org", "Testname", "Testlastname", us.getId());
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
index 0cce759..a313612 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
@@ -52,7 +52,7 @@ public class TestUserContact extends AbstractWicketTester {
User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
u = userDao.update(u, null);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), createPass()));
User u1 = userDao.get(u.getId());
assertNotNull("Just created user should not be null", u1);
@@ -64,7 +64,7 @@ public class TestUserContact extends AbstractWicketTester {
public void testCreateUser() throws Exception {
String uuid = UUID.randomUUID().toString();
User u = createUser(uuid);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), createPass()));
}
@Test
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
index e084165..a7c36b6 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
@@ -87,7 +87,7 @@ public class TestUserGroup extends AbstractJUnitDefaults {
assertNotNull("User successfully created", u.getId());
checkEmptyGroup("dao.get()", userDao.get(u.getId()));
try {
- checkEmptyGroup("dao.login()", userDao.login(u.getAddress().getEmail(), getRandomPass(uuid)));
+ checkEmptyGroup("dao.login()", userDao.login(u.getAddress().getEmail(), createPass()));
fail("User with no Group is unable to login");
} catch (OmException e) {
assertTrue("Expected Om Exception", "No Group assigned to user".equals(e.getMessage()));
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
index b649613..047ac58 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
@@ -18,8 +18,10 @@
*/
package org.apache.openmeetings.test.webservice;
+import static org.apache.openmeetings.db.util.ApplicationHelper.getWicketTester;
import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.io.File;
import java.nio.file.Files;
@@ -29,11 +31,18 @@ import java.util.UUID;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.startup.Tomcat;
import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.db.dto.user.UserDTO;
+import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.webservice.util.AppointmentMessageBodyReader;
+import org.apache.wicket.util.tester.WicketTester;
+import org.junit.After;
import org.junit.AfterClass;
+import org.junit.Assert;
import org.junit.BeforeClass;
public class AbstractWebServiceTest extends AbstractJUnitDefaults {
@@ -41,10 +50,17 @@ public class AbstractWebServiceTest extends AbstractJUnitDefaults {
public final static String CONTEXT = "/openmeetings";
public final static String BASE_SERVICES_URL = "http://localhost:8080" + CONTEXT + "/services";
public final static String USER_SERVICE_URL = BASE_SERVICES_URL + "/user";
+ public final static String INFO_SERVICE_URL = BASE_SERVICES_URL + "/info";
+ public final static long TIMEOUT = 5 * 60 * 1000;
+ protected WicketTester tester;
public static WebClient getClient(String url) {
- return WebClient.create(url, Arrays.asList(new AppointmentMessageBodyReader()))
+ WebClient c = WebClient.create(url, Arrays.asList(new AppointmentMessageBodyReader()))
.accept("application/json").type("application/json");
+ HTTPClientPolicy p = WebClient.getConfig(c).getHttpConduit().getClient();
+ p.setConnectionTimeout(TIMEOUT);
+ p.setReceiveTimeout(TIMEOUT);
+ return c;
}
public static ServiceResult login() {
@@ -76,6 +92,21 @@ public class AbstractWebServiceTest extends AbstractJUnitDefaults {
tomcat.start();
}
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ tester = getWicketTester();
+ assertNotNull("Web session should not be null", WebSession.get());
+ }
+
+ @After
+ public void tearDown() {
+ if (tester != null) {
+ //can be null in case exception on initialization
+ tester.destroy();
+ }
+ }
+
@AfterClass
public static void destroy() throws Exception {
if (tomcat.getServer() != null && tomcat.getServer().getState() != LifecycleState.DESTROYED) {
@@ -85,4 +116,17 @@ public class AbstractWebServiceTest extends AbstractJUnitDefaults {
tomcat.destroy();
}
}
+
+ public void webCreateUser(User u) {
+ ServiceResult r = login();
+ UserDTO dto = new UserDTO(u);
+ dto.setPassword(createPass());
+ UserDTO user = getClient(USER_SERVICE_URL)
+ .path("/")
+ .query("sid", r.getMessage())
+ .query("user", dto.toString())
+ .query("confirm", false).post(null, UserDTO.class);
+ Assert.assertNotNull(user.getId());
+ u.setId(user.getId());
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
index 54170fb..8af988b 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
@@ -69,8 +69,8 @@ public class TestCalendarService extends AbstractWebServiceTest {
String uuid = UUID.randomUUID().toString();
User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
- u = createUser(u);
- ServiceResult sr = login(u.getLogin(), getRandomPass(uuid));
+ webCreateUser(u);
+ ServiceResult sr = login(u.getLogin(), createPass());
Date start = new Date();
Appointment a = createAppointment(getAppointment(u, r, start, new Date(start.getTime() + ONE_HOUR)));
@@ -131,8 +131,8 @@ public class TestCalendarService extends AbstractWebServiceTest {
String uuid = UUID.randomUUID().toString();
User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
- u = createUser(u);
- ServiceResult sr = login(u.getLogin(), getRandomPass(uuid));
+ webCreateUser(u);
+ ServiceResult sr = login(u.getLogin(), createPass());
return sr.getMessage();
}
@@ -176,7 +176,7 @@ public class TestCalendarService extends AbstractWebServiceTest {
User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
u = createUser(u);
- ServiceResult sr = login(u.getLogin(), getRandomPass(uuid));
+ ServiceResult sr = login(u.getLogin(), createPass());
Response resp = getClient(CALENDAR_SERVICE_URL)
.path("/")
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestFileService.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestFileService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestFileService.java
index 400d1cd..4816c9c 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestFileService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestFileService.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.test.webservice;
-import static org.apache.openmeetings.db.util.ApplicationHelper.getWicketTester;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -39,23 +38,15 @@ import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.dto.file.FileExplorerItemDTO;
import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.wicket.util.tester.WicketTester;
-import org.junit.After;
+import org.apache.openmeetings.util.NonJenkinsTests;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
public class TestFileService extends AbstractWebServiceTest {
public final static String FILE_SERVICE_URL = BASE_SERVICES_URL + "/file";
- protected WicketTester tester;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- tester = getWicketTester();
- assertNotNull("Web session should not be null", WebSession.get());
- }
@Test
+ @Category(NonJenkinsTests.class)
public void addFileTest() throws IOException {
ServiceResult r = login();
@@ -92,12 +83,4 @@ public class TestFileService extends AbstractWebServiceTest {
}
}
}
-
- @After
- public void tearDown() {
- if (tester != null) {
- //can be null in case exception on initialization
- tester.destroy();
- }
- }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestGroupService.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestGroupService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestGroupService.java
index c96356c..7ace9ee 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestGroupService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestGroupService.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.test.webservice;
-import static org.apache.openmeetings.db.util.ApplicationHelper.getWicketTester;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -26,22 +25,11 @@ import javax.ws.rs.core.Response;
import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.wicket.util.tester.WicketTester;
-import org.junit.After;
import org.junit.Test;
public class TestGroupService extends AbstractWebServiceTest {
- protected WicketTester tester;
public final static String GROUP_SERVICE_URL = BASE_SERVICES_URL + "/group";
- @Override
- public void setUp() throws Exception {
- super.setUp();
- tester = getWicketTester();
- assertNotNull("Web session should not be null", WebSession.get());
- }
-
@Test
public void putTest() {
ServiceResult r = login();
@@ -76,12 +64,4 @@ public class TestGroupService extends AbstractWebServiceTest {
assertEquals("OM Call should be successful", r1.getType(), Type.SUCCESS.name());
}
}
-
- @After
- public void tearDown() {
- if (tester != null) {
- //can be null in case exception on initialization
- tester.destroy();
- }
- }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
index a6202ce..da11098 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
@@ -26,7 +26,6 @@ import java.util.Collection;
import java.util.UUID;
import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.dto.record.RecordingDTO;
import org.apache.openmeetings.db.entity.record.Recording;
@@ -39,18 +38,16 @@ public class TestRecordingService extends AbstractWebServiceTest {
private final static String UNIT_TEST_GROUP = "om_unit_tests";
@Autowired
private RecordingDao recordingDao;
- @Autowired
- private UserDao userDao;
private User getExternalUser() throws Exception {
String uuid = UUID.randomUUID().toString();
User u = getUser(uuid);
u.setExternalType(UNIT_TEST_GROUP);
u.setExternalId(uuid);
- u = userDao.update(u, null);
+ webCreateUser(u);
return u;
}
-
+
@Test
public void testExternal() throws Exception {
User u = getExternalUser();
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
index e50bdf5..d091db7 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestUserService.java
@@ -18,7 +18,6 @@
*/
package org.apache.openmeetings.test.webservice;
-import static org.apache.openmeetings.db.util.ApplicationHelper.getWicketTester;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -39,20 +38,9 @@ import org.apache.openmeetings.db.dto.user.UserDTO;
import org.apache.openmeetings.db.entity.user.Address;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.wicket.util.string.StringValue;
-import org.apache.wicket.util.tester.WicketTester;
-import org.junit.After;
import org.junit.Test;
public class TestUserService extends AbstractWebServiceTest {
- protected WicketTester tester;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- tester = getWicketTester();
- assertNotNull("Web session should not be null", WebSession.get());
- }
-
@Test
public void invalidLoginTest() {
ServiceResult r = loginNoCheck("invalid-user", "bad pass");
@@ -97,7 +85,7 @@ public class TestUserService extends AbstractWebServiceTest {
public void addUserTest() {
Random rnd = new Random();
String[] tzList = TimeZone.getAvailableIDs();
- String tz = tzList[rnd.nextInt(tzList.length)];
+ String tz = TimeZone.getTimeZone(tzList[rnd.nextInt(tzList.length)]).getID();
ServiceResult r = login();
UserDTO u = new UserDTO();
String uuid = UUID.randomUUID().toString();
@@ -121,12 +109,4 @@ public class TestUserService extends AbstractWebServiceTest {
assertEquals("OM Call should be successful", u.getLogin(), user.getLogin());
assertEquals("OM Call should be successful", tz, user.getTimeZoneId());
}
-
- @After
- public void tearDown() {
- if (tester != null) {
- //can be null in case exception on initialization
- tester.destroy();
- }
- }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java
new file mode 100644
index 0000000..0f663db
--- /dev/null
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.webservice;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
+
+import java.util.Set;
+
+import org.apache.openmeetings.IApplication;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.User.Right;
+import org.apache.wicket.Application;
+
+public abstract class BaseWebService {
+ static <T> T getBean(Class<T> clazz) {
+ IApplication iapp = (IApplication)Application.get(wicketApplicationName);
+ return iapp._getOmBean(clazz);
+ }
+
+ static SessiondataDao getSessionDao() {
+ return getBean(SessiondataDao.class);
+ }
+
+ static Sessiondata check(String sid) {
+ return getSessionDao().check(sid);
+ }
+
+ static Set<Right> getRights(String sid) {
+ Sessiondata sd = check(sid);
+ return getRights(sd.getUserId());
+ }
+
+ static UserDao getUserDao() {
+ return getBean(UserDao.class);
+ }
+
+ static RoomDao getRoomDao() {
+ return getBean(RoomDao.class);
+ }
+
+ static Set<Right> getRights(Long id) {
+ return getUserDao().getRights(id);
+ }
+}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
index d52554e..aca0b44 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
@@ -41,8 +41,6 @@ import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
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;
@@ -55,7 +53,6 @@ import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
/**
* CalendarService contains methods to create, edit delete calendar meetings
@@ -67,18 +64,12 @@ import org.springframework.beans.factory.annotation.Autowired;
@Features(features = "org.apache.cxf.feature.LoggingFeature")
@Produces({MediaType.APPLICATION_JSON})
@Path("/calendar")
-public class CalendarWebService {
+public class CalendarWebService extends BaseWebService {
private static final Logger log = Red5LoggerFactory.getLogger(CalendarWebService.class, webAppRootKey);
- @Autowired
- private AppointmentDao appointmentDao;
- @Autowired
- private SessiondataDao sessionDao;
- @Autowired
- private UserDao userDao;
- @Autowired
- private RoomDao roomDao;
-
+ private static AppointmentDao getDao() {
+ return getBean(AppointmentDao.class);
+ }
/**
* Load appointments by a start / end range for the current SID
*
@@ -101,9 +92,9 @@ public class CalendarWebService {
{
log.debug("range : startdate - " + start.getTime() + ", enddate - " + end.getTime());
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
- return AppointmentDTO.list(appointmentDao.getInRange(sd.getUserId(), start.getTime(), end.getTime()));
+ Sessiondata sd = check(sid);
+ if (AuthLevelUtil.hasUserLevel(getRights(sd.getUserId()))) {
+ return AppointmentDTO.list(getDao().getInRange(sd.getUserId(), start.getTime(), end.getTime()));
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
}
@@ -141,9 +132,8 @@ public class CalendarWebService {
{
log.debug("rangeForUser : startdate - " + start.getTime() + ", enddate - " + end.getTime());
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- return AppointmentDTO.list(appointmentDao.getInRange(userid, start.getTime(), end.getTime()));
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ return AppointmentDTO.list(getDao().getInRange(userid, start.getTime(), end.getTime()));
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
}
@@ -167,9 +157,9 @@ public class CalendarWebService {
@Path("/next")
public AppointmentDTO next(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
- Appointment a = appointmentDao.getNext(sd.getUserId(), new Date());
+ Sessiondata sd = check(sid);
+ if (AuthLevelUtil.hasUserLevel(getRights(sd.getUserId()))) {
+ Appointment a = getDao().getNext(sd.getUserId(), new Date());
return a == null ? null : new AppointmentDTO(a);
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
@@ -197,9 +187,8 @@ public class CalendarWebService {
@Path("/next/{userid}")
public AppointmentDTO nextForUser(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("userid") @WebParam(name="userid") long userid) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- Appointment a = appointmentDao.getNext(userid, new Date());
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ Appointment a = getDao().getNext(userid, new Date());
return a == null ? null : new AppointmentDTO(a);
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
@@ -225,9 +214,9 @@ public class CalendarWebService {
@Path("/room/{roomid}")
public AppointmentDTO getByRoom(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("roomid") @WebParam(name="roomid") long roomid) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
- Appointment app = appointmentDao.getByRoom(sd.getUserId(), roomid);
+ Sessiondata sd = check(sid);
+ if (AuthLevelUtil.hasUserLevel(getRights(sd.getUserId()))) {
+ Appointment app = getDao().getByRoom(sd.getUserId(), roomid);
if (app != null) {
return new AppointmentDTO(app);
}
@@ -258,9 +247,9 @@ public class CalendarWebService {
@Path("/title/{title}")
public List<AppointmentDTO> getByTitle(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("title") @WebParam(name="title") String title) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
- return AppointmentDTO.list(appointmentDao.searchAppointmentsByTitle(sd.getUserId(), title));
+ Sessiondata sd = check(sid);
+ if (AuthLevelUtil.hasUserLevel(getRights(sd.getUserId()))) {
+ return AppointmentDTO.list(getDao().searchAppointmentsByTitle(sd.getUserId(), title));
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
}
@@ -291,7 +280,8 @@ public class CalendarWebService {
log.debug("save SID:" + sid);
try {
- Sessiondata sd = sessionDao.check(sid);
+ UserDao userDao = getUserDao();
+ Sessiondata sd = check(sid);
log.debug("save userId:" + sd);
User u = userDao.get(sd.getUserId());
if (!AuthLevelUtil.hasWebServiceLevel(u.getRights())
@@ -304,15 +294,16 @@ public class CalendarWebService {
}
//TODO check if objects passed with IDs are correct
if (AuthLevelUtil.hasUserLevel(u.getRights())) {
- Appointment a = appointment.get(userDao, appointmentDao, u);
+ AppointmentDao dao = getDao();
+ Appointment a = appointment.get(userDao, dao, u);
if (a.getRoom().getId() != null) {
if (a.getRoom().isAppointment()) {
a.getRoom().setIspublic(false);
} else {
- a.setRoom(roomDao.get(a.getRoom().getId()));
+ a.setRoom(getRoomDao().get(a.getRoom().getId()));
}
}
- return new AppointmentDTO(appointmentDao.update(a, u.getId()));
+ return new AppointmentDTO(dao.update(a, u.getId()));
} else {
log.error("save : wrong user level");
throw new ServiceException("Insufficient permissions"); //TODO code -26
@@ -346,10 +337,11 @@ public class CalendarWebService {
@Path("/{id}")
public ServiceResult delete(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("id") @WebParam(name="id") Long id) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- Set<Right> rights = userDao.getRights(sd.getUserId());
+ Sessiondata sd = check(sid);
+ Set<Right> rights = getRights(sd.getUserId());
- Appointment a = appointmentDao.get(id);
+ AppointmentDao dao = getDao();
+ Appointment a = dao.get(id);
if (AuthLevelUtil.hasWebServiceLevel(rights) || AuthLevelUtil.hasAdminLevel(rights)) {
// fine
} else if (AuthLevelUtil.hasUserLevel(rights)) {
@@ -360,7 +352,7 @@ public class CalendarWebService {
} else {
throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
}
- appointmentDao.delete(a, sd.getUserId());
+ dao.delete(a, sd.getUserId());
return new ServiceResult(id, "Deleted", Type.SUCCESS);
} catch (ServiceException err) {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
index f5a0a1a..87a00db 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
@@ -35,13 +35,11 @@ import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
import org.apache.openmeetings.db.dao.basic.ErrorDao;
import org.apache.openmeetings.db.dao.label.LabelDao;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.entity.basic.ErrorValue;
import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
/**
*
@@ -54,14 +52,9 @@ import org.springframework.beans.factory.annotation.Autowired;
@Features(features = "org.apache.cxf.feature.LoggingFeature")
@Produces({MediaType.APPLICATION_JSON})
@Path("/error")
-public class ErrorWebService {
+public class ErrorWebService extends BaseWebService {
private static final Logger log = Red5LoggerFactory.getLogger(ErrorWebService.class, webAppRootKey);
- @Autowired
- private ErrorDao errorDao;
- @Autowired
- private SessiondataDao sessionDao;
-
/**
* loads an Error-Object. If a Method returns a negative Result, its an
* Error-id, it needs a languageId to specify in which language you want to
@@ -81,7 +74,7 @@ public class ErrorWebService {
public ServiceResult get(@WebParam(name="id") @PathParam("id") long id, @WebParam(name="lang") @PathParam("lang") long lang) {
try {
if (id < 0) {
- ErrorValue eValues = errorDao.get(-1 * id);
+ ErrorValue eValues = getBean(ErrorDao.class).get(-1 * id);
if (eValues != null) {
log.debug("eValues.getLabelId() = " + eValues.getLabelId());
log.debug("eValues.getErrorType() = " + eValues.getType());
@@ -105,7 +98,7 @@ public class ErrorWebService {
@Path("/report/")
public void report(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="message") @QueryParam("message") String message) {
if (sid != null && message != null) {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
if (sd.getId() != null) {
log.error("[CLIENT MESSAGE] " + message);
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
index d4e8326..bcadbff 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
@@ -44,8 +44,6 @@ import org.apache.cxf.feature.Features;
import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.apache.openmeetings.core.data.file.FileProcessor;
import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
-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;
import org.apache.openmeetings.db.dto.file.FileExplorerItemDTO;
@@ -58,7 +56,6 @@ import org.apache.openmeetings.util.process.ConverterProcessResultList;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
/**
*
@@ -72,17 +69,12 @@ import org.springframework.beans.factory.annotation.Autowired;
@Features(features = "org.apache.cxf.feature.LoggingFeature")
@Produces({MediaType.APPLICATION_JSON})
@Path("/file")
-public class FileWebService {
+public class FileWebService extends BaseWebService {
private static final Logger log = Red5LoggerFactory.getLogger(FileWebService.class, webAppRootKey);
- @Autowired
- private SessiondataDao sessionDao;
- @Autowired
- private UserDao userDao;
- @Autowired
- private FileExplorerItemDao fileDao;
- @Autowired
- private FileProcessor fileProcessor;
+ private static FileExplorerItemDao getDao() {
+ return getBean(FileExplorerItemDao.class);
+ }
/**
* deletes files or folders based on it id
@@ -98,18 +90,19 @@ public class FileWebService {
@Path("/{id}")
public ServiceResult delete(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("id") @WebParam(name="id") Long id) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
- FileExplorerItem f = fileDao.get(id);
+ FileExplorerItemDao dao = getDao();
+ FileExplorerItem f = dao.get(id);
if (f == null) {
return new ServiceResult(-1L, "Bad id", Type.ERROR);
}
Long userId = sd.getUserId();
- Set<Right> rights = userDao.getRights(userId);
+ Set<Right> rights = getRights(userId);
if (AuthLevelUtil.hasWebServiceLevel(rights)
|| (AuthLevelUtil.hasUserLevel(rights) && userId.equals(f.getOwnerId())))
{
- fileDao.delete(f);
+ dao.delete(f);
return new ServiceResult(id, "Deleted", Type.SUCCESS);
} else {
return NO_PERMISSION;
@@ -141,11 +134,10 @@ public class FileWebService {
)
{
try {
- Sessiondata sd = sessionDao.check(sid);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- FileExplorerItem f = fileDao.get(externalId, externalType);
- fileDao.delete(f);
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ FileExplorerItemDao dao = getDao();
+ FileExplorerItem f = dao.get(externalId, externalType);
+ dao.delete(f);
return new ServiceResult(f.getId(), "Deleted", Type.SUCCESS);
}
} catch (Exception err) {
@@ -177,14 +169,14 @@ public class FileWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long userId = sd.getUserId();
FileExplorerItem f = file == null ? null : file.get();
if (f == null || f.getId() != null) {
throw new ServiceException("Bad id");//TODO err code -1 ????
}
- Set<Right> rights = userDao.getRights(userId);
+ Set<Right> rights = getRights(userId);
/* FIXME TODO permissions
if (AuthLevelUtil.hasWebServiceLevel(rights)
|| (AuthLevelUtil.hasUserLevel(rights) && userId.equals(f.getOwnerId())))*/
@@ -194,12 +186,12 @@ public class FileWebService {
//TODO permissions
if (stream != null) {
//TODO attachment
- ConverterProcessResultList result = fileProcessor.processFile(f, stream);
+ ConverterProcessResultList result = getBean(FileProcessor.class).processFile(f, stream);
if (result.hasError()) {
throw new ServiceException(result.getLogMessage());
}
} else {
- f = fileDao.update(f);
+ f = getDao().update(f);
}
return new FileExplorerItemDTO(f);
} else {
@@ -231,21 +223,22 @@ public class FileWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long userId = sd.getUserId();
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ if (AuthLevelUtil.hasUserLevel(getRights(userId))) {
log.debug("roomId " + roomId);
+ FileExplorerItemDao dao = getDao();
FileExplorerObject fileExplorerObject = new FileExplorerObject();
// Home File List
- List<FileExplorerItem> fList = fileDao.getByOwner(userId);
- fileExplorerObject.setUser(fList, fileDao.getSize(fList));
+ List<FileExplorerItem> fList = dao.getByOwner(userId);
+ fileExplorerObject.setUser(fList, dao.getSize(fList));
// Public File List
- List<FileExplorerItem> rList = fileDao.getByRoom(roomId);
- fileExplorerObject.setRoom(rList, fileDao.getSize(rList));
+ List<FileExplorerItem> rList = dao.getByRoom(roomId);
+ fileExplorerObject.setRoom(rList, dao.getSize(rList));
return fileExplorerObject;
} else {
@@ -281,21 +274,22 @@ public class FileWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long userId = sd.getUserId();
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ if (AuthLevelUtil.hasUserLevel(getRights(userId))) {
log.debug("getRoomByParent " + parentId);
+ FileExplorerItemDao dao = getDao();
List<FileExplorerItem> list = new ArrayList<>();
if (parentId < 0) {
if (parentId == -1) {
- list = fileDao.getByOwner(userId);
+ list = dao.getByOwner(userId);
} else {
- list = fileDao.getByRoom(roomId);
+ list = dao.getByRoom(roomId);
}
} else {
- list = fileDao.getByParent(parentId);
+ list = dao.getByParent(parentId);
}
return FileExplorerItemDTO.list(list);
} else {
@@ -330,12 +324,11 @@ public class FileWebService {
, @WebParam(name="name") @PathParam("name") String name) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
+ if (AuthLevelUtil.hasUserLevel(getRights(sid))) {
// FIXME TODO: check if this user is allowed to change this file
log.debug("rename " + id);
- FileExplorerItem f = fileDao.rename(id, name);
+ FileExplorerItem f = getDao().rename(id, name);
return f == null ? null : new FileExplorerItemDTO(f);
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
@@ -369,12 +362,12 @@ public class FileWebService {
, @WebParam(name="parentid") @PathParam("parentid") long parentId) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long userId = sd.getUserId();
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ if (AuthLevelUtil.hasUserLevel(getRights(userId))) {
// FIXME TODO A test is required that checks if the user is allowed to move the file
log.debug("move " + id);
- FileExplorerItem f = fileDao.move(id, parentId, userId, roomId);
+ FileExplorerItem f = getDao().move(id, parentId, userId, roomId);
return f == null ? null : new FileExplorerItemDTO(f);
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
index 16431cd..e7209a2 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
@@ -41,7 +41,6 @@ import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.GroupUserDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -59,7 +58,6 @@ import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
/**
*
@@ -73,19 +71,12 @@ import org.springframework.beans.factory.annotation.Autowired;
@Features(features = "org.apache.cxf.feature.LoggingFeature")
@Produces({MediaType.APPLICATION_JSON})
@Path("/group")
-public class GroupWebService {
+public class GroupWebService extends BaseWebService {
private static final Logger log = Red5LoggerFactory.getLogger(GroupWebService.class, webAppRootKey);
- @Autowired
- private GroupDao groupDao;
- @Autowired
- private GroupUserDao groupUserDao;
- @Autowired
- private UserDao userDao;
- @Autowired
- private RoomDao roomDao;
- @Autowired
- private SessiondataDao sessionDao;
+ private static GroupDao getDao() {
+ return getBean(GroupDao.class);
+ }
/**
* add a new group
@@ -100,12 +91,12 @@ public class GroupWebService {
@POST
@Path("/")
public ServiceResult add(@QueryParam("sid") @WebParam(name="sid") String sid, @QueryParam("name") @WebParam(name="name") String name) throws ServiceException {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long userId = sd.getUserId();
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(userId))) {
Group o = new Group();
o.setName(name);
- return new ServiceResult(groupDao.update(o, userId).getId(), "Success", Type.SUCCESS);
+ return new ServiceResult(getDao().update(o, userId).getId(), "Success", Type.SUCCESS);
} else {
log.error("Could not create group");
return NO_PERMISSION;
@@ -123,9 +114,8 @@ public class GroupWebService {
@GET
@Path("/")
public List<Group> get(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- return groupDao.get(0, Integer.MAX_VALUE);
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ return getDao().get(0, Integer.MAX_VALUE);
} else {
log.error("Insufficient permissions");
throw new ServiceException("Insufficient permissions"); //TODO code -26
@@ -153,12 +143,13 @@ public class GroupWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long authUserId = sd.getUserId();
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
- if (!groupUserDao.isUserInGroup(id, userid)) {
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(authUserId))) {
+ if (!getBean(GroupUserDao.class).isUserInGroup(id, userid)) {
+ UserDao userDao = getUserDao();
User u = userDao.get(userid);
- u.getGroupUsers().add(new GroupUser(groupDao.get(id), u));
+ u.getGroupUsers().add(new GroupUser(getDao().get(id), u));
userDao.update(u, authUserId);
}
return new ServiceResult(userid, "Success", Type.SUCCESS);
@@ -192,10 +183,11 @@ public class GroupWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long authUserId = sd.getUserId();
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
- if (groupUserDao.isUserInGroup(id, userid)) {
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(authUserId))) {
+ if (getBean(GroupUserDao.class).isUserInGroup(id, userid)) {
+ UserDao userDao = getUserDao();
User u = userDao.get(userid);
for (Iterator<GroupUser> iter = u.getGroupUsers().iterator(); iter.hasNext(); ) {
GroupUser gu = iter.next();
@@ -233,9 +225,10 @@ public class GroupWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long userId = sd.getUserId();
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(userId))) {
+ RoomDao roomDao = getRoomDao();
Room r = roomDao.get(roomid);
if (r != null) {
if (r.getRoomGroups() == null) {
@@ -248,7 +241,7 @@ public class GroupWebService {
}
}
if (!found) {
- r.getRoomGroups().add(new RoomGroup(groupDao.get(id), r));
+ r.getRoomGroups().add(new RoomGroup(getDao().get(id), r));
roomDao.update(r, userId);
return new ServiceResult(1L, "Success", Type.SUCCESS);
}
@@ -292,14 +285,14 @@ public class GroupWebService {
) throws ServiceException
{
try {
- Sessiondata sd = sessionDao.check(sid);
SearchResult<User> result = new SearchResult<>();
result.setObjectName(User.class.getName());
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- result.setRecords(groupUserDao.count(id));
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ GroupUserDao dao = getBean(GroupUserDao.class);
+ result.setRecords(dao.count(id));
result.setResult(new ArrayList<User>());
String order = isAlphanumeric(orderby) ? orderby : "id";
- for (GroupUser ou : groupUserDao.get(id, null, start, max, order + " " + (asc ? "ASC" : "DESC"))) {
+ for (GroupUser ou : dao.get(id, null, start, max, order + " " + (asc ? "ASC" : "DESC"))) {
result.getResult().add(ou.getUser());
}
} else {
@@ -328,11 +321,12 @@ public class GroupWebService {
@Path("/{id}")
public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
+ Sessiondata sd = check(sid);
Long authUserId = sd.getUserId();
- if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) {
- groupDao.delete(groupDao.get(id), authUserId);
+ if (AuthLevelUtil.hasAdminLevel(getRights(authUserId))) {
+ GroupDao dao = getDao();
+ dao.delete(dao.get(id), authUserId);
return new ServiceResult(id, "Deleted", Type.SUCCESS);
} else {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4850a819/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
index 0120ff8..87c33c2 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
@@ -36,55 +36,48 @@ import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
import org.apache.openmeetings.db.dao.record.RecordingDao;
-import org.apache.openmeetings.db.dao.server.SessiondataDao;
-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;
import org.apache.openmeetings.db.dto.record.RecordingDTO;
-import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
/**
- *
+ *
* The Service contains methods to work with recordings
- *
+ *
* @author solomax
- *
+ *
*/
@WebService(serviceName="org.apache.openmeetings.webservice.RecordingWebService", targetNamespace = TNS)
@Features(features = "org.apache.cxf.feature.LoggingFeature")
@Produces({MediaType.APPLICATION_JSON})
@Path("/record")
-public class RecordingWebService {
+public class RecordingWebService extends BaseWebService {
private static final Logger log = Red5LoggerFactory.getLogger(RecordingWebService.class, webAppRootKey);
- @Autowired
- private SessiondataDao sessionDao;
- @Autowired
- private UserDao userDao;
- @Autowired
- private RecordingDao recordingDao;
+ private static RecordingDao getDao() {
+ return getBean(RecordingDao.class);
+ }
/**
* Deletes a flv recording
- *
+ *
* @param sid
* The SID of the User. This SID must be marked as Loggedin
* @param id
* the id of the recording
- *
+ *
* @throws {@link ServiceException} in case of any error
*/
@DELETE
@Path("/{id}")
public ServiceResult delete(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("id") @WebParam(name="id") Long id) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- recordingDao.delete(recordingDao.get(id));
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ RecordingDao dao = getDao();
+ dao.delete(dao.get(id));
return new ServiceResult(id, "Deleted", Type.SUCCESS);
} else {
throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
@@ -99,11 +92,11 @@ public class RecordingWebService {
/**
* Gets a list of flv recordings
- *
+ *
* @param sid The SID of the User. This SID must be marked as Loggedin
* @param externalId the externalUserId
* @param externalType the externalUserType
- *
+ *
* @return - list of flv recordings
* @throws ServiceException
*/
@@ -114,9 +107,8 @@ public class RecordingWebService {
, @PathParam("externaltype") @WebParam(name="externaltype") String externalType
, @PathParam("externalid") @WebParam(name="externalid") String externalId) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- return RecordingDTO.list(recordingDao.getByExternalId(externalId, externalType));
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ return RecordingDTO.list(getDao().getByExternalId(externalId, externalType));
} else {
throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
}
@@ -130,7 +122,7 @@ public class RecordingWebService {
/**
* Gets a list of flv recordings
- *
+ *
* @param sid
* The SID of the User. This SID must be marked as Loggedin
* @param externalType
@@ -144,9 +136,8 @@ public class RecordingWebService {
public List<RecordingDTO> getExternalByType(@WebParam(name="sid") @QueryParam("sid") String sid
, @PathParam("externaltype") @WebParam(name="externaltype") String externalType) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- return RecordingDTO.list(recordingDao.getByExternalType(externalType));
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ return RecordingDTO.list(getDao().getByExternalType(externalType));
} else {
throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
}
@@ -160,7 +151,7 @@ public class RecordingWebService {
/**
* Get list of recordings
- *
+ *
* @param sid
* The SID of the User. This SID must be marked as Loggedin
* @param roomId
@@ -174,9 +165,8 @@ public class RecordingWebService {
public List<RecordingDTO> getExternalByRoom(@WebParam(name="sid") @QueryParam("sid") String sid
, @PathParam("roomid") @WebParam(name="roomid") Long roomId) throws ServiceException {
try {
- Sessiondata sd = sessionDao.check(sid);
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
- return RecordingDTO.list(recordingDao.getByRoomId(roomId));
+ if (AuthLevelUtil.hasWebServiceLevel(getRights(sid))) {
+ return RecordingDTO.list(getDao().getByRoomId(roomId));
} else {
throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
}