openmeetings-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebawag...@apache.org
Subject svn commit: r1435723 [2/3] - in /incubator/openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/org/apache/openmeetings/axis/services/ src/org/apache/openmeetings/cluster/beans/ src/org/apache/openmeetings/conference/room/ src/org/apache/openmeetin...
Date Sat, 19 Jan 2013 21:49:19 GMT
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1435723&r1=1435722&r2=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java Sat Jan 19 21:49:18 2013
@@ -30,8 +30,6 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.IClientList;
-import org.apache.openmeetings.conference.room.RoomClient;
 import org.apache.openmeetings.conference.whiteboard.BrowserStatus;
 import org.apache.openmeetings.conference.whiteboard.RoomStatus;
 import org.apache.openmeetings.conference.whiteboard.WhiteboardManagement;
@@ -54,6 +52,9 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.remote.FLVRecorderService;
 import org.apache.openmeetings.remote.WhiteBoardService;
 import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.session.Client;
+import org.apache.openmeetings.session.IClientSession;
+import org.apache.openmeetings.session.ISessionStore;
 import org.apache.openmeetings.utils.OmFileHelper;
 import org.apache.openmeetings.utils.math.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
@@ -80,7 +81,7 @@ public class ScopeApplicationAdapter ext
 			OpenmeetingsVariables.webAppRootKey);
 
 	@Autowired
-	private IClientList clientListManager;
+	private ISessionStore clientListManager;
 	@Autowired
 	private EmoticonsManager emoticonsManager;
 	@Autowired
@@ -184,7 +185,7 @@ public class ScopeApplicationAdapter ext
 				swfURL = conn.getConnectParams().get("swfUrl").toString();
 			}
 
