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/10/18 11:49:02 UTC

[openmeetings] branch 4.0.x updated: [OPENMEETINGS-1870, OPENMEETINGS-1957] kick all from room should work, method tokick particular external user is added

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

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


The following commit(s) were added to refs/heads/4.0.x by this push:
     new b5444a4  [OPENMEETINGS-1870,OPENMEETINGS-1957] kick all from room should work, method tokick particular external user is added
b5444a4 is described below

commit b5444a43c664e534563a3df4f1b0304bb713c49e
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Oct 18 18:48:49 2018 +0700

    [OPENMEETINGS-1870,OPENMEETINGS-1957] kick all from room should work, method tokick particular external user is added
---
 .../openmeetings/db/dao/user/IUserManager.java     |   2 +-
 .../web/admin/connection/ConnectionsPanel.java     |   4 +-
 .../apache/openmeetings/web/app/UserManager.java   |  28 +
 .../openmeetings/webservice/RoomWebService.java    |  31 +-
 .../openmeetings/webservice/UserWebService.java    |  19 -
 pom.xml                                            | 887 +++++++++++----------
 6 files changed, 511 insertions(+), 460 deletions(-)

diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
index 9faffec..262b381 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
@@ -37,6 +37,6 @@ public interface IUserManager {
 	Long getLanguage(Locale loc);
 	User loginOAuth(OAuthUser user, long serverId) throws IOException, NoSuchAlgorithmException;
 
-	boolean kickById(String uid);
+	boolean kickExternal(Long roomId, String externalType, String externalId);
 	boolean kickUsersByRoomId(Long roomId);
 }
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
index 6fbbbb8..dfe2255 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
@@ -27,7 +27,6 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.basic.IClient;
 import org.apache.openmeetings.db.entity.room.StreamClient;
@@ -35,6 +34,7 @@ import org.apache.openmeetings.web.admin.AdminBasePanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.app.ClientManager;
 import org.apache.openmeetings.web.app.StreamClientManager;
