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 2014/12/29 19:15:05 UTC

svn commit: r1648401 - in /openmeetings: branches/3.0.x/src/main/java/org/apache/openmeetings/remote/ trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/...

Author: solomax
Date: Mon Dec 29 18:15:05 2014
New Revision: 1648401

URL: http://svn.apache.org/r1648401
Log:
[OPENMEETINGS-954] screen-sharing client filtered in mobile service

Modified:
    openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java
    openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
    openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java
    openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
    openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
    openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
    openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java

Modified: openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java (original)
+++ openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java Mon Dec 29 18:15:05 2014
@@ -123,7 +123,7 @@ public class MobileService {
 		for (IConnection conn : current.getScope().getClientConnections()) {
 			if (conn != null && conn instanceof IServiceCapableConnection) {
 				Client c = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
-				if (c.getIsAVClient() && !Strings.isEmpty(c.getAvsettings())) {
+				if (c.getIsAVClient() && !Strings.isEmpty(c.getAvsettings()) && !Boolean.TRUE.equals(c.getIsScreenClient())) {
 					Map<String, Object> map = new Hashtable<String, Object>();
 					add(map, "streamId", c.getStreamid());
 					add(map, "broadCastId", c.getBroadCastID());

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Mon Dec 29 18:15:05 2014
@@ -216,9 +216,7 @@ public class ConferenceLibrary implement
 							Client rcl = this.sessionManager
 									.getClientByStreamId(conn.getClient()
 											.getId(), null);
-							if ((rcl == null)
-									|| (rcl.getIsScreenClient() != null && rcl
-											.getIsScreenClient())) {
+							if ((rcl == null) || rcl.isScreenClient()) {
 								continue;
 							} else {
 								((IServiceCapableConnection) conn).invoke(

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/FLVRecorderService.java Mon Dec 29 18:15:05 2014
@@ -146,12 +146,12 @@ public class FLVRecorderService implemen
 						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
 
 						// Send every user a notification that the recording did start
-						if (!rcl.getIsAVClient()) {
+						if (!rcl.isAvClient()) {
 							((IServiceCapableConnection) conn).invoke("startedRecording", new Object[] { currentClient }, this);
 						}
 
 						// If its the recording client we need another type of Meta Data
-						if (rcl.getIsScreenClient()) {
+						if (rcl.isScreenClient()) {
 							if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
 								String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
 
@@ -167,7 +167,7 @@ public class FLVRecorderService implemen
 
 								sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
 							}
-						} else if (rcl.getIsAVClient()
+						} else if (rcl.isAvClient()
 								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
 							// if the user does publish av, a, v
 							// But we only record av or a, video only is not interesting
@@ -329,7 +329,7 @@ public class FLVRecorderService implemen
 						}
 						log.debug("is this users still alive? stop it :" + rcl);
 
-						if (rcl.getIsScreenClient()) {
+						if (rcl.isScreenClient()) {
 							if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
 								// Stop FLV Recording
 								stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
@@ -337,7 +337,7 @@ public class FLVRecorderService implemen
 								// Update Meta Data
 								metaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
 							}
-						} else if (rcl.getIsAVClient()
+						} else if (rcl.isAvClient()
 								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
 
 							stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), rcl.getFlvRecordingMetaDataId());
@@ -412,7 +412,7 @@ public class FLVRecorderService implemen
 			// rcl.getUserip(), false);
 			log.debug("### stopRecordingShowForClient: " + rcl);
 
-			if (rcl.getIsScreenClient()) {
+			if (rcl.isScreenClient()) {
 
 				if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
 
@@ -426,7 +426,7 @@ public class FLVRecorderService implemen
 					metaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
 				}
 
-			} else if (rcl.getIsAVClient()
+			} else if (rcl.isAvClient()
 					&& (rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v") || rcl.getAvsettings().equals("av"))) {
 
 				// FIXME: Is there really a need to stop it manually if the user
@@ -449,7 +449,7 @@ public class FLVRecorderService implemen
 			Date now = new Date();
 
 			// If its the recording client we need another type of Meta Data
-			if (rcl.getIsScreenClient()) {
+			if (rcl.isScreenClient()) {
 				if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
 					String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
 
@@ -467,7 +467,7 @@ public class FLVRecorderService implemen
 
 					sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
 				}
-			} else if (rcl.getIsAVClient()
+			} else if (rcl.isAvClient()
 					&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
 				// if the user does publish av, a, v
 				// But we only record av or a, video only is not interesting

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java Mon Dec 29 18:15:05 2014
@@ -122,7 +122,7 @@ public class MobileService {
 		for (IConnection conn : current.getScope().getClientConnections()) {
 			if (conn != null && conn instanceof IServiceCapableConnection) {
 				Client c = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
-				if (c.getIsAVClient() && !Strings.isEmpty(c.getAvsettings())) {
+				if (c.isAvClient() && !Strings.isEmpty(c.getAvsettings()) && !c.isScreenClient()) {
 					Map<String, Object> map = new Hashtable<String, Object>();
 					add(map, "streamId", c.getStreamid());
 					add(map, "broadCastId", c.getBroadCastID());

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Mon Dec 29 18:15:05 2014
@@ -285,7 +285,7 @@ public class ScopeApplicationAdapter ext
 				currentClient.setRoom_id(Long.parseLong(current.getScope().getName()));
 
 				// Set this connection to be a RTMP-Java Client
-				currentClient.setIsScreenClient(true);
+				currentClient.setScreenClient(true);
 				
 				SessionVariablesUtil.setIsScreenClient(current.getClient());
 				
@@ -388,7 +388,7 @@ public class ScopeApplicationAdapter ext
                 Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
                 if (rcl == null) {
                     // continue;
-                } else if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+                } else if (rcl.isScreenClient()) {
                     // continue;
                 } else {
                     if (!streamid.equals(rcl.getStreamid())) {
@@ -574,11 +574,11 @@ public class ScopeApplicationAdapter ext
 							}
 							
 							//If the user was a avclient, we do not broadcast a message about that to everybody
-							if (currentClient.getIsAVClient()) {
+							if (currentClient.isAvClient()) {
 								continue;
 							}
 							
-							boolean isScreen = rcl.getIsScreenClient() != null && rcl.getIsScreenClient();
+							boolean isScreen = rcl.isScreenClient();
 							if (isScreen && currentClient.getPublicSID().equals(rcl.getStreamPublishName())) {
 								//going to terminate screen sharing started by this client
 								((IServiceCapableConnection) cons).invoke("stopStream", new Object[] { },this);
@@ -586,7 +586,7 @@ public class ScopeApplicationAdapter ext
 							} else if (isScreen) {
 								// screen sharing clients do not receive events
 								continue;
-							} else if (rcl.getIsAVClient()) {
+							} else if (rcl.isAvClient()) {
 								// AVClients or potential AVClients do not receive events
 								continue;
 							}
@@ -631,14 +631,14 @@ public class ScopeApplicationAdapter ext
 			log.debug("start streamPublishStart broadcast start: " + stream.getPublishedName() + " CONN " + current);
 
 			// In case its a screen sharing we start a new Video for that
-			if (currentClient.getIsScreenClient()) {
+			if (currentClient.isScreenClient()) {
 
 				currentClient.setScreenPublishStarted(true);
 
 				sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
 			}
 			//If its an audio/video client then send the session object with the full data to everybody
-			else if (currentClient.getIsAVClient()) {
+			else if (currentClient.isAvClient()) {
 				clientObjectSendToSync = sessionManager.getClientByPublicSID(currentClient.getPublicSID(), false, null);
 			}
 			
@@ -667,11 +667,11 @@ public class ScopeApplicationAdapter ext
 							log.debug("RCL getIsRecording newStream SEND");
 							flvRecorderService.addRecordingByStreamId(current, streamid, currentClient, rcl.getFlvRecordingId());
 						}
-						if (rcl.getIsAVClient()) {
+						if (rcl.isAvClient()) {
 							log.debug("RCL getIsAVClient newStream SEND");
 							continue;
 						}
-						if (rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {
+						if (rcl.isScreenClient()) {
 							log.debug("RCL getIsScreenClient newStream SEND");
 							continue;
 						}
@@ -775,7 +775,7 @@ public class ScopeApplicationAdapter ext
 						} else {
 							Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
 							if (rcl != null) {
-								if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+								if (rcl.isScreenClient()) {
 									// continue;
 								} else {
 									log.debug("is this users still alive? :" + rcl);
@@ -977,7 +977,7 @@ public class ScopeApplicationAdapter ext
 					Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
 					if (rcl == null) {
 						// continue;
-					} else if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+					} else if (rcl.isScreenClient()) {
 						// continue;
 					} else {
 						if (rcl != currentClient) {

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/session/SessionManager.java Mon Dec 29 18:15:05 2014
@@ -94,7 +94,7 @@ public class SessionManager implements I
 				rcm.setSwfurl(swfUrl);
 				rcm.setIsMod(new Boolean(false));
 				rcm.setCanDraw(new Boolean(false));
-				rcm.setIsAVClient(isAVClient);
+				rcm.setAvClient(isAVClient);
 
 				if (cache.containsKey(null, streamId)) {
 					log.error("Tried to add an existing Client " + streamId);
@@ -134,7 +134,7 @@ public class SessionManager implements I
 		public Client getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {
 			try {
 				for (Client rcl : cache.getClientsByPublicSID(server, publicSID)) {
-					if (rcl.getIsAVClient() != isAVClient) {
+					if (rcl.isAvClient() != isAVClient) {
 						continue;
 					}
 					return rcl;
@@ -149,7 +149,7 @@ public class SessionManager implements I
 			try {
 				for (Entry<Long,List<Client>> entry : cache.getClientsByPublicSID(publicSID).entrySet()) {
 					for (Client rcl : entry.getValue()) {
-						if (rcl.getIsAVClient() != isAVClient) {
+						if (rcl.isAvClient() != isAVClient) {
 							continue;
 						}
 						return new ClientSessionInfo(rcl, entry.getKey());
@@ -165,11 +165,11 @@ public class SessionManager implements I
 			try {
 				for (Client rcl : cache.getClientsByUserId(null, userId)) {
 					
-					if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+					if (rcl.isScreenClient()) {
 						continue;
 					}
 					
-					if (rcl.getIsAVClient()) {
+					if (rcl.isAvClient()) {
 						continue;
 					}
 					
@@ -247,10 +247,10 @@ public class SessionManager implements I
 
 				for (Client rcl : cache.getClientsByRoomId(roomId)) {
 
-					if (rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {
+					if (rcl.isScreenClient()) {
 						continue;
 					}
-					if (rcl.getIsAVClient()) {
+					if (rcl.isAvClient()) {
 						continue;
 					}
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java Mon Dec 29 18:15:05 2014
@@ -180,13 +180,13 @@ public class Client implements IDataProv
 	 * @see Client#getIsScreenClient()
 	 */
 	@Column(name = "is_screenclient")
-	private Boolean isScreenClient = false;
+	private boolean screenClient = false;
 	
 	/**
 	 * @see Client#getIsAVClient()
 	 */
 	@Column(name = "is_avclient")
-	private boolean isAVClient = false;
+	private boolean avClient = false;
 	
 	/**
 	 * @see Client#getUsercolor()
@@ -403,7 +403,7 @@ public class Client implements IDataProv
 		this.user_id = user_id;
 		this.firstname = firstname;
 		this.lastname = lastname;
-		this.isAVClient = isAVClient;
+		this.avClient = isAVClient;
 		this.username = username;
 		this.connectedSince = CalendarPatterns.parseDateWithHour(connectedSince);
 		this.scope = scope;
@@ -702,12 +702,12 @@ public class Client implements IDataProv
 		this.isSuperModerator = isSuperModerator;
 	}
 
-	public Boolean getIsScreenClient() {
-		return isScreenClient;
+	public boolean isScreenClient() {
+		return screenClient;
 	}
 
-	public void setIsScreenClient(Boolean isScreenClient) {
-		this.isScreenClient = isScreenClient;
+	public void setScreenClient(boolean screenClient) {
+		this.screenClient = screenClient;
 	}
 
 	public int getVWidth() {
@@ -822,12 +822,12 @@ public class Client implements IDataProv
 		this.allowRecording = allowRecording;
 	}
 
-	public boolean getIsAVClient() {
-		return isAVClient;
+	public boolean isAvClient() {
+		return avClient;
 	}
 
-	public void setIsAVClient(boolean isAVClient) {
-		this.isAVClient = isAVClient;
+	public void setAvClient(boolean avClient) {
+		this.avClient = avClient;
 	}
 
 	public boolean isStreamPublishStarted() {
@@ -856,8 +856,8 @@ public class Client implements IDataProv
 
 	@Override
 	public String toString() {
-		return "Client [streamid=" + streamid + ", publicSID=" + publicSID + ", isScreenClient=" + isScreenClient
-				+ ", isAVClient=" + isAVClient + ", room_id=" + room_id + ", broadCastID=" + broadCastID + ", user_id="
+		return "Client [streamid=" + streamid + ", publicSID=" + publicSID + ", isScreenClient=" + screenClient
+				+ ", isAVClient=" + avClient + ", room_id=" + room_id + ", broadCastID=" + broadCastID + ", user_id="
 				+ user_id + ", avsettings=" + avsettings + ", isRecording=" + isRecording + ", flvRecordingId="
 				+ flvRecordingId + ", flvRecordingMetaDataId=" + flvRecordingMetaDataId + ", screenPublishStarted="
 				+ screenPublishStarted + ", interviewPodId=" + interviewPodId + ", server=" + server + "]";

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java Mon Dec 29 18:15:05 2014
@@ -90,7 +90,7 @@ public class ConnectionsPanel extends Ad
 								, c.getServer() == null ? 0 : c.getServer().getId());
 						target.add(container, details.setVisible(false));
 					}
-				}.setEnabled(!TRUE.equals(c.getIsScreenClient()) && !TRUE.equals(c.getIsAVClient())));
+				}.setEnabled(!c.isScreenClient() && !c.isAvClient()));
 				item.add(new AjaxEventBehavior("onclick") {
 					private static final long serialVersionUID = 1L;
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java?rev=1648401&r1=1648400&r2=1648401&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java Mon Dec 29 18:15:05 2014
@@ -68,7 +68,7 @@ public class TestHashMapSession extends
 			rcm.setSwfurl("swfUrl");
 			rcm.setIsMod(new Boolean(false));
 			rcm.setCanDraw(new Boolean(false));
-			rcm.setIsAVClient(false);
+			rcm.setAvClient(false);
 
 			if (cache.containsKey(null, streamId)) {
 				log.error("Tried to add an existing Client " + streamId);