-			RoomClient rcm = this.clientListManager.addClientListItem(streamId,
+			IClientSession rcm = this.clientListManager.addClientListItem(streamId,
 					conn.getScope().getName(), conn.getRemotePort(),
 					conn.getRemoteAddress(), swfURL, isAVClient);
 			
@@ -206,7 +207,7 @@ public class ScopeApplicationAdapter ext
 		try {
 			IConnection current = Red5.getConnectionLocal();
 
-			RoomClient rc = clientListManager.getClientByStreamId(current.getClient().getId(), null);
+			Client rc = clientListManager.getClientByStreamId(current.getClient().getId(), null);
 
 			Map<String, String> returnMap = new HashMap<String, String>();
 
@@ -256,19 +257,19 @@ public class ScopeApplicationAdapter ext
 		return null;
 	}
 
-	public List<RoomClient> checkScreenSharing() {
+	public List<Client> checkScreenSharing() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
 
 			log.debug("checkScreenSharing -2- " + streamid);
 
-			List<RoomClient> screenSharerList = new LinkedList<RoomClient>();
+			List<Client> screenSharerList = new LinkedList<Client>();
 
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
-			for (RoomClient rcl : clientListManager.getClientListByRoomAll(currentClient.getRoom_id(), null)) {
+			for (Client rcl : clientListManager.getClientListByRoomAll(currentClient.getRoom_id(), null)) {
 				if (rcl.isStartStreaming()) {
 					screenSharerList.add(rcl);
 				}
@@ -292,7 +293,7 @@ public class ScopeApplicationAdapter ext
 
 			log.debug("### setConnectionAsSharingClient: ");
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			if (currentClient != null) {
@@ -361,7 +362,7 @@ public class ScopeApplicationAdapter ext
 				currentClient.setStreamPublishName(map.get("publishName")
 						.toString());
 
-				RoomClient currentScreenUser = this.clientListManager
+				IClientSession currentScreenUser = this.clientListManager
 						.getClientByPublicSID(currentClient
 								.getStreamPublishName(), false, null);
 
@@ -415,7 +416,7 @@ public class ScopeApplicationAdapter ext
         for (Set<IConnection> conset : conCollection) {
             for (IConnection conn : conset) {
                 if (conn != null) {
-                    RoomClient rcl = this.clientListManager
+                    IClientSession rcl = this.clientListManager
                             .getClientByStreamId(conn
                                     .getClient().getId(), null);
                     if (rcl == null) {
@@ -448,7 +449,7 @@ public class ScopeApplicationAdapter ext
 	 */
 	public synchronized String getPublicSID() {
 		IConnection current = Red5.getConnectionLocal();
-		RoomClient currentClient = this.clientListManager
+		Client currentClient = this.clientListManager
 				.getClientByStreamId(current.getClient().getId(), null);
 		clientListManager.updateClientByStreamId(current.getClient().getId(),
 				currentClient, false);
@@ -463,7 +464,7 @@ public class ScopeApplicationAdapter ext
 	public synchronized Boolean overwritePublicSID(String newPublicSID) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 			if (currentClient == null) {
 				return false;
@@ -491,7 +492,7 @@ public class ScopeApplicationAdapter ext
 					+ room.getClients().size() + " " + room.getContextPath()
 					+ " " + room.getName());
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(client.getId(), null);
 
 			// The Room Client can be null if the Client left the room by using
@@ -523,7 +524,7 @@ public class ScopeApplicationAdapter ext
 
 			log.debug(streamid + " is leaving");
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
 			this.roomLeaveByScope(currentClient, current.getScope(), true);
@@ -543,7 +544,7 @@ public class ScopeApplicationAdapter ext
 	 * @param currentClient
 	 * @param currentScope
 	 */
-	public synchronized void roomLeaveByScope(RoomClient currentClient,
+	public synchronized void roomLeaveByScope(Client currentClient,
 			IScope currentScope, boolean removeUserFromSessionList) {
 		try {
 
@@ -603,7 +604,7 @@ public class ScopeApplicationAdapter ext
 										+ " client id "
 										+ cons.getClient().getId());
 
-								RoomClient rcl = this.clientListManager
+								IClientSession rcl = this.clientListManager
 										.getClientByStreamId(cons.getClient()
 												.getId(), null);
 
@@ -682,12 +683,12 @@ public class ScopeApplicationAdapter ext
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
 			//We make a second object the has the reference to the object 
 			//that we will use to send to all participents
-			RoomClient clientObjectSendToSync = currentClient;
+			IClientSession clientObjectSendToSync = currentClient;
 			
 			// Notify all the clients that the stream had been started
 			log.debug("start streamPublishStart broadcast start: "
@@ -719,7 +720,7 @@ public class ScopeApplicationAdapter ext
 					if (conn != null) {
 						if (conn instanceof IServiceCapableConnection) {
 							
-							RoomClient rcl = this.clientListManager
+							IClientSession rcl = this.clientListManager
 									.getClientByStreamId(conn.getClient()
 											.getId(), null);
 							
@@ -797,7 +798,7 @@ public class ScopeApplicationAdapter ext
 				+ stream.getPublishedName());
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient rcl = clientListManager.getClientByStreamId(current.getClient().getId(), null);
+			IClientSession rcl = clientListManager.getClientByStreamId(current.getClient().getId(), null);
 			sendClientBroadcastNotifications(stream, "closeStream", rcl);
 		} catch (Exception e) {
 			log.error("[streamBroadcastClose]", e);
@@ -811,14 +812,14 @@ public class ScopeApplicationAdapter ext
 	 * 
 	 */
 	private synchronized void sendClientBroadcastNotifications(
-			IBroadcastStream stream, String clientFunction, RoomClient rc) {
+			IBroadcastStream stream, String clientFunction, IClientSession rc) {
 		try {
 
 			// Store the local so that we do not send notification to ourself
 			// back
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
 			if (currentClient == null) {
@@ -849,7 +850,7 @@ public class ScopeApplicationAdapter ext
 								// there is a Bug in the current implementation
 								// of the appDisconnect
 								if (clientFunction.equals("closeStream")) {
-									RoomClient rcl = this.clientListManager
+									IClientSession rcl = this.clientListManager
 											.getClientByStreamId(conn
 													.getClient().getId(), null);
 									if (clientFunction.equals("closeStream")
@@ -867,7 +868,7 @@ public class ScopeApplicationAdapter ext
 								}
 								continue;
 							} else {
-								RoomClient rcl = this.clientListManager
+								IClientSession rcl = this.clientListManager
 										.getClientByStreamId(conn.getClient()
 												.getId(), null);
 								if (rcl != null) {
@@ -918,7 +919,7 @@ public class ScopeApplicationAdapter ext
 
 			log.debug("*..*addModerator publicSID: " + publicSID);
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
 			if (currentClient == null) {
@@ -931,7 +932,7 @@ public class ScopeApplicationAdapter ext
 			this.clientListManager.updateClientByStreamId(
 					currentClient.getStreamid(), currentClient, false);
 
-			List<RoomClient> currentMods = this.clientListManager
+			List<Client> currentMods = this.clientListManager
 					.getCurrentModeratorByRoom(room_id);
 			
 			//Send message to all users
@@ -949,7 +950,7 @@ public class ScopeApplicationAdapter ext
 
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
 			@SuppressWarnings("rawtypes")
@@ -997,7 +998,7 @@ public class ScopeApplicationAdapter ext
 			IConnection current = Red5.getConnectionLocal();
 			// String streamid = current.getClient().getId();
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
 			if (currentClient == null) {
@@ -1010,7 +1011,7 @@ public class ScopeApplicationAdapter ext
 			this.clientListManager.updateClientByStreamId(
 					currentClient.getStreamid(), currentClient, false);
 
-			List<RoomClient> currentMods = this.clientListManager
+			List<Client> currentMods = this.clientListManager
 					.getCurrentModeratorByRoom(room_id);
 
 			// Notify all clients of the same scope (room)
@@ -1051,7 +1052,7 @@ public class ScopeApplicationAdapter ext
 			IConnection current = Red5.getConnectionLocal();
 			// String streamid = current.getClient().getId();
 
-            RoomClient currentClient = this.clientListManager
+            Client currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
 			if (currentClient == null) {
@@ -1103,7 +1104,7 @@ public class ScopeApplicationAdapter ext
 			IConnection current = Red5.getConnectionLocal();
 			// String streamid = current.getClient().getId();
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
 			if (currentClient == null) {
@@ -1121,7 +1122,7 @@ public class ScopeApplicationAdapter ext
 			for (Set<IConnection> conset : conCollection) {
 				for (IConnection conn : conset) {
 					if (conn != null) {
-						RoomClient rcl = this.clientListManager
+						Client rcl = this.clientListManager
 								.getClientByStreamId(conn.getClient().getId(), null);
 						if (rcl == null) {
 							// continue;
@@ -1158,7 +1159,7 @@ public class ScopeApplicationAdapter ext
 		try {
 			log.debug("*..*switchMicMuted publicSID: " + publicSID);
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 			if (currentClient == null) {
 				return -1L;
@@ -1181,7 +1182,7 @@ public class ScopeApplicationAdapter ext
 
     public synchronized Boolean getMicMutedByPublicSID(String publicSID) {
         try {
-			RoomClient currentClient = this.clientListManager.getClientByPublicSID(publicSID, false, null);
+			IClientSession currentClient = this.clientListManager.getClientByPublicSID(publicSID, false, null);
 			if (currentClient == null) {
 				return true;
 			}
@@ -1211,10 +1212,10 @@ public class ScopeApplicationAdapter ext
 	public synchronized Long applyForModeration(String publicSID) {
 		try {
 
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
-			List<RoomClient> currentModList = this.clientListManager
+			List<Client> currentModList = this.clientListManager
 					.getCurrentModeratorByRoom(currentClient.getRoom_id());
 
 			if (currentModList.size() > 0) {
@@ -1246,7 +1247,7 @@ public class ScopeApplicationAdapter ext
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 			currentClient.setBroadCastID(broadCastCounter++);
 			this.clientListManager.updateClientByStreamId(streamid,
@@ -1274,14 +1275,14 @@ public class ScopeApplicationAdapter ext
 	 * @param interviewPodId
 	 * @return RoomClient being updated in case of no errors, null otherwise
 	 */
-	public synchronized RoomClient setUserAVSettings(String avsettings,
+	public synchronized IClientSession setUserAVSettings(String avsettings,
 			Object newMessage, Integer vWidth, Integer vHeight, 
 			long room_id, String publicSID, Integer interviewPodId) {
 		try {
 
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 			currentClient.setAvsettings(avsettings);
 			currentClient.setRoom_id(room_id);
@@ -1342,7 +1343,7 @@ public class ScopeApplicationAdapter ext
 
 					// if this is a Moderated Room then the Room can be only
 					// locked off by the Moderator Bit
-					List<RoomClient> clientModeratorListRoom = this.clientListManager
+					List<Client> clientModeratorListRoom = this.clientListManager
 							.getCurrentModeratorByRoom(room_id);
 
 					// If there is no Moderator yet and we are asking for it
@@ -1416,7 +1417,7 @@ public class ScopeApplicationAdapter ext
 
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 			currentClient.setRoom_id(room_id);
 			currentClient.setRoomEnter(new Date());
@@ -1458,7 +1459,7 @@ public class ScopeApplicationAdapter ext
 			log.debug("##### setRoomValues : " + currentClient);
 			
 			// Check for Moderation LogicalRoom ENTER
-			List<RoomClient> clientListRoom = clientListManager.getClientListByRoom(room_id, null);
+			List<Client> clientListRoom = clientListManager.getClientListByRoom(room_id, null);
 
 			// appointed meeting or moderated Room? => Check Max Users first
 			if (room.getNumberOfPartizipants() != null
@@ -1492,7 +1493,7 @@ public class ScopeApplicationAdapter ext
 						this.clientListManager.updateClientByStreamId(streamid,
 								currentClient, false);
 
-						List<RoomClient> modRoomList = this.clientListManager
+						List<Client> modRoomList = this.clientListManager
 								.getCurrentModeratorByRoom(currentClient.getRoom_id());
 						
 						//Sync message to everybody
@@ -1525,7 +1526,7 @@ public class ScopeApplicationAdapter ext
 							this.clientListManager.updateClientByStreamId(
 									streamid, currentClient, false);
 
-							List<RoomClient> modRoomList = this.clientListManager
+							List<Client> modRoomList = this.clientListManager
 									.getCurrentModeratorByRoom(currentClient
 											.getRoom_id());
 
@@ -1592,7 +1593,7 @@ public class ScopeApplicationAdapter ext
 								this.clientListManager.updateClientByStreamId(
 										streamid, currentClient, false);
 
-								List<RoomClient> modRoomList = this.clientListManager
+								List<Client> modRoomList = this.clientListManager
 										.getCurrentModeratorByRoom(currentClient
 												.getRoom_id());
 
@@ -1644,7 +1645,7 @@ public class ScopeApplicationAdapter ext
 						this.clientListManager.updateClientByStreamId(streamid,
 								currentClient, false);
 
-						List<RoomClient> modRoomList = this.clientListManager
+						List<Client> modRoomList = this.clientListManager
 								.getCurrentModeratorByRoom(currentClient
 										.getRoom_id());
 
@@ -1698,13 +1699,13 @@ public class ScopeApplicationAdapter ext
 	 * @param picture_uri
 	 * @return client being updated in case of success, null otherwise
 	 */
-	public synchronized RoomClient setUsernameReconnect(String SID,
+	public synchronized IClientSession setUsernameReconnect(String SID,
 			Long userId, String username, String firstname, String lastname,
 			String picture_uri) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
 			currentClient.setUsername(username);
@@ -1750,12 +1751,12 @@ public class ScopeApplicationAdapter ext
 	 * @param lastname - lastname of the user
 	 * @return RoomClient in case of everything is OK, null otherwise
 	 */
-	public synchronized RoomClient setUsernameAndSession(String SID,
+	public synchronized IClientSession setUsernameAndSession(String SID,
 			Long userId, String username, String firstname, String lastname) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
 			String streamid = current.getClient().getId();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(streamid, null);
 
 			currentClient.setUsername(username);
@@ -1798,9 +1799,9 @@ public class ScopeApplicationAdapter ext
 	 * @param message
 	 * @return the list of room clients
 	 */
-	public synchronized HashMap<String, RoomClient> sendMessageByRoomAndDomain(
+	public synchronized HashMap<String, Client> sendMessageByRoomAndDomain(
 			Long room_id, Object message) {
-		HashMap<String, RoomClient> roomClientList = new HashMap<String, RoomClient>();
+		HashMap<String, Client> roomClientList = new HashMap<String, Client>();
 		try {
 
 			log.debug("sendMessageByRoomAndDomain " + room_id);
@@ -1848,10 +1849,10 @@ public class ScopeApplicationAdapter ext
 		return roomClientList;
 	}
 
-	public synchronized List<RoomClient> getCurrentModeratorList() {
+	public synchronized List<Client> getCurrentModeratorList() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 			Long room_id = currentClient.getRoom_id();
 			return this.clientListManager.getCurrentModeratorByRoom(room_id);
@@ -1880,7 +1881,7 @@ public class ScopeApplicationAdapter ext
 
 			// Check if this User is the Mod:
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			if (currentClient == null) {
@@ -1963,7 +1964,7 @@ public class ScopeApplicationAdapter ext
 
 			// Check if this User is the Mod:
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			if (currentClient == null) {
@@ -2057,7 +2058,7 @@ public class ScopeApplicationAdapter ext
 		log.debug("*..*sendVars: " + vars);
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 			// Long room_id = currentClient.getRoom_id();
 
@@ -2281,7 +2282,7 @@ public class ScopeApplicationAdapter ext
 	public synchronized int sendMessageWithClientWithSyncObject(Object newMessage, boolean sync) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			HashMap<String, Object> hsm = new HashMap<String, Object>();
@@ -2348,7 +2349,7 @@ public class ScopeApplicationAdapter ext
 			String clientId) {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			HashMap<String, Object> hsm = new HashMap<String, Object>();
@@ -2378,7 +2379,7 @@ public class ScopeApplicationAdapter ext
 		try {
 			//if the upload is locally, just proceed to the normal function
 			//Search for RoomClient on current server (serverId == null means it will look on the master for the RoomClient)
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 								.getClientByPublicSID(publicSID, false, null);
 			
 			if (currentClient != null) {
@@ -2406,7 +2407,7 @@ public class ScopeApplicationAdapter ext
 			// log.debug("webAppKeyScope "+webAppKeyScope);
 
 			// Get Room Id to send it to the correct Scope
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
 			if (currentClient == null) {
@@ -2470,7 +2471,7 @@ public class ScopeApplicationAdapter ext
 			// log.debug("webAppKeyScope "+webAppKeyScope);
 
 			// Get Room Id to send it to the correct Scope
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByPublicSID(publicSID, false, null);
 
 			if (currentClient == null) {
@@ -2558,7 +2559,7 @@ public class ScopeApplicationAdapter ext
 				for (IConnection conn : conset) {
 					if (conn != null) {
 
-						RoomClient rcl = this.clientListManager
+						IClientSession rcl = this.clientListManager
 								.getClientByStreamId(conn.getClient().getId(),
 										null);
 
@@ -2594,7 +2595,7 @@ public class ScopeApplicationAdapter ext
 				for (IConnection conn : conset) {
 					if (conn != null) {
 
-						RoomClient rcl = this.clientListManager
+						IClientSession rcl = this.clientListManager
 								.getClientByStreamId(conn.getClient().getId(), null);
 
 						if (rcl.getIsRecording() != null
@@ -2606,7 +2607,7 @@ public class ScopeApplicationAdapter ext
 				}
 			}
 
-			RoomClient current_rcl = this.clientListManager
+			Client current_rcl = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			// Also set the Recording Flag to Record all Participants that enter
@@ -2702,7 +2703,7 @@ public class ScopeApplicationAdapter ext
 				for (IConnection conn : conset) {
 					if (conn != null) {
 
-						RoomClient rcl = this.clientListManager
+						Client rcl = this.clientListManager
 								.getClientByStreamId(conn.getClient().getId(), null);
 
 						if (rcl.getIsRecording() != null
@@ -2730,7 +2731,7 @@ public class ScopeApplicationAdapter ext
 				return false;
 			}
 
-			RoomClient currentClient = this.clientListManager
+			Client currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			this.flvRecorderService.stopRecordAndSave(scope, currentClient,
@@ -2771,10 +2772,10 @@ public class ScopeApplicationAdapter ext
 	 * 
 	 * @return all ClientList Objects of that room and domain
 	 */
-	public synchronized List<RoomClient> getClientListScope() {
+	public synchronized List<Client> getClientListScope() {
 		try {
 			IConnection current = Red5.getConnectionLocal();
-			RoomClient currentClient = this.clientListManager
+			IClientSession currentClient = this.clientListManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
 			return clientListManager.getClientListByRoom(currentClient.getRoom_id(), null);
@@ -2782,7 +2783,7 @@ public class ScopeApplicationAdapter ext
 		} catch (Exception err) {
 			log.debug("[getClientListScope]", err);
 		}
-		return new ArrayList<RoomClient>();
+		return new ArrayList<Client>();
 	}
 
 	private boolean getWhiteboardDrawStatus() {
@@ -2847,7 +2848,7 @@ public class ScopeApplicationAdapter ext
 		//verify
 		for (Iterator<Long> i = result.iterator(); i.hasNext();) {
 			Long id = i.next();
-			List<RoomClient> rcs = clientListManager.getClientListByRoom(id, s);
+			List<Client> rcs = clientListManager.getClientListByRoom(id, s);
 			if (rcs.size() == 0 || (rcs.size() == 1 && rcs.get(0).isSipTransport())) {
 				i.remove();
 			}
@@ -2866,7 +2867,7 @@ public class ScopeApplicationAdapter ext
     public synchronized void updateSipTransport() {
         IConnection current = Red5.getConnectionLocal();
         String streamid = current.getClient().getId();
-        RoomClient currentClient = this.clientListManager.getClientByStreamId(streamid, null);
+        Client currentClient = this.clientListManager.getClientByStreamId(streamid, null);
         log.debug("getSipConferenceMembersNumber: " + roommanagement.getSipConferenceMembersNumber(currentClient.getRoom_id()));
         String newNumber = "("+Integer.toString(roommanagement.getSipConferenceMembersNumber(currentClient.getRoom_id())-1)+")";
         if(!newNumber.equals(currentClient.getLastname())) {
@@ -2885,7 +2886,7 @@ public class ScopeApplicationAdapter ext
     public synchronized void joinToConfCall(String number) {
         IConnection current = Red5.getConnectionLocal();
         String streamid = current.getClient().getId();
-        RoomClient currentClient = this.clientListManager.getClientByStreamId(streamid, null);
+        IClientSession currentClient = this.clientListManager.getClientByStreamId(streamid, null);
         try {
         	String sipNumber = getSipNumber(currentClient.getRoom_id());
             log.debug("asterisk -rx \"originate Local/" + number + "@rooms extension " + sipNumber + "@rooms\"");
@@ -2908,7 +2909,7 @@ public class ScopeApplicationAdapter ext
         IConnection current = Red5.getConnectionLocal();
         String streamid = current.getClient().getId();
         // Notify all clients of the same scope (room)
-        RoomClient currentClient = this.clientListManager.getClientByStreamId(streamid, null);
+        Client currentClient = this.clientListManager.getClientByStreamId(streamid, null);
         currentClient.setRoom_id(room_id);
         currentClient.setRoomEnter(new Date());
         currentClient.setFirstname("SIP Transport");

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ScreenController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ScreenController.java?rev=1435723&r1=1435722&r2=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ScreenController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ScreenController.java Sat Jan 19 21:49:18 2013
@@ -30,11 +30,11 @@ import javax.servlet.http.HttpServletRes
 import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.lang.StringUtils;
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.IClientList;
-import org.apache.openmeetings.conference.room.RoomClient;
 import org.apache.openmeetings.data.basic.Fieldmanagment;
 import org.apache.openmeetings.data.basic.Sessionmanagement;
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
+import org.apache.openmeetings.session.IClientSession;
+import org.apache.openmeetings.session.ISessionStore;
 import org.apache.openmeetings.utils.OmFileHelper;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
@@ -53,7 +53,7 @@ public class ScreenController {
 			ScreenController.class, OpenmeetingsVariables.webAppRootKey);
 
 	@Autowired
-	private IClientList clientListManager;
+	private ISessionStore clientListManager;
 	@Autowired
 	public Sessionmanagement sessionManagement;
 	@Autowired
@@ -182,7 +182,7 @@ public class ScreenController {
 			if (port == null) {
 				throw new Exception("port is empty: ");
 			}
-			RoomClient rc = clientListManager.getClientByPublicSID(publicSID, false, null);
+			IClientSession rc = clientListManager.getClientByPublicSID(publicSID, false, null);
 			if (rc == null) {
 				throw new Exception("port is empty: ");
 			}

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/Client.java (from r1435703, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/Client.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/Client.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java&r1=1435703&r2=1435723&rev=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/Client.java Sat Jan 19 21:49:18 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.conference.room;
+package org.apache.openmeetings.session;
 
 /**
  * Session object to store client values
@@ -30,7 +30,7 @@ import java.util.List;
 
 import org.apache.openmeetings.utils.math.CalendarPatterns;
 
-public class RoomClient implements Serializable {
+public class Client implements Serializable, IClientSession {
 	
 	private static final long serialVersionUID = 1831858089607111565L;
 	
@@ -181,11 +181,11 @@ public class RoomClient implements Seria
     private Boolean micMuted = false;
     private boolean sipTransport = false;
     
-    public RoomClient() {
+    public Client() {
     	
     }
     
-	public RoomClient(String streamid, String publicSID, Long room_id,
+	public Client(String streamid, String publicSID, Long room_id,
 			Long user_id, String firstname, String lastname, boolean isAVClient,
 			String username, String connectedSince, String scope) {
 		super();
@@ -201,6 +201,9 @@ public class RoomClient implements Seria
 		this.scope = scope;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUserObject(java.lang.Long, java.lang.String, java.lang.String, java.lang.String)
+	 */
 	public void setUserObject(Long user_id, String username, String firstname, String lastname) {
 		this.user_id = user_id;
 		this.username = username;
@@ -208,395 +211,712 @@ public class RoomClient implements Seria
 		this.lastname = lastname;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUserObject(java.lang.String, java.lang.String, java.lang.String)
+	 */
 	public void setUserObject(String username, String firstname, String lastname) {
 		this.username = username;
 		this.firstname = firstname;
 		this.lastname = lastname;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getConnectedSince()
+	 */
 	public Date getConnectedSince() {
 		return connectedSince;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setConnectedSince(java.util.Date)
+	 */
 	public void setConnectedSince(Date connectedSince) {
 		this.connectedSince = connectedSince;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getIsMod()
+	 */
 	public Boolean getIsMod() {
 		return isMod;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setIsMod(java.lang.Boolean)
+	 */
 	public void setIsMod(Boolean isMod) {
 		this.isMod = isMod;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getUsername()
+	 */
 	public String getUsername() {
 		return username;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUsername(java.lang.String)
+	 */
 	public void setUsername(String username) {
 		this.username = username;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getStreamid()
+	 */
 	public String getStreamid() {
 		return streamid;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setStreamid(java.lang.String)
+	 */
 	public void setStreamid(String streamid) {
 		this.streamid = streamid;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getScope()
+	 */
 	public String getScope() {
 		return scope;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setScope(java.lang.String)
+	 */
 	public void setScope(String scope) {
 		this.scope = scope;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getFormatedDate()
+	 */
 	public String getFormatedDate() {
 		return formatedDate;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setFormatedDate(java.lang.String)
+	 */
 	public void setFormatedDate(String formatedDate) {
 		this.formatedDate = formatedDate;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getUsercolor()
+	 */
 	public String getUsercolor() {
 		return usercolor;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUsercolor(java.lang.String)
+	 */
 	public void setUsercolor(String usercolor) {
 		this.usercolor = usercolor;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getUserpos()
+	 */
 	public Integer getUserpos() {
 		return userpos;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUserpos(java.lang.Integer)
+	 */
 	public void setUserpos(Integer userpos) {
 		this.userpos = userpos;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getUserip()
+	 */
 	public String getUserip() {
 		return userip;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUserip(java.lang.String)
+	 */
 	public void setUserip(String userip) {
 		this.userip = userip;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getSwfurl()
+	 */
 	public String getSwfurl() {
 		return swfurl;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setSwfurl(java.lang.String)
+	 */
 	public void setSwfurl(String swfurl) {
 		this.swfurl = swfurl;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getUserport()
+	 */
 	public int getUserport() {
 		return userport;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUserport(int)
+	 */
 	public void setUserport(int userport) {
 		this.userport = userport;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getFirstname()
+	 */
 	public String getFirstname() {
 		return firstname;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setFirstname(java.lang.String)
+	 */
 	public void setFirstname(String firstname) {
 		this.firstname = firstname;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getLanguage()
+	 */
 	public String getLanguage() {
 		return language;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setLanguage(java.lang.String)
+	 */
 	public void setLanguage(String language) {
 		this.language = language;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getLastLogin()
+	 */
 	public String getLastLogin() {
 		return lastLogin;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setLastLogin(java.lang.String)
+	 */
 	public void setLastLogin(String lastLogin) {
 		this.lastLogin = lastLogin;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getLastname()
+	 */
 	public String getLastname() {
 		return lastname;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setLastname(java.lang.String)
+	 */
 	public void setLastname(String lastname) {
 		this.lastname = lastname;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getMail()
+	 */
 	public String getMail() {
 		return mail;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setMail(java.lang.String)
+	 */
 	public void setMail(String mail) {
 		this.mail = mail;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getOfficial_code()
+	 */
 	public String getOfficial_code() {
 		return official_code;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setOfficial_code(java.lang.String)
+	 */
 	public void setOfficial_code(String official_code) {
 		this.official_code = official_code;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getPicture_uri()
+	 */
 	public String getPicture_uri() {
 		return picture_uri;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setPicture_uri(java.lang.String)
+	 */
 	public void setPicture_uri(String picture_uri) {
 		this.picture_uri = picture_uri;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getUser_id()
+	 */
 	public Long getUser_id() {
 		return user_id;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setUser_id(java.lang.Long)
+	 */
 	public void setUser_id(Long user_id) {
 		this.user_id = user_id;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getRoom_id()
+	 */
 	public Long getRoom_id() {
 		return room_id;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setRoom_id(java.lang.Long)
+	 */
 	public void setRoom_id(Long room_id) {
 		this.room_id = room_id;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getRoomEnter()
+	 */
 	public Date getRoomEnter() {
 		return roomEnter;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setRoomEnter(java.util.Date)
+	 */
 	public void setRoomEnter(Date roomEnter) {
 		this.roomEnter = roomEnter;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getIsRecording()
+	 */
 	public Boolean getIsRecording() {
 		return isRecording;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setIsRecording(java.lang.Boolean)
+	 */
 	public void setIsRecording(Boolean isRecording) {
 		this.isRecording = isRecording;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getRoomRecordingName()
+	 */
 	public String getRoomRecordingName() {
 		return roomRecordingName;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setRoomRecordingName(java.lang.String)
+	 */
 	public void setRoomRecordingName(String roomRecordingName) {
 		this.roomRecordingName = roomRecordingName;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getAvsettings()
+	 */
 	public String getAvsettings() {
 		return avsettings;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setAvsettings(java.lang.String)
+	 */
 	public void setAvsettings(String avsettings) {
 		this.avsettings = avsettings;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getBroadCastID()
+	 */
 	public long getBroadCastID() {
 		return broadCastID;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setBroadCastID(long)
+	 */
 	public void setBroadCastID(long broadCastID) {
 		this.broadCastID = broadCastID;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getPublicSID()
+	 */
 	public String getPublicSID() {
 		return publicSID;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setPublicSID(java.lang.String)
+	 */
 	public void setPublicSID(String publicSID) {
 		this.publicSID = publicSID;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getZombieCheckFlag()
+	 */
 	public Boolean getZombieCheckFlag() {
 		return zombieCheckFlag;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setZombieCheckFlag(java.lang.Boolean)
+	 */
 	public void setZombieCheckFlag(Boolean zombieCheckFlag) {
 		this.zombieCheckFlag = zombieCheckFlag;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getMicMuted()
+	 */
 	public Boolean getMicMuted() {
 		return micMuted;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setMicMuted(java.lang.Boolean)
+	 */
 	public void setMicMuted(Boolean micMuted) {
 		this.micMuted = micMuted;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getCanDraw()
+	 */
 	public Boolean getCanDraw() {
 		return canDraw;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setCanDraw(java.lang.Boolean)
+	 */
 	public void setCanDraw(Boolean canDraw) {
 		this.canDraw = canDraw;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getIsBroadcasting()
+	 */
 	public Boolean getIsBroadcasting() {
 		return isBroadcasting;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setIsBroadcasting(java.lang.Boolean)
+	 */
 	public void setIsBroadcasting(Boolean isBroadcasting) {
 		this.isBroadcasting = isBroadcasting;
 	}
 	
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getCanShare()
+	 */
 	public Boolean getCanShare() {
 		return canShare;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setCanShare(java.lang.Boolean)
+	 */
 	public void setCanShare(Boolean canShare) {
 		this.canShare = canShare;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getExternalUserId()
+	 */
 	public String getExternalUserId() {
 		return externalUserId;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setExternalUserId(java.lang.String)
+	 */
 	public void setExternalUserId(String externalUserId) {
 		this.externalUserId = externalUserId;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getExternalUserType()
+	 */
 	public String getExternalUserType() {
 		return externalUserType;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setExternalUserType(java.lang.String)
+	 */
 	public void setExternalUserType(String externalUserType) {
 		this.externalUserType = externalUserType;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getSharerSIDs()
+	 */
 	public List<String> getSharerSIDs() {
 		return sharerSIDs;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setSharerSIDs(java.util.List)
+	 */
 	public void setSharerSIDs(List<String> sharerSIDs) {
 		this.sharerSIDs = sharerSIDs;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getIsSuperModerator()
+	 */
 	public Boolean getIsSuperModerator() {
 		return isSuperModerator;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setIsSuperModerator(java.lang.Boolean)
+	 */
 	public void setIsSuperModerator(Boolean isSuperModerator) {
 		this.isSuperModerator = isSuperModerator;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getIsScreenClient()
+	 */
 	public Boolean getIsScreenClient() {
 		return isScreenClient;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setIsScreenClient(java.lang.Boolean)
+	 */
 	public void setIsScreenClient(Boolean isScreenClient) {
 		this.isScreenClient = isScreenClient;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getVWidth()
+	 */
 	public int getVWidth() {
 		return vWidth;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setVWidth(int)
+	 */
 	public void setVWidth(int width) {
 		vWidth = width;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getVHeight()
+	 */
 	public int getVHeight() {
 		return vHeight;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setVHeight(int)
+	 */
 	public void setVHeight(int height) {
 		vHeight = height;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getVX()
+	 */
 	public int getVX() {
 		return vX;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setVX(int)
+	 */
 	public void setVX(int vx) {
 		vX = vx;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getVY()
+	 */
 	public int getVY() {
 		return vY;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setVY(int)
+	 */
 	public void setVY(int vy) {
 		vY = vy;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getStreamPublishName()
+	 */
 	public String getStreamPublishName() {
 		return streamPublishName;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setStreamPublishName(java.lang.String)
+	 */
 	public void setStreamPublishName(String streamPublishName) {
 		this.streamPublishName = streamPublishName;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getFlvRecordingId()
+	 */
 	public Long getFlvRecordingId() {
 		return flvRecordingId;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setFlvRecordingId(java.lang.Long)
+	 */
 	public void setFlvRecordingId(Long flvRecordingId) {
 		this.flvRecordingId = flvRecordingId;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getFlvRecordingMetaDataId()
+	 */
 	public Long getFlvRecordingMetaDataId() {
 		return flvRecordingMetaDataId;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setFlvRecordingMetaDataId(java.lang.Long)
+	 */
 	public void setFlvRecordingMetaDataId(Long flvRecordingMetaDataId) {
 		this.flvRecordingMetaDataId = flvRecordingMetaDataId;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#isScreenPublishStarted()
+	 */
 	public boolean isScreenPublishStarted() {
 		return screenPublishStarted;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setScreenPublishStarted(boolean)
+	 */
 	public void setScreenPublishStarted(boolean screenPublishStarted) {
 		this.screenPublishStarted = screenPublishStarted;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getOrganization_id()
+	 */
 	public Long getOrganization_id() {
 		return organization_id;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setOrganization_id(java.lang.Long)
+	 */
 	public void setOrganization_id(Long organization_id) {
 		this.organization_id = organization_id;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#isStartRecording()
+	 */
 	public boolean isStartRecording() {
 		return startRecording;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setStartRecording(boolean)
+	 */
 	public void setStartRecording(boolean startRecording) {
 		this.startRecording = startRecording;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#isStartStreaming()
+	 */
 	public boolean isStartStreaming() {
 		return startStreaming;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setStartStreaming(boolean)
+	 */
 	public void setStartStreaming(boolean startStreaming) {
 		this.startStreaming = startStreaming;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getInterviewPodId()
+	 */
 	public Integer getInterviewPodId() {
 		return interviewPodId;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setInterviewPodId(java.lang.Integer)
+	 */
 	public void setInterviewPodId(Integer interviewPodId) {
 		this.interviewPodId = interviewPodId;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getCanRemote()
+	 */
 	public Boolean getCanRemote() {
 		return canRemote;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setCanRemote(java.lang.Boolean)
+	 */
 	public void setCanRemote(Boolean canRemote) {
 		this.canRemote = canRemote;
 	}
 
+    /* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getCanGiveAudio()
+	 */
     public Boolean getCanGiveAudio() {
 		return canGiveAudio;
 	}
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setCanGiveAudio(java.lang.Boolean)
+	 */
 	public void setCanGiveAudio(Boolean canGiveAudio) {
 		this.canGiveAudio = canGiveAudio;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getAllowRecording()
+	 */
 	public Boolean getAllowRecording() {
 		return allowRecording;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setAllowRecording(java.lang.Boolean)
+	 */
 	public void setAllowRecording(Boolean allowRecording) {
 		this.allowRecording = allowRecording;
 	}
 
-	/**
-	 * @see RoomClient#isAVClient
-	 * @return
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#getIsAVClient()
 	 */
 	public boolean getIsAVClient() {
 		return isAVClient;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setIsAVClient(boolean)
+	 */
 	public void setIsAVClient(boolean isAVClient) {
 		this.isAVClient = isAVClient;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#isStreamPublishStarted()
+	 */
 	public boolean isStreamPublishStarted() {
 		return streamPublishStarted;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setStreamPublishStarted(boolean)
+	 */
 	public void setStreamPublishStarted(boolean streamPublishStarted) {
 		this.streamPublishStarted = streamPublishStarted;
 	}
 
-	/**
-	 * To improve our trace log
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#toString()
 	 */
 	@Override
 	public String toString() {
@@ -616,10 +936,16 @@ public class RoomClient implements Seria
 				;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#isSipTransport()
+	 */
 	public boolean isSipTransport() {
 		return sipTransport;
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.openmeetings.conference.room.IRoomClient#setSipTransport(boolean)
+	 */
 	public void setSipTransport(boolean sipTransport) {
 		this.sipTransport = sipTransport;
 	}

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientDatabaseStore.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientDatabaseStore.java?rev=1435723&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientDatabaseStore.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientDatabaseStore.java Sat Jan 19 21:49:18 2013
@@ -0,0 +1,109 @@
+package org.apache.openmeetings.session;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.openmeetings.data.beans.basic.SearchResult;
+import org.apache.openmeetings.persistence.beans.basic.Server;
+
+public class ClientDatabaseStore implements ISessionStore {
+
+	public IClientSession addClientListItem(String streamId, String scopeName,
+			Integer remotePort, String remoteAddress, String swfUrl,
+			boolean isAVClient) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Collection<Client> getAllClients() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Client getClientByStreamId(String streamId, Server server) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IClientSession getSyncClientByStreamId(String streamId) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Client getClientByPublicSID(String publicSID,
+			boolean isAVClient, Server server) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public ClientSessionInfo getClientByPublicSIDAnyServer(String publicSID,
+			boolean isAVClient) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IClientSession getClientByUserId(Long userId) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Boolean updateAVClientByStreamId(String streamId, Client rcm) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Boolean updateClientByStreamId(String streamId, Client rcm,
+			boolean updateRoomCount) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Boolean removeClient(String streamId) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public List<Client> getClientListByRoom(Long room_id, Server server) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Collection<Client> getClientListByRoomAll(Long room_id,
+			Server server) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public List<Client> getCurrentModeratorByRoom(Long room_id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public SearchResult<ClientSession> getListByStartAndMax(int start, int max,
+			String orderby, boolean asc) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public long getRecordingCount(long roomId) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public long getPublishingCount(long roomId) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public Set<Long> getActiveRoomIdsByServer(Server server) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public String getSessionStatistics() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientHashMapStore.java (from r1435703, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientHashMapStore.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientHashMapStore.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java&r1=1435703&r2=1435723&rev=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientHashMapStore.java Sat Jan 19 21:49:18 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.conference.room;
+package org.apache.openmeetings.session;
 
 import java.math.BigInteger;
 import java.util.ArrayList;
@@ -33,9 +33,9 @@ import java.util.Random;
 import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.cache.HashMapStore;
 import org.apache.openmeetings.data.beans.basic.SearchResult;
 import org.apache.openmeetings.persistence.beans.basic.Server;
+import org.apache.openmeetings.session.cache.HashMapStore;
 import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -47,10 +47,10 @@ import org.springframework.beans.factory
  * @author sebawagner
  * 
  */
-public class ClientListHashMapStore implements IClientList {
+public class ClientHashMapStore implements ISessionStore {
 
 	protected static final Logger log = Red5LoggerFactory.getLogger(
-			ClientListHashMapStore.class, OpenmeetingsVariables.webAppRootKey);
+			ClientHashMapStore.class, OpenmeetingsVariables.webAppRootKey);
 	
 	protected static HashMapStore cache = new HashMapStore();
 	
@@ -59,13 +59,13 @@ public class ClientListHashMapStore impl
 	@Autowired
 	private ManageCryptStyle manageCryptStyle;
 	
-	public synchronized RoomClient addClientListItem(String streamId,
+	public synchronized IClientSession addClientListItem(String streamId,
 			String scopeName, Integer remotePort, String remoteAddress,
 			String swfUrl, boolean isAVClient) {
 		try {
 
 			// Store the Connection into a bean and add it to the HashMap
-			RoomClient rcm = new RoomClient();
+			Client rcm = new Client();
 			rcm.setConnectedSince(new Date());
 			rcm.setStreamid(streamId);
 			rcm.setScope(scopeName);
@@ -95,15 +95,15 @@ public class ClientListHashMapStore impl
 		return null;
 	}
 
-	public synchronized Collection<RoomClient> getAllClients() {
-		HashMap<String, RoomClient> clients = cache.getClientsByServer(null);
+	public synchronized Collection<Client> getAllClients() {
+		HashMap<String, Client> clients = cache.getClientsByServer(null);
 		if (clients == null) {
-			return new ArrayList<RoomClient>(0);
+			return new ArrayList<Client>(0);
 		}
 		return clients.values();
 	}
 
-	public synchronized RoomClient getClientByStreamId(String streamId, Server server) {
+	public synchronized Client getClientByStreamId(String streamId, Server server) {
 		try {
 			if (!cache.containsKey(server, streamId)) {
 				log.debug("Tried to get a non existing Client " + streamId);
@@ -116,14 +116,14 @@ public class ClientListHashMapStore impl
 		return null;
 	}
 
-	public synchronized RoomClient getSyncClientByStreamId(String streamId) {
+	public synchronized IClientSession getSyncClientByStreamId(String streamId) {
 		try {
 			if (!cache.containsKey(null, streamId)) {
 				log.debug("Tried to get a non existing Client " + streamId);
 				return null;
 			}
 
-			RoomClient rcl = cache.get(null, streamId);
+			IClientSession rcl = cache.get(null, streamId);
 
 			if (rcl == null) {
 				return null;
@@ -140,9 +140,9 @@ public class ClientListHashMapStore impl
 		return null;
 	}
 
-	public RoomClient getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {
+	public Client getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {
 		try {
-			for (RoomClient rcl : cache.getClientsByPublicSID(server, publicSID)) {
+			for (Client rcl : cache.getClientsByPublicSID(server, publicSID)) {
 				if (rcl.getIsAVClient() != isAVClient) {
 					continue;
 				}
@@ -156,8 +156,8 @@ public class ClientListHashMapStore impl
 	
 	public ClientSessionInfo getClientByPublicSIDAnyServer(String publicSID, boolean isAVClient) {
 		try {
-			for (Entry<Long,List<RoomClient>> entry : cache.getClientsByPublicSID(publicSID).entrySet()) {
-				for (RoomClient rcl : entry.getValue()) {
+			for (Entry<Long,List<Client>> entry : cache.getClientsByPublicSID(publicSID).entrySet()) {
+				for (IClientSession rcl : entry.getValue()) {
 					if (rcl.getIsAVClient() != isAVClient) {
 						continue;
 					}
@@ -170,9 +170,9 @@ public class ClientListHashMapStore impl
 		return null;
 	}
 
-	public synchronized RoomClient getClientByUserId(Long userId) {
+	public synchronized IClientSession getClientByUserId(Long userId) {
 		try {
-			for (RoomClient rcl : cache.getClientsByUserId(null, userId)) {
+			for (IClientSession rcl : cache.getClientsByUserId(null, userId)) {
 				
 				if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
 					continue;
@@ -191,11 +191,11 @@ public class ClientListHashMapStore impl
 	}
 
 	public synchronized Boolean updateAVClientByStreamId(String streamId,
-			RoomClient rcm) {
+			Client rcm) {
 		try {
 
 			// get the corresponding user session object and update the settings
-			RoomClient rclUsual = getClientByPublicSID(rcm.getPublicSID(),
+			Client rclUsual = getClientByPublicSID(rcm.getPublicSID(),
 					false, null);
 			if (rclUsual != null) {
 				rclUsual.setBroadCastID(rcm.getBroadCastID());
@@ -204,7 +204,7 @@ public class ClientListHashMapStore impl
 				rclUsual.setVWidth(rcm.getVWidth());
 				rclUsual.setVX(rcm.getVX());
 				rclUsual.setVY(rcm.getVY());
-				RoomClient rclSaved = cache.get(null, rclUsual.getStreamid());
+				IClientSession rclSaved = cache.get(null, rclUsual.getStreamid());
 				if (rclSaved != null) {
 					cache.put(null,rclUsual.getStreamid(), rclUsual);
 				} else {
@@ -221,10 +221,10 @@ public class ClientListHashMapStore impl
 	}
 
 	public synchronized Boolean updateClientByStreamId(String streamId,
-			RoomClient rcm, boolean updateRoomCount) {
+			Client rcm, boolean updateRoomCount) {
 		try {
 			
-			RoomClient rclSaved = cache.get(null, streamId);
+			IClientSession rclSaved = cache.get(null, streamId);
 			
 			if (rclSaved != null) {
 				cache.put(null, streamId, rcm);
@@ -254,11 +254,11 @@ public class ClientListHashMapStore impl
 		return null;
 	}
 
-	public synchronized ArrayList<RoomClient> getClientListByRoom(Long roomId, Server server) {
-		ArrayList<RoomClient> roomClientList = new ArrayList<RoomClient>();
+	public synchronized ArrayList<Client> getClientListByRoom(Long roomId, Server server) {
+		ArrayList<Client> roomClientList = new ArrayList<Client>();
 		try {
 
-			for (RoomClient rcl : cache.getClientsByRoomId(server, roomId).values()) {
+			for (Client rcl : cache.getClientsByRoomId(server, roomId).values()) {
 
 				if (rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {
 					continue;
@@ -279,7 +279,7 @@ public class ClientListHashMapStore impl
 		return roomClientList;
 	}
 
-	public synchronized Collection<RoomClient> getClientListByRoomAll(Long roomId, Server server) {
+	public synchronized Collection<Client> getClientListByRoomAll(Long roomId, Server server) {
 		try {
 			return cache.getClientsByRoomId(server, roomId).values();
 		} catch (Exception err) {
@@ -288,10 +288,10 @@ public class ClientListHashMapStore impl
 		return null;
 	}
 
-	public synchronized List<RoomClient> getCurrentModeratorByRoom(Long room_id) {
-		List<RoomClient> rclList = new LinkedList<RoomClient>();
-		List<RoomClient> currentClients = this.getClientListByRoom(room_id, null);
-		for (RoomClient rcl : currentClients) {
+	public synchronized List<Client> getCurrentModeratorByRoom(Long room_id) {
+		List<Client> rclList = new LinkedList<Client>();
+		List<Client> currentClients = this.getClientListByRoom(room_id, null);
+		for (Client rcl : currentClients) {
 			if (rcl.getIsMod()) {
 				rclList.add(rcl);
 			}
@@ -304,13 +304,13 @@ public class ClientListHashMapStore impl
 	public synchronized SearchResult<ClientSession> getListByStartAndMax(
 			int start, int max, String orderby, boolean asc) {
 		SearchResult<ClientSession> sResult = new SearchResult<ClientSession>();
-		sResult.setObjectName(RoomClient.class.getName());
+		sResult.setObjectName(Client.class.getName());
 		sResult.setRecords(Long.valueOf(cache.size()).longValue());
 		ArrayList<ClientSession> myList = new ArrayList<ClientSession>(cache.size());
 		
 		//FIXME: Improve the handling of the Arrays/Map/List so that this re-parsing is not needed
-		for (Entry<Long, LinkedHashMap<String, RoomClient>> entry : cache.values().entrySet()) {
-			for (RoomClient rcl : entry.getValue().values()) {
+		for (Entry<Long, LinkedHashMap<String, Client>> entry : cache.values().entrySet()) {
+			for (IClientSession rcl : entry.getValue().values()) {
 				myList.add(new ClientSession(entry.getKey(), rcl));
 			}
 		}
@@ -320,9 +320,9 @@ public class ClientListHashMapStore impl
 	}
 
 	public long getRecordingCount(long roomId) {
-		List<RoomClient> currentClients = this.getClientListByRoom(roomId, null);
+		List<Client> currentClients = this.getClientListByRoom(roomId, null);
 		int numberOfRecordingUsers = 0;
-		for (RoomClient rcl : currentClients) {
+		for (IClientSession rcl : currentClients) {
 			if (rcl.isStartRecording()) {
 				numberOfRecordingUsers++;
 			}
@@ -331,9 +331,9 @@ public class ClientListHashMapStore impl
 	}
 
 	public long getPublishingCount(long roomId) {
-		List<RoomClient> currentClients = this.getClientListByRoom(roomId, null);
+		List<Client> currentClients = this.getClientListByRoom(roomId, null);
 		int numberOfPublishingUsers = 0;
-		for (RoomClient rcl : currentClients) {
+		for (IClientSession rcl : currentClients) {
 			if (rcl.isStreamPublishStarted()) {
 				numberOfPublishingUsers++;
 			}

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSession.java (from r1435703, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSession.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSession.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSession.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSession.java&r1=1435703&r2=1435723&rev=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSession.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSession.java Sat Jan 19 21:49:18 2013
@@ -16,7 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.conference.room;
+package org.apache.openmeetings.session;
+
+import org.apache.openmeetings.persistence.beans.basic.Server;
+
 
 
 /**
@@ -24,9 +27,11 @@ package org.apache.openmeetings.conferen
  * Session object, is never populated to the clients, stays on the server
  * 
  * So in this object you can store meta information that the client does not
- * need to know. This is handy because the RoomClient object otherwise gets too
+ * need to know. This is handy because the {@link IClientSession} object otherwise gets too
  * big.
  * 
+ * For example the {@link Server} can be referenced here.
+ * 
  * @author sebawagner
  * 
  */
@@ -38,9 +43,9 @@ public class ClientSession {
 	 */
 	private Long server;
 
-	private RoomClient roomClient;
+	private IClientSession roomClient;
 
-	public ClientSession(Long server, RoomClient roomClient) {
+	public ClientSession(Long server, IClientSession roomClient) {
 		super();
 		this.server = server;
 		this.roomClient = roomClient;
@@ -57,11 +62,11 @@ public class ClientSession {
 		this.server = server;
 	}
 
-	public RoomClient getRoomClient() {
+	public IClientSession getRoomClient() {
 		return roomClient;
 	}
 
-	public void setRoomClient(RoomClient roomClient) {
+	public void setRoomClient(IClientSession roomClient) {
 		this.roomClient = roomClient;
 	}
 

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSessionInfo.java (from r1435703, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionInfo.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSessionInfo.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSessionInfo.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionInfo.java&r1=1435703&r2=1435723&rev=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionInfo.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ClientSessionInfo.java Sat Jan 19 21:49:18 2013
@@ -16,23 +16,24 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.conference.room;
+package org.apache.openmeetings.session;
+
 
 public class ClientSessionInfo {
 	
-	private RoomClient rcl;
+	private IClientSession rcl;
 	public Long serverId;
 	
-	public ClientSessionInfo(RoomClient rcl, Long serverId) {
+	public ClientSessionInfo(IClientSession rcl, Long serverId) {
 		super();
 		this.rcl = rcl;
 		this.serverId = serverId;
 	}
 	
-	public RoomClient getRcl() {
+	public IClientSession getRcl() {
 		return rcl;
 	}
-	public void setRcl(RoomClient rcl) {
+	public void setRcl(IClientSession rcl) {
 		this.rcl = rcl;
 	}
 	public Long getServerId() {

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/IClientSession.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/IClientSession.java?rev=1435723&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/IClientSession.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/IClientSession.java Sat Jan 19 21:49:18 2013
@@ -0,0 +1,240 @@
+package org.apache.openmeetings.session;
+
+import java.util.Date;
+import java.util.List;
+
+
+public interface IClientSession {
+
+	public abstract void setUserObject(Long user_id, String username,
+			String firstname, String lastname);
+
+	public abstract void setUserObject(String username, String firstname,
+			String lastname);
+
+	public abstract Date getConnectedSince();
+
+	public abstract void setConnectedSince(Date connectedSince);
+
+	public abstract Boolean getIsMod();
+
+	public abstract void setIsMod(Boolean isMod);
+
+	public abstract String getUsername();
+
+	public abstract void setUsername(String username);
+
+	public abstract String getStreamid();
+
+	public abstract void setStreamid(String streamid);
+
+	public abstract String getScope();
+
+	public abstract void setScope(String scope);
+
+	public abstract String getFormatedDate();
+
+	public abstract void setFormatedDate(String formatedDate);
+
+	public abstract String getUsercolor();
+
+	public abstract void setUsercolor(String usercolor);
+
+	public abstract Integer getUserpos();
+
+	public abstract void setUserpos(Integer userpos);
+
+	public abstract String getUserip();
+
+	public abstract void setUserip(String userip);
+
+	public abstract String getSwfurl();
+
+	public abstract void setSwfurl(String swfurl);
+
+	public abstract int getUserport();
+
+	public abstract void setUserport(int userport);
+
+	public abstract String getFirstname();
+
+	public abstract void setFirstname(String firstname);
+
+	public abstract String getLanguage();
+
+	public abstract void setLanguage(String language);
+
+	public abstract String getLastLogin();
+
+	public abstract void setLastLogin(String lastLogin);
+
+	public abstract String getLastname();
+
+	public abstract void setLastname(String lastname);
+
+	public abstract String getMail();
+
+	public abstract void setMail(String mail);
+
+	public abstract String getOfficial_code();
+
+	public abstract void setOfficial_code(String official_code);
+
+	public abstract String getPicture_uri();
+
+	public abstract void setPicture_uri(String picture_uri);
+
+	public abstract Long getUser_id();
+
+	public abstract void setUser_id(Long user_id);
+
+	public abstract Long getRoom_id();
+
+	public abstract void setRoom_id(Long room_id);
+
+	public abstract Date getRoomEnter();
+
+	public abstract void setRoomEnter(Date roomEnter);
+
+	public abstract Boolean getIsRecording();
+
+	public abstract void setIsRecording(Boolean isRecording);
+
+	public abstract String getRoomRecordingName();
+
+	public abstract void setRoomRecordingName(String roomRecordingName);
+
+	public abstract String getAvsettings();
+
+	public abstract void setAvsettings(String avsettings);
+
+	public abstract long getBroadCastID();
+
+	public abstract void setBroadCastID(long broadCastID);
+
+	public abstract String getPublicSID();
+
+	public abstract void setPublicSID(String publicSID);
+
+	public abstract Boolean getZombieCheckFlag();
+
+	public abstract void setZombieCheckFlag(Boolean zombieCheckFlag);
+
+	public abstract Boolean getMicMuted();
+
+	public abstract void setMicMuted(Boolean micMuted);
+
+	public abstract Boolean getCanDraw();
+
+	public abstract void setCanDraw(Boolean canDraw);
+
+	public abstract Boolean getIsBroadcasting();
+
+	public abstract void setIsBroadcasting(Boolean isBroadcasting);
+
+	public abstract Boolean getCanShare();
+
+	public abstract void setCanShare(Boolean canShare);
+
+	public abstract String getExternalUserId();
+
+	public abstract void setExternalUserId(String externalUserId);
+
+	public abstract String getExternalUserType();
+
+	public abstract void setExternalUserType(String externalUserType);
+
+	public abstract List<String> getSharerSIDs();
+
+	public abstract void setSharerSIDs(List<String> sharerSIDs);
+
+	public abstract Boolean getIsSuperModerator();
+
+	public abstract void setIsSuperModerator(Boolean isSuperModerator);
+
+	public abstract Boolean getIsScreenClient();
+
+	public abstract void setIsScreenClient(Boolean isScreenClient);
+
+	public abstract int getVWidth();
+
+	public abstract void setVWidth(int width);
+
+	public abstract int getVHeight();
+
+	public abstract void setVHeight(int height);
+
+	public abstract int getVX();
+
+	public abstract void setVX(int vx);
+
+	public abstract int getVY();
+
+	public abstract void setVY(int vy);
+
+	public abstract String getStreamPublishName();
+
+	public abstract void setStreamPublishName(String streamPublishName);
+
+	public abstract Long getFlvRecordingId();
+
+	public abstract void setFlvRecordingId(Long flvRecordingId);
+
+	public abstract Long getFlvRecordingMetaDataId();
+
+	public abstract void setFlvRecordingMetaDataId(Long flvRecordingMetaDataId);
+
+	public abstract boolean isScreenPublishStarted();
+
+	public abstract void setScreenPublishStarted(boolean screenPublishStarted);
+
+	public abstract Long getOrganization_id();
+
+	public abstract void setOrganization_id(Long organization_id);
+
+	public abstract boolean isStartRecording();
+
+	public abstract void setStartRecording(boolean startRecording);
+
+	public abstract boolean isStartStreaming();
+
+	public abstract void setStartStreaming(boolean startStreaming);
+
+	public abstract Integer getInterviewPodId();
+
+	public abstract void setInterviewPodId(Integer interviewPodId);
+
+	public abstract Boolean getCanRemote();
+
+	public abstract void setCanRemote(Boolean canRemote);
+
+	public abstract Boolean getCanGiveAudio();
+
+	public abstract void setCanGiveAudio(Boolean canGiveAudio);
+
+	public abstract Boolean getAllowRecording();
+
+	public abstract void setAllowRecording(Boolean allowRecording);
+
+	/**
+	 * @see Client#isAVClient
+	 * @return
+	 */
+	public abstract boolean getIsAVClient();
+
+	public abstract void setIsAVClient(boolean isAVClient);
+
+	public abstract boolean isStreamPublishStarted();
+
+	public abstract void setStreamPublishStarted(boolean streamPublishStarted);
+
+	/**
+	 * To improve our trace log
+	 */
+	public abstract String toString();
+
+	public abstract boolean isSipTransport();
+
+	public abstract void setSipTransport(boolean sipTransport);
+
+}
\ No newline at end of file

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ISessionStore.java (from r1435703, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ISessionStore.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ISessionStore.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java&r1=1435703&r2=1435723&rev=1435723&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/session/ISessionStore.java Sat Jan 19 21:49:18 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.conference.room;
+package org.apache.openmeetings.session;
 
 import java.util.Collection;
 import java.util.List;
@@ -26,7 +26,7 @@ import org.apache.openmeetings.data.bean
 import org.apache.openmeetings.persistence.beans.basic.Server;
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 
-public interface IClientList {
+public interface ISessionStore {
 
 	/**
 	 * Get current clients and extends the room client with its potential
@@ -36,11 +36,11 @@ public interface IClientList {
 	 * @param server TODO
 	 * @return
 	 */
-	public abstract RoomClient addClientListItem(String streamId,
+	public abstract IClientSession addClientListItem(String streamId,
 			String scopeName, Integer remotePort, String remoteAddress,
 			String swfUrl, boolean isAVClient);
 
-	public abstract Collection<RoomClient> getAllClients();
+	public abstract Collection<Client> getAllClients();
 
 	/**
 	 * Get a client by its streamId
@@ -50,7 +50,7 @@ public interface IClientList {
 	 *            TODO
 	 * @return
 	 */
-	public abstract RoomClient getClientByStreamId(String streamId,
+	public abstract Client getClientByStreamId(String streamId,
 			Server server);
 
 	/**
@@ -62,7 +62,7 @@ public interface IClientList {
 	 * @param streamId
 	 * @return
 	 */
-	public abstract RoomClient getSyncClientByStreamId(String streamId);
+	public abstract IClientSession getSyncClientByStreamId(String streamId);
 
 	/**
 	 * get a client by its publicSID and the server, 
@@ -75,7 +75,7 @@ public interface IClientList {
 	 * @param server
 	 * @return
 	 */
-	public abstract RoomClient getClientByPublicSID(String publicSID,
+	public abstract Client getClientByPublicSID(String publicSID,
 			boolean isAVClient, Server server);
 	
 	/**
@@ -100,7 +100,7 @@ public interface IClientList {
 	 * @deprecated There could be multiple users logged in with the same userid,
 	 *             then this call would return a list not a single user
 	 */
-	public abstract RoomClient getClientByUserId(Long userId);
+	public abstract IClientSession getClientByUserId(Long userId);
 
 	/**
 	 * Update the session object of the audio/video-connection and additionally
@@ -112,7 +112,7 @@ public interface IClientList {
 	 * @return
 	 */
 	public abstract Boolean updateAVClientByStreamId(String streamId,
-			RoomClient rcm);
+			Client rcm);
 
 	/**
 	 * Update the session object
@@ -128,7 +128,7 @@ public interface IClientList {
 	 * @return
 	 */
 	public abstract Boolean updateClientByStreamId(String streamId,
-			RoomClient rcm, boolean updateRoomCount);
+			Client rcm, boolean updateRoomCount);
 
 	/**
 	 * Remove a client from the session store
@@ -146,9 +146,9 @@ public interface IClientList {
 	 * @param room_id 
 	 * @return
 	 */
-	public abstract List<RoomClient> getClientListByRoom(Long room_id, Server server);
+	public abstract List<Client> getClientListByRoom(Long room_id, Server server);
 
-	public abstract Collection<RoomClient> getClientListByRoomAll(Long room_id, Server server);
+	public abstract Collection<Client> getClientListByRoomAll(Long room_id, Server server);
 
 	/**
 	 * get the current Moderator in this room
@@ -156,7 +156,7 @@ public interface IClientList {
 	 * @param roomname
 	 * @return
 	 */
-	public abstract List<RoomClient> getCurrentModeratorByRoom(Long room_id);
+	public abstract List<Client> getCurrentModeratorByRoom(Long room_id);
 
 	/**
 	 * Get list of current client sessions



Mime
View raw message