+import org.apache.openmeetings.web.app.UserManager;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
@@ -90,7 +90,7 @@ public class ConnectionsPanel extends AdminBasePanel {
 					protected void onSubmit(AjaxRequestTarget target) {
 						IClient _c = item.getModelObject();
 						if (_c instanceof StreamClient) {
-							getBean(IUserManager.class).kickById(_c.getUid());
+							getBean(UserManager.class).kickById(_c.getUid());
 						} else {
 							Client c = (Client)_c;
 							getBean(ClientManager.class).invalidate(c.getUserId(), c.getSessionId());
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
index 7885db8..ec08381 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
@@ -45,11 +45,13 @@ import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.user.OAuthUser;
+import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.StreamClient;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.db.manager.IClientManager;
 import org.apache.openmeetings.db.manager.IStreamClientManager;
 import org.apache.openmeetings.service.mail.EmailManager;
 import org.apache.openmeetings.util.OmException;
@@ -83,6 +85,8 @@ public class UserManager implements IUserManager {
 	private ScopeApplicationAdapter scopeAdapter;
 	@Autowired
 	private IStreamClientManager streamClientManager;
+	@Autowired
+	private IClientManager cm;
 
 	private boolean sendConfirmation() {
 		String baseURL = getBaseUrl();
@@ -218,6 +222,9 @@ public class UserManager implements IUserManager {
 				messageObj.put(0, "kick");
 				scopeAdapter.sendMessageById(messageObj, rcl.getUid(), currentScope);
 			}
+			for (Client c : cm.listByRoom(roomId)) {
+				Application.kickUser(c);
+			}
 			return true;
 		} catch (Exception err) {
 			log.error("[kickUsersByRoomId]", err);
@@ -226,6 +233,27 @@ public class UserManager implements IUserManager {
 	}
 
 	@Override
+	public boolean kickExternal(Long roomId, String externalType, String externalId) {
+		boolean result = false;
+		try {
+			if (roomId == null) {
+				return result;
+			}
+			User u = userDao.getExternalUser(externalId, externalType);
+			if (u != null) {
+				for (Client c : cm.listByUser(u.getId())) {
+					if (roomId.equals(c.getRoomId())) {
+						Application.kickUser(c);
+						result = true;
+					}
+				}
+			}
+		} catch (Exception e) {
+			log.error("[kickExternal]", e);
+		}
+		return result;
+	}
+
 	public boolean kickById(String uid) {
 		try {
 			StreamClient rcl = streamClientManager.get(uid);
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
index 09dfc3b..112d4ee 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
@@ -296,7 +296,7 @@ public class RoomWebService extends BaseWebService {
 	@WebMethod
 	@GET
 	@Path("/kick/{id}")
-	public ServiceResult kick(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) {
+	public ServiceResult kickAll(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) {
 		return performCall(sid, User.Right.Soap, sd -> {
 			boolean result = getBean(IUserManager.class).kickUsersByRoomId(id);
 			return new ServiceResult(result ? "Kicked" : "Not kicked", Type.SUCCESS);
@@ -304,6 +304,35 @@ public class RoomWebService extends BaseWebService {
 	}
 
 	/**
+	 * kick external user from given room
+	 *
+	 * @param sid
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 *            _Admin
+	 * @param id
+	 *            the room id
+	 * @param externalType
+	 *            external type of user to kick
+	 * @param externalId
+	 *            external id of user to kick
+	 *
+	 * @return - true if user was kicked, false otherwise
+	 */
+	@WebMethod
+	@GET
+	@Path("/kick/{id}/{externalType}/{externalId}")
+	public ServiceResult kick(@WebParam(name="sid") @QueryParam("sid") String sid
+			, @WebParam(name="id") @PathParam("id") long id
+			, @WebParam(name="externalType") @PathParam("externalType") String externalType
+			, @WebParam(name="externalId") @PathParam("externalId") String externalId)
+	{
+		return performCall(sid, User.Right.Soap, sd -> {
+			boolean result = getBean(IUserManager.class).kickExternal(id, externalType, externalId);
+			return new ServiceResult(result ? "Kicked" : "Not kicked", Type.SUCCESS);
+		});
+	}
+
+	/**
 	 * Returns the count of users currently in the Room with given id
 	 *
 	 * @param sid The SID from UserService.getSession
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index e2033bd..587d217 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -331,23 +331,4 @@ public class UserWebService extends BaseWebService {
 			return UNKNOWN;
 		});
 	}
-
-	/**
-	 * Kick a user by its public SID
-	 *
-	 * @param sid
-	 *            The SID from getSession
-	 * @param uid the uid of the client
-	 * @return - <code>true</code> if user was kicked
-	 */
-	@WebMethod
-	@POST
-	@Path("/kick/{uid}")
-	public ServiceResult kick(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="uid") @PathParam("uid") String uid) {
-		return performCall(sid, User.Right.Soap, sd -> {
-			boolean success = getBean(IUserManager.class).kickById(uid);
-
-			return new ServiceResult(Boolean.TRUE.equals(success) ? "kicked" : "not kicked", Type.SUCCESS);
-		});
-	}
 }
diff --git a/pom.xml b/pom.xml
index 595e172..c9e5645 100644
--- a/pom.xml
+++ b/pom.xml
@@ -120,218 +120,6 @@
 		<db_user></db_user>
 		<db_pass></db_pass>
 	</properties>
-	<profiles>
-		<profile>
-			<id>allModules</id>
-			<activation>
-				<activeByDefault>true</activeByDefault>
-			</activation>
-			<modules>
-				<module>openmeetings-util</module>
-				<module>openmeetings-db</module>
-				<module>openmeetings-core</module>
-				<module>openmeetings-install</module>
-				<module>openmeetings-service</module>
-				<module>openmeetings-webservice</module>
-				<module>openmeetings-web</module>
-				<module>openmeetings-flash</module>
-				<module>openmeetings-screenshare</module>
-				<module>openmeetings-server</module>
-			</modules>
-		</profile>
-		<profile>
-			<id>quick</id>
-			<properties>
-				<maven.test.skip>true</maven.test.skip>
-				<om.quick.build>true</om.quick.build>
-				<red5-server.dwnd.skip>true</red5-server.dwnd.skip>
-				<wicket.configuration>DEVELOPMENT</wicket.configuration>
-				<src.pack.skip>true</src.pack.skip>
-			</properties>
-		</profile>
-		<profile>
-			<id>rc</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-enforcer-plugin</artifactId>
-						<version>${maven-enforcer-plugin.version}</version>
-						<executions>
-							<execution>
-								<id>enforce-versions</id>
-								<goals>
-									<goal>enforce</goal>
-								</goals>
-								<configuration>
-									<rules>
-										<requireJavaVersion>
-											<version>[${jdk.version}.0,)</version>
-										</requireJavaVersion>
-									</rules>
-									<failFast>true</failFast>
-								</configuration>
-							</execution>
-						</executions>
-					</plugin>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-source-plugin</artifactId>
-						<version>${maven-source-plugin.version}</version>
-						<executions>
-							<execution>
-								<id>attach-sources</id>
-								<goals>
-									<goal>jar</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-javadoc-plugin</artifactId>
-						<executions>
-							<execution>
-								<id>attach-javadocs</id>
-								<goals>
-									<goal>jar</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-					<plugin>
-						<groupId>net.nicoulaj.maven.plugins</groupId>
-						<artifactId>checksum-maven-plugin</artifactId>
-						<version>${checksum-maven-plugin.version}</version>
-						<executions>
-							<execution>
-								<goals>
-									<goal>artifacts</goal>
-								</goals>
-							</execution>
-						</executions>
-						<configuration>
-							<shasumSummary>true</shasumSummary>
-							<algorithms>
-								<algorithm>SHA-512</algorithm>
-							</algorithms>
-						</configuration>
-					</plugin>
-					<plugin>
-						<artifactId>maven-gpg-plugin</artifactId>
-						<version>${maven-gpg-plugin.version}</version>
-						<executions>
-							<execution>
-								<id>sign-artifacts</id>
-								<phase>verify</phase>
-								<goals>
-									<goal>sign</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-		<profile>
-			<id>release</id>
-			<properties>
-				<jarsigner.skip>true</jarsigner.skip>
-			</properties>
-		</profile>
-		<profile>
-			<id>deploy</id>
-			<modules>
-				<module>openmeetings-util</module>
-				<module>openmeetings-db</module>
-			</modules>
-		</profile>
-		<profile>
-			<id>generate-third-party</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.codehaus.mojo</groupId>
-						<artifactId>license-maven-plugin</artifactId>
-						<version>${license-maven-plugin.version}</version>
-						<executions>
-							<execution>
-								<id>download-licenses</id>
-								<goals>
-									<goal>aggregate-add-third-party</goal>
-								</goals>
-								<configuration>
-									<outputDirectory>${project.build.directory}</outputDirectory>
-									<useMissingFile>true</useMissingFile>
-									<licenseMerges>
-										<licenseMerge>
-											The Apache Software License, Version 2.0|
-											Apache Software License 2.0|
-											Apache License, Version 2.0|
-											Apache License|
-											Apache License 2.0|
-											Apache 2|
-											Apache 2.0|
-											Apache 2.0 License|
-											The Apache License, Version 2.0|
-											Apache Software License - Version 2.0|
-											Apache Software Licenses|
-											Apache License, Version 2.0 and|
-											ASL, version 2|
-											ASF 2.0|
-											Apache License, Version 2.0 and
-        Common Development And Distribution License (CDDL) Version 1.0|
-											The SAX License
-										</licenseMerge>
-										<licenseMerge>
-											Eclipse Public License 1.0|
-											Eclipse Public License - v 1.0|
-											Eclipse Public License - Version 1.0
-										</licenseMerge>
-										<licenseMerge>
-											BSD license|
-											BSD|
-											The BSD License
-										</licenseMerge>
-										<licenseMerge>
-											FreeBSD License|
-											The BSD 2-Clause License|
-											BSD-2-Clause|
-											BSD style
-										</licenseMerge>
-										<licenseMerge>
-											BSD License 2.0|
-											BSD 3-clause New License|
-											New BSD License
-										</licenseMerge>
-										<licenseMerge>
-											The W3C License|
-											The W3C Software License
-										</licenseMerge>
-									</licenseMerges>
-									<fileTemplate>/org/codehaus/mojo/license/third-party-file-groupByLicense.ftl</fileTemplate>
-								</configuration>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-		<profile>
-			<id>Jenkins</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-surefire-plugin</artifactId>
-						<configuration>
-							<excludedGroups>org.apache.openmeetings.test.NonJenkinsTests</excludedGroups>
-						</configuration>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
 	<url>https://openmeetings.apache.org</url>
 	<inceptionYear>2012</inceptionYear>
 	<organization>
@@ -1148,231 +936,6 @@
 						<append>true</append>
 					</configuration>
 				</plugin>
-
-				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-				<plugin>
-					<groupId>org.eclipse.m2e</groupId>
-					<artifactId>lifecycle-mapping</artifactId>
-					<version>1.0.0</version>
-					<configuration>
-						<lifecycleMappingMetadata>
-							<pluginExecutions>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.felix</groupId>
-										<artifactId>maven-bundle-plugin</artifactId>
-										<versionRange>[2.3.7,)</versionRange>
-										<goals>
-											<goal>manifest</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore />
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.maven.plugins</groupId>
-										<artifactId>maven-remote-resources-plugin</artifactId>
-										<versionRange>[1.0.0,)</versionRange>
-										<goals>
-											<goal>process</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore />
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.rat</groupId>
-										<artifactId>apache-rat-plugin</artifactId>
-										<versionRange>[0.10,)</versionRange>
-										<goals>
-											<goal>check</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore />
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.maven.plugins</groupId>
-										<artifactId>maven-site-plugin</artifactId>
-										<versionRange>[3.3,)</versionRange>
-										<goals>
-											<goal>site</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore />
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.maven.plugins</groupId>
-										<artifactId>maven-javadoc-plugin</artifactId>
-										<versionRange>[2.9.1,)</versionRange>
-										<goals>
-											<goal>javadoc-no-fork</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.maven.plugins</groupId>
-										<artifactId>maven-antrun-plugin</artifactId>
-										<versionRange>[1.8,)</versionRange>
-										<goals>
-											<goal>run</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.maven.plugins</groupId>
-										<artifactId>maven-dependency-plugin</artifactId>
-										<versionRange>[2.10,)</versionRange>
-										<goals>
-											<goal>unpack</goal>
-											<goal>copy-dependencies</goal>
-											<goal>copy</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.openjpa</groupId>
-										<artifactId>openjpa-maven-plugin</artifactId>
-										<versionRange>[2.3.0,)</versionRange>
-										<goals>
-											<goal>enhance</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>com.google.code.maven-replacer-plugin</groupId>
-										<artifactId>replacer</artifactId>
-										<versionRange>[1.5.3,)</versionRange>
-										<goals>
-											<goal>replace</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.codehaus.mojo</groupId>
-										<artifactId>keytool-maven-plugin</artifactId>
-										<versionRange>[1.5,)</versionRange>
-										<goals>
-											<goal>generateKeyPair</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.codehaus.mojo</groupId>
-										<artifactId>wagon-maven-plugin</artifactId>
-										<versionRange>[1.0-beta-5,)</versionRange>
-										<goals>
-											<goal>download</goal>
-											<goal>download-single</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.apache.maven.plugins</groupId>
-										<artifactId>maven-war-plugin</artifactId>
-										<versionRange>[2.4,)</versionRange>
-										<goals>
-											<goal>exploded</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.codehaus.mojo</groupId>
-										<artifactId>xml-maven-plugin</artifactId>
-										<versionRange>[1.0,)</versionRange>
-										<goals>
-											<goal>transform</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>com.internetitem</groupId>
-										<artifactId>write-properties-file-maven-plugin</artifactId>
-										<versionRange>[1.0.1,)</versionRange>
-										<goals>
-											<goal>write-properties-file</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>org.codehaus.mojo</groupId>
-										<artifactId>exec-maven-plugin</artifactId>
-										<versionRange>[1.6.0,)</versionRange>
-										<goals>
-											<goal>java</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>net.flexmojos.oss</groupId>
-										<artifactId>flexmojos-maven-plugin</artifactId>
-										<versionRange>[7.0.0,)</versionRange>
-										<goals>
-											<goal>compile-swf</goal>
-											<goal>test-compile</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-							</pluginExecutions>
-						</lifecycleMappingMetadata>
-					</configuration>
-				</plugin>
 			</plugins>
 		</pluginManagement>
 	</build>
@@ -1431,5 +994,455 @@
 			</plugin>
 		</plugins>
 	</reporting>
+	<profiles>
+		<profile>
+			<id>allModules</id>
+			<activation>
+				<activeByDefault>true</activeByDefault>
+			</activation>
+			<modules>
+				<module>openmeetings-util</module>
+				<module>openmeetings-db</module>
+				<module>openmeetings-core</module>
+				<module>openmeetings-install</module>
+				<module>openmeetings-service</module>
+				<module>openmeetings-webservice</module>
+				<module>openmeetings-web</module>
+				<module>openmeetings-flash</module>
+				<module>openmeetings-screenshare</module>
+				<module>openmeetings-server</module>
+			</modules>
+		</profile>
+		<profile>
+			<id>quick</id>
+			<properties>
+				<maven.test.skip>true</maven.test.skip>
+				<om.quick.build>true</om.quick.build>
+				<red5-server.dwnd.skip>true</red5-server.dwnd.skip>
+				<wicket.configuration>DEVELOPMENT</wicket.configuration>
+				<src.pack.skip>true</src.pack.skip>
+			</properties>
+		</profile>
+		<profile>
+			<id>rc</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-enforcer-plugin</artifactId>
+						<version>${maven-enforcer-plugin.version}</version>
+						<executions>
+							<execution>
+								<id>enforce-versions</id>
+								<goals>
+									<goal>enforce</goal>
+								</goals>
+								<configuration>
+									<rules>
+										<requireJavaVersion>
+											<version>[${jdk.version}.0,)</version>
+										</requireJavaVersion>
+									</rules>
+									<failFast>true</failFast>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-source-plugin</artifactId>
+						<version>${maven-source-plugin.version}</version>
+						<executions>
+							<execution>
+								<id>attach-sources</id>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-javadoc-plugin</artifactId>
+						<executions>
+							<execution>
+								<id>attach-javadocs</id>
+								<goals>
+									<goal>jar</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>net.nicoulaj.maven.plugins</groupId>
+						<artifactId>checksum-maven-plugin</artifactId>
+						<version>${checksum-maven-plugin.version}</version>
+						<executions>
+							<execution>
+								<goals>
+									<goal>artifacts</goal>
+								</goals>
+							</execution>
+						</executions>
+						<configuration>
+							<shasumSummary>true</shasumSummary>
+							<algorithms>
+								<algorithm>SHA-512</algorithm>
+							</algorithms>
+						</configuration>
+					</plugin>
+					<plugin>
+						<artifactId>maven-gpg-plugin</artifactId>
+						<version>${maven-gpg-plugin.version}</version>
+						<executions>
+							<execution>
+								<id>sign-artifacts</id>
+								<phase>verify</phase>
+								<goals>
+									<goal>sign</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>release</id>
+			<properties>
+				<jarsigner.skip>true</jarsigner.skip>
+			</properties>
+		</profile>
+		<profile>
+			<id>deploy</id>
+			<modules>
+				<module>openmeetings-util</module>
+				<module>openmeetings-db</module>
+			</modules>
+		</profile>
+		<profile>
+			<id>generate-third-party</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>license-maven-plugin</artifactId>
+						<version>${license-maven-plugin.version}</version>
+						<executions>
+							<execution>
+								<id>download-licenses</id>
+								<goals>
+									<goal>aggregate-add-third-party</goal>
+								</goals>
+								<configuration>
+									<outputDirectory>${project.build.directory}</outputDirectory>
+									<useMissingFile>true</useMissingFile>
+									<licenseMerges>
+										<licenseMerge>
+											The Apache Software License, Version 2.0|
+											Apache Software License 2.0|
+											Apache License, Version 2.0|
+											Apache License|
+											Apache License 2.0|
+											Apache 2|
+											Apache 2.0|
+											Apache 2.0 License|
+											The Apache License, Version 2.0|
+											Apache Software License - Version 2.0|
+											Apache Software Licenses|
+											Apache License, Version 2.0 and|
+											ASL, version 2|
+											ASF 2.0|
+											Apache License, Version 2.0 and
+        Common Development And Distribution License (CDDL) Version 1.0|
+											The SAX License
+										</licenseMerge>
+										<licenseMerge>
+											Eclipse Public License 1.0|
+											Eclipse Public License - v 1.0|
+											Eclipse Public License - Version 1.0
+										</licenseMerge>
+										<licenseMerge>
+											BSD license|
+											BSD|
+											The BSD License
+										</licenseMerge>
+										<licenseMerge>
+											FreeBSD License|
+											The BSD 2-Clause License|
+											BSD-2-Clause|
+											BSD style
+										</licenseMerge>
+										<licenseMerge>
+											BSD License 2.0|
+											BSD 3-clause New License|
+											New BSD License
+										</licenseMerge>
+										<licenseMerge>
+											The W3C License|
+											The W3C Software License
+										</licenseMerge>
+									</licenseMerges>
+									<fileTemplate>/org/codehaus/mojo/license/third-party-file-groupByLicense.ftl</fileTemplate>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>Jenkins</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-plugin</artifactId>
+						<configuration>
+							<excludedGroups>org.apache.openmeetings.test.NonJenkinsTests</excludedGroups>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>only-eclipse</id>
+			<activation>
+				<property>
+					<name>m2e.version</name>
+				</property>
+			</activation>
+			<build>
+				<pluginManagement>
+					<plugins>
+						<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+						<plugin>
+							<groupId>org.eclipse.m2e</groupId>
+							<artifactId>lifecycle-mapping</artifactId>
+							<version>1.0.0</version>
+							<configuration>
+								<lifecycleMappingMetadata>
+									<pluginExecutions>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.felix</groupId>
+												<artifactId>maven-bundle-plugin</artifactId>
+												<versionRange>[2.3.7,)</versionRange>
+												<goals>
+													<goal>manifest</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore />
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.maven.plugins</groupId>
+												<artifactId>maven-remote-resources-plugin</artifactId>
+												<versionRange>[1.0.0,)</versionRange>
+												<goals>
+													<goal>process</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore />
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.rat</groupId>
+												<artifactId>apache-rat-plugin</artifactId>
+												<versionRange>[0.10,)</versionRange>
+												<goals>
+													<goal>check</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore />
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.maven.plugins</groupId>
+												<artifactId>maven-site-plugin</artifactId>
+												<versionRange>[3.3,)</versionRange>
+												<goals>
+													<goal>site</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore />
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.maven.plugins</groupId>
+												<artifactId>maven-javadoc-plugin</artifactId>
+												<versionRange>[2.9.1,)</versionRange>
+												<goals>
+													<goal>javadoc-no-fork</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.maven.plugins</groupId>
+												<artifactId>maven-antrun-plugin</artifactId>
+												<versionRange>[1.8,)</versionRange>
+												<goals>
+													<goal>run</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.maven.plugins</groupId>
+												<artifactId>maven-dependency-plugin</artifactId>
+												<versionRange>[2.10,)</versionRange>
+												<goals>
+													<goal>unpack</goal>
+													<goal>copy-dependencies</goal>
+													<goal>copy</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.openjpa</groupId>
+												<artifactId>openjpa-maven-plugin</artifactId>
+												<versionRange>[2.3.0,)</versionRange>
+												<goals>
+													<goal>enhance</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>com.google.code.maven-replacer-plugin</groupId>
+												<artifactId>replacer</artifactId>
+												<versionRange>[1.5.3,)</versionRange>
+												<goals>
+													<goal>replace</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.codehaus.mojo</groupId>
+												<artifactId>keytool-maven-plugin</artifactId>
+												<versionRange>[1.5,)</versionRange>
+												<goals>
+													<goal>generateKeyPair</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.codehaus.mojo</groupId>
+												<artifactId>wagon-maven-plugin</artifactId>
+												<versionRange>[1.0-beta-5,)</versionRange>
+												<goals>
+													<goal>download</goal>
+													<goal>download-single</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.apache.maven.plugins</groupId>
+												<artifactId>maven-war-plugin</artifactId>
+												<versionRange>[2.4,)</versionRange>
+												<goals>
+													<goal>exploded</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.codehaus.mojo</groupId>
+												<artifactId>xml-maven-plugin</artifactId>
+												<versionRange>[1.0,)</versionRange>
+												<goals>
+													<goal>transform</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>com.internetitem</groupId>
+												<artifactId>write-properties-file-maven-plugin</artifactId>
+												<versionRange>[1.0.1,)</versionRange>
+												<goals>
+													<goal>write-properties-file</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>org.codehaus.mojo</groupId>
+												<artifactId>exec-maven-plugin</artifactId>
+												<versionRange>[1.6.0,)</versionRange>
+												<goals>
+													<goal>java</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+										<pluginExecution>
+											<pluginExecutionFilter>
+												<groupId>net.flexmojos.oss</groupId>
+												<artifactId>flexmojos-maven-plugin</artifactId>
+												<versionRange>[7.0.0,)</versionRange>
+												<goals>
+													<goal>compile-swf</goal>
+													<goal>test-compile</goal>
+												</goals>
+											</pluginExecutionFilter>
+											<action>
+												<ignore></ignore>
+											</action>
+										</pluginExecution>
+									</pluginExecutions>
+								</lifecycleMappingMetadata>
+							</configuration>
+						</plugin>
+					</plugins>
+				</pluginManagement>
+			</build>
+		</profile>
+	</profiles>
 </project>