Author: sebawagner
Date: Fri Nov 2 18:21:52 2012
New Revision: 1405087
URL: http://svn.apache.org/viewvc?rev=1405087&view=rev
Log:
OPENMEETINGS-460 Enhance session object to store some meta information about
the Session object / create a Container object with server side session data to
separated the ClientSessions in locally ones and ones that are handled via the
slaves/other servers
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java
- copied, changed from r1404957,
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ClientListHashMapStore.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSession.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionUtil.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java
- copied, changed from r1404957,
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/IClientList.java
Removed:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ClientListHashMapStore.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/IClientList.java
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ChatService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceLibrary.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/FLVRecorderService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/MainService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/PollService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/WhiteBoardService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/EmoticonsManager.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/ScreenController.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/poll/TestClientListManager.java
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
(original)
+++
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
Fri Nov 2 18:21:52 2012
@@ -51,7 +51,7 @@
<!-- New Class for the Streaming Handlers -->
<bean id="web.handler"
class="org.apache.openmeetings.remote.red5.ScopeApplicationAdapter" />
- <bean id="openmeetings.ClientListManager"
class="org.apache.openmeetings.remote.red5.ClientListHashMapStore" />
+ <bean id="openmeetings.ClientListManager"
class="org.apache.openmeetings.conference.room.ClientListHashMapStore" />
<bean id="openmeetings.EmoticonsManager"
class="org.apache.openmeetings.remote.red5.EmoticonsManager" />
<bean id="openmeetings.WhiteBoardObjectListManager"
class="org.apache.openmeetings.remote.red5.WhiteBoardObjectListManager" />
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
Fri Nov 2 18:21:52 2012
@@ -28,6 +28,7 @@ import java.util.Map;
import org.apache.axis2.AxisFault;
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.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Sessionmanagement;
@@ -46,7 +47,6 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.rooms.Rooms;
import org.apache.openmeetings.persistence.beans.user.Users;
import org.apache.openmeetings.remote.ConferenceService;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.utils.math.CalendarPatterns;
import org.red5.logging.Red5LoggerFactory;
Copied:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java
(from r1404957,
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ClientListHashMapStore.java)
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ClientListHashMapStore.java&r1=1404957&r2=1405087&rev=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ClientListHashMapStore.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java
Fri Nov 2 18:21:52 2012
@@ -16,28 +16,34 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.remote.red5;
+package org.apache.openmeetings.conference.room;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.RoomClient;
import org.apache.openmeetings.data.beans.basic.SearchResult;
import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
+/**
+ * User an in-memory HashMap to store the current sessions.
+ *
+ * FIXME: Add multiple lists to enhance performance, see FIXME tagged methods
+ *
+ * @author sebawagner
+ *
+ */
public class ClientListHashMapStore implements IClientList {
- private static HashMap<String, RoomClient> clientList = new
HashMap<String, RoomClient>();
+ private static HashMap<String, ClientSession> clientList = new
HashMap<String, ClientSession>();
private static final Logger log = Red5LoggerFactory.getLogger(
ClientListHashMapStore.class,
OpenmeetingsVariables.webAppRootKey);
@@ -45,12 +51,12 @@ public class ClientListHashMapStore impl
@Autowired
private ManageCryptStyle manageCryptStyle;
- /**
- * Get current clients and extends the room client with its potential
- * audio/video client and settings
+ /*
+ * (non-Javadoc)
*
- * @param room_id
- * @return
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getRoomClients(java.lang
+ * .Long)
*/
public List<RoomClient> getRoomClients(Long room_id) {
try {
@@ -61,6 +67,14 @@ public class ClientListHashMapStore impl
return null;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#addClientListItem(java
+ * .lang.String, java.lang.String, java.lang.Integer, java.lang.String,
+ * java.lang.String, boolean)
+ */
public synchronized RoomClient addClientListItem(String streamId,
String scopeName, Integer remotePort, String
remoteAddress,
String swfUrl, boolean isAVClient) {
@@ -87,7 +101,9 @@ public class ClientListHashMapStore impl
return null;
}
- clientList.put(rcm.getStreamid(), rcm);
+ clientList.put(
+
ClientSessionUtil.getClientSessionKey(null,
+ rcm.getStreamid()), new
ClientSession(null, rcm));
return rcm;
} catch (Exception err) {
@@ -96,41 +112,61 @@ public class ClientListHashMapStore impl
return null;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.openmeetings.remote.red5.IClientList#getAllClients()
+ */
public synchronized Collection<RoomClient> getAllClients() {
- return clientList.values();
+ // only locally clients interesting
+ List<RoomClient> rclList = new ArrayList<RoomClient>();
+ for (ClientSession cSession : clientList.values()) {
+ if (cSession.getServer() == null) {
+ rclList.add(cSession.getRoomClient());
+ }
+ }
+ return rclList;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getClientByStreamId(java
+ * .lang.String)
+ */
public synchronized RoomClient getClientByStreamId(String streamId) {
try {
- if (!clientList.containsKey(streamId)) {
+ String uniqueKey =
ClientSessionUtil.getClientSessionKey(null,
+ streamId);
+ if (!clientList.containsKey(uniqueKey)) {
log.debug("Tried to get a non existing Client "
+ streamId);
return null;
}
- return clientList.get(streamId);
+ return clientList.get(uniqueKey).getRoomClient();
} catch (Exception err) {
log.error("[getClientByStreamId]", err);
}
return null;
}
- /**
- * Additionally checks if the client receives sync events
- *
- * Sync events will no be broadcasted to:
- * - Screensharing users
- * - Audio/Video connections only
+ /*
+ * (non-Javadoc)
*
- * @param streamId
- * @return
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getSyncClientByStreamId
+ * (java.lang.String)
*/
public synchronized RoomClient getSyncClientByStreamId(String streamId)
{
try {
- if (!clientList.containsKey(streamId)) {
+ String uniqueKey =
ClientSessionUtil.getClientSessionKey(null,
+ streamId);
+ if (!clientList.containsKey(uniqueKey)) {
log.debug("Tried to get a non existing Client "
+ streamId);
return null;
}
- RoomClient rcl = clientList.get(streamId);
+ RoomClient rcl =
clientList.get(uniqueKey).getRoomClient();
if (rcl == null) {
return null;
@@ -140,18 +176,25 @@ public class ClientListHashMapStore impl
return null;
}
- return clientList.get(streamId);
+ return clientList.get(uniqueKey).getRoomClient();
} catch (Exception err) {
log.error("[getClientByStreamId]", err);
}
return null;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.openmeetings.remote.red5.IClientList#getClientByPublicSID(
+ * java.lang.String, boolean)
+ */
public RoomClient getClientByPublicSID(String publicSID, boolean
isAVClient) {
try {
- for (Iterator<String> iter =
clientList.keySet().iterator(); iter
- .hasNext();) {
- RoomClient rcl = clientList.get(iter.next());
+ for (ClientSession cSession : clientList.values()) {
+
+ RoomClient rcl = cSession.getRoomClient();
if (!rcl.getPublicSID().equals(publicSID)) {
continue;
@@ -168,13 +211,18 @@ public class ClientListHashMapStore impl
return null;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getClientByUserId(java
+ * .lang.Long)
+ */
public synchronized RoomClient getClientByUserId(Long userId) {
try {
- for (Iterator<String> iter =
clientList.keySet().iterator(); iter
- .hasNext();) {
- RoomClient rcl = clientList.get(iter.next());
- if (rcl.getUser_id().equals(userId)) {
- return rcl;
+ for (ClientSession cSession : clientList.values()) {
+ if
(cSession.getRoomClient().getUser_id().equals(userId)) {
+ return cSession.getRoomClient();
}
}
} catch (Exception err) {
@@ -183,12 +231,12 @@ public class ClientListHashMapStore impl
return null;
}
- /**
- * Update the session object of the audio/video-connection and
additionally swap the
- * values to the session object of the user that holds the full session
object
- * @param streamId
- * @param rcm
- * @return
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#updateAVClientByStreamId
+ * (java.lang.String,
org.apache.openmeetings.conference.room.RoomClient)
*/
public synchronized Boolean updateAVClientByStreamId(String streamId,
RoomClient rcm) {
@@ -203,8 +251,12 @@ public class ClientListHashMapStore impl
rclUsual.setVWidth(rcm.getVWidth());
rclUsual.setVX(rcm.getVX());
rclUsual.setVY(rcm.getVY());
- if
(clientList.containsKey(rclUsual.getStreamid())) {
- clientList.put(rclUsual.getStreamid(),
rclUsual);
+ String uniqueKey =
ClientSessionUtil.getClientSessionKey(null,
+ rclUsual.getStreamid());
+ ClientSession cSession =
clientList.get(uniqueKey);
+ if (cSession != null) {
+ cSession.setRoomClient(rclUsual);
+ clientList.put(uniqueKey, cSession);
} else {
log.debug("Tried to update a non
existing Client " + rclUsual.getStreamid());
}
@@ -217,11 +269,22 @@ public class ClientListHashMapStore impl
return null;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#updateClientByStreamId
+ * (java.lang.String,
org.apache.openmeetings.conference.room.RoomClient)
+ */
public synchronized Boolean updateClientByStreamId(String streamId,
RoomClient rcm) {
try {
- if (clientList.containsKey(streamId)) {
- clientList.put(streamId, rcm);
+ String uniqueKey =
ClientSessionUtil.getClientSessionKey(null,
+ streamId);
+ ClientSession cSession = clientList.get(uniqueKey);
+ if (cSession != null) {
+ cSession.setRoomClient(rcm);
+ clientList.put(uniqueKey, cSession);
return true;
} else {
log.debug("Tried to update a non existing
Client " + streamId);
@@ -233,11 +296,19 @@ public class ClientListHashMapStore impl
return null;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#removeClient(java.lang
+ * .String)
+ */
public synchronized Boolean removeClient(String streamId) {
try {
- if (clientList.containsKey(streamId)) {
- clientList.remove(streamId);
- // log.debug(":: removeClient
::"+clientList.size());
+ String uniqueKey =
ClientSessionUtil.getClientSessionKey(null,
+ streamId);
+ if (clientList.containsKey(uniqueKey)) {
+ clientList.remove(uniqueKey);
return true;
} else {
log.debug("Tried to remove a non existing
Client " + streamId);
@@ -249,22 +320,22 @@ public class ClientListHashMapStore impl
return null;
}
- /**
- * Get all ClientList Objects of that room and domain This Function is
- * needed cause it is invoked internally AFTER the current user has been
- * already removed from the ClientList to see if the Room is empty
again and
- * the PollList can be removed
+ /*
+ * (non-Javadoc)
*
- * @return
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getClientListByRoom(java
+ * .lang.Long)
*/
public synchronized List<RoomClient> getClientListByRoom(
Long room_id) {
List<RoomClient> roomClientList = new ArrayList<RoomClient>();
try {
- for (Iterator<String> iter =
clientList.keySet().iterator(); iter
- .hasNext();) {
- String key = iter.next();
- RoomClient rcl = clientList.get(key);
+
+ // FIXME: Enhance performance by using multiple lists
+ for (ClientSession cSession : clientList.values()) {
+
+ RoomClient rcl = cSession.getRoomClient();
// client initialized and same room
if (rcl.getRoom_id() == null ||
!room_id.equals(rcl.getRoom_id())) {
@@ -289,15 +360,20 @@ public class ClientListHashMapStore impl
return roomClientList;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getClientListByRoomAll
+ * (java.lang.Long)
+ */
public synchronized List<RoomClient> getClientListByRoomAll(
Long room_id) {
List<RoomClient> roomClientList = new ArrayList<RoomClient>();
try {
- for (Iterator<String> iter =
clientList.keySet().iterator(); iter
- .hasNext();) {
- String key = iter.next();
- // log.debug("getClientList key: "+key);
- RoomClient rcl = clientList.get(key);
+ // FIXME: Enhance performance by using multiple lists
+ for (ClientSession cSession : clientList.values()) {
+ RoomClient rcl = cSession.getRoomClient();
if (rcl.getRoom_id() != null
&&
rcl.getRoom_id().equals(room_id)) {
@@ -311,22 +387,20 @@ public class ClientListHashMapStore impl
return roomClientList;
}
- /**
- * get the current Moderator in this room
+ /*
+ * (non-Javadoc)
*
- * @param roomname
- * @return
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getCurrentModeratorByRoom
+ * (java.lang.Long)
*/
public synchronized List<RoomClient> getCurrentModeratorByRoom(Long
room_id) {
List<RoomClient> rclList = new LinkedList<RoomClient>();
- for (Iterator<String> iter = clientList.keySet().iterator();
iter
- .hasNext();) {
- String key = iter.next();
- RoomClient rcl = clientList.get(key);
- //
- log.debug("*..*unsetModerator ClientList key: " +
rcl.getStreamid());
- //
+ // FIXME: Enhance performance by using multiple lists
+ for (ClientSession cSession : clientList.values()) {
+ // log.debug("getClientList key: "+key);
+ RoomClient rcl = cSession.getRoomClient();
// Check if the Client is in the same room
if (room_id != null && room_id.equals(rcl.getRoom_id())
&& rcl.getIsMod()) {
@@ -338,6 +412,13 @@ public class ClientListHashMapStore impl
return rclList;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getListByStartAndMax(int,
+ * int, java.lang.String, boolean)
+ */
public synchronized SearchResult<RoomClient> getListByStartAndMax(int
start, int max,
String orderby, boolean asc) {
SearchResult<RoomClient> sResult = new
SearchResult<RoomClient>();
@@ -346,11 +427,9 @@ public class ClientListHashMapStore impl
LinkedList<RoomClient> myList = new LinkedList<RoomClient>();
int i = 0;
- Iterator<String> iter = clientList.keySet().iterator();
- while (iter.hasNext()) {
- String key = iter.next();
+ for (ClientSession cSession : clientList.values()) {
if (i >= start) {
- myList.add(clientList.get(key));
+ myList.add(cSession.getRoomClient());
}
if (i > max) {
break;
@@ -362,6 +441,11 @@ public class ClientListHashMapStore impl
return sResult;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.apache.openmeetings.remote.red5.IClientList#removeAllClients()
+ */
public synchronized void removeAllClients() {
try {
clientList.clear();
@@ -370,7 +454,12 @@ public class ClientListHashMapStore impl
}
}
-
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getRecordingCount(long)
+ */
public long getRecordingCount(long roomId) {
List<RoomClient> currentClients =
this.getClientListByRoom(roomId);
int numberOfRecordingUsers = 0;
@@ -382,6 +471,12 @@ public class ClientListHashMapStore impl
return numberOfRecordingUsers;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ *
org.apache.openmeetings.remote.red5.IClientList#getPublisingCount(long)
+ */
public long getPublisingCount(long roomId) {
List<RoomClient> currentClients =
this.getClientListByRoom(roomId);
int numberOfPublishingUsers = 0;
Added:
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/conference/room/ClientSession.java?rev=1405087&view=auto
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSession.java
(added)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSession.java
Fri Nov 2 18:21:52 2012
@@ -0,0 +1,51 @@
+package org.apache.openmeetings.conference.room;
+
+import org.apache.openmeetings.persistence.beans.basic.Server;
+
+/**
+ *
+ * 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
+ * big.
+ *
+ * @author sebawagner
+ *
+ */
+public class ClientSession {
+
+ /**
+ * if null, the connection is handled on the master, otherwise the
+ * connection is handled via a slave of the cluster
+ */
+ private Server server;
+
+ private RoomClient roomClient;
+
+ public ClientSession(Server server, RoomClient roomClient) {
+ super();
+ this.server = server;
+ this.roomClient = roomClient;
+ }
+
+ /**
+ * @see ClientSession#server
+ */
+ public Server getServer() {
+ return server;
+ }
+
+ public void setServer(Server server) {
+ this.server = server;
+ }
+
+ public RoomClient getRoomClient() {
+ return roomClient;
+ }
+
+ public void setRoomClient(RoomClient roomClient) {
+ this.roomClient = roomClient;
+ }
+
+}
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionUtil.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionUtil.java?rev=1405087&view=auto
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionUtil.java
(added)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientSessionUtil.java
Fri Nov 2 18:21:52 2012
@@ -0,0 +1,28 @@
+package org.apache.openmeetings.conference.room;
+
+import org.apache.openmeetings.persistence.beans.basic.Server;
+
+/**
+ * Utils generate keys and hashs for the {@link ClientSession} and
+ * {@link RoomClient}
+ *
+ * @author swagner
+ *
+ */
+public class ClientSessionUtil {
+
+ /**
+ * produce a unique key based on the stream-id and server
+ *
+ * @param server
+ * @param streamId
+ * @return
+ */
+ public static String getClientSessionKey(Server server, String
streamId) {
+ if (server == null) {
+ return "__" + streamId;
+ }
+ return "_" + server.getId() + "_" + streamId;
+ }
+
+}
Copied:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java
(from r1404957,
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/IClientList.java)
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/IClientList.java&r1=1404957&r2=1405087&rev=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/IClientList.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/IClientList.java
Fri Nov 2 18:21:52 2012
@@ -16,12 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.remote.red5;
+package org.apache.openmeetings.conference.room;
import java.util.Collection;
import java.util.List;
-import org.apache.openmeetings.conference.room.RoomClient;
import org.apache.openmeetings.data.beans.basic.SearchResult;
public interface IClientList {
@@ -41,6 +40,12 @@ public interface IClientList {
public abstract Collection<RoomClient> getAllClients();
+ /**
+ * Get a client by its streamId
+ *
+ * @param streamId
+ * @return
+ */
public abstract RoomClient getClientByStreamId(String streamId);
/**
@@ -73,6 +78,12 @@ public interface IClientList {
public abstract Boolean updateClientByStreamId(String streamId,
RoomClient rcm);
+ /**
+ * Remove a client from the session store
+ *
+ * @param streamId
+ * @return
+ */
public abstract Boolean removeClient(String streamId);
/**
Modified:
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/conference/room/RoomClient.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java
Fri Nov 2 18:21:52 2012
@@ -104,6 +104,7 @@ public class RoomClient implements Seria
/**
* client IP
*/
+ // FIXME: Move to {@link ClientSession}
private String userip;
/**
* client Port
@@ -144,6 +145,7 @@ public class RoomClient implements Seria
* n - no av only static Image
*/
private String avsettings = "";
+ // FIXME: Move to {@link ClientSession}
private String swfurl;
private Boolean isRecording = false;
private String roomRecordingName;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Sessionmanagement.java
Fri Nov 2 18:21:52 2012
@@ -32,9 +32,9 @@ import javax.persistence.criteria.Predic
import javax.persistence.criteria.Root;
import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.conference.room.IClientList;
import org.apache.openmeetings.conference.room.RoomClient;
import org.apache.openmeetings.persistence.beans.basic.Sessiondata;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
Fri Nov 2 18:21:52 2012
@@ -281,5 +281,5 @@ public class ServerDao implements IDataP
return -1L;
}
-
+
}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
Fri Nov 2 18:21:52 2012
@@ -32,6 +32,7 @@ import javax.persistence.criteria.Criter
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
+import org.apache.openmeetings.conference.room.IClientList;
import org.apache.openmeetings.data.basic.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
import org.apache.openmeetings.data.beans.basic.SearchResult;
@@ -45,7 +46,6 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.rooms.Rooms_Organisation;
import org.apache.openmeetings.persistence.beans.sip.OpenXGReturnObject;
import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.sip.api.impl.asterisk.AsteriskDbSipClient;
import org.apache.openmeetings.sip.api.request.SIPCreateConferenceRequest;
import org.apache.openmeetings.sip.api.result.SipCreateConferenceRequestResult;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
Fri Nov 2 18:21:52 2012
@@ -38,6 +38,7 @@ import javax.persistence.criteria.Root;
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.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Fieldmanagment;
@@ -58,7 +59,6 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.user.Userdata;
import org.apache.openmeetings.persistence.beans.user.Userlevel;
import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.sip.xmlrpc.OpenXGHttpClient;
import org.apache.openmeetings.templates.ResetPasswordTemplate;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ChatService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ChatService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ChatService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ChatService.java
Fri Nov 2 18:21:52 2012
@@ -30,9 +30,9 @@ 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.remote.red5.EmoticonsManager;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.utils.stringhandlers.ChatString;
import org.red5.logging.Red5LoggerFactory;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceLibrary.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceLibrary.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceLibrary.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceLibrary.java
Fri Nov 2 18:21:52 2012
@@ -28,6 +28,7 @@ import java.util.Set;
import org.apache.commons.transaction.util.FileHelper;
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.WhiteboardManagement;
import org.apache.openmeetings.data.basic.AuthLevelmanagement;
@@ -41,7 +42,6 @@ import org.apache.openmeetings.documents
import org.apache.openmeetings.documents.LibraryWmlLoader;
import org.apache.openmeetings.documents.LoadLibraryPresentation;
import org.apache.openmeetings.persistence.beans.files.FileExplorerItem;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.utils.OmFileHelper;
import org.apache.openmeetings.utils.crypt.MD5;
import org.red5.logging.Red5LoggerFactory;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
Fri Nov 2 18:21:52 2012
@@ -28,6 +28,7 @@ import java.util.Map;
import java.util.TimeZone;
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.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Sessionmanagement;
@@ -44,7 +45,6 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.rooms.Rooms;
import org.apache.openmeetings.persistence.beans.rooms.Rooms_Organisation;
import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.utils.math.CalendarPatterns;
import org.apache.openmeetings.utils.math.TimezoneUtil;
import org.red5.logging.Red5LoggerFactory;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/FLVRecorderService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/FLVRecorderService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/FLVRecorderService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/FLVRecorderService.java
Fri Nov 2 18:21:52 2012
@@ -27,6 +27,7 @@ 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.data.basic.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Sessionmanagement;
@@ -47,7 +48,6 @@ import org.apache.openmeetings.data.user
import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording;
import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingLog;
import
org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.utils.OmFileHelper;
import org.apache.openmeetings.utils.math.CalendarPatterns;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/MainService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/MainService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/MainService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/MainService.java
Fri Nov 2 18:21:52 2012
@@ -28,6 +28,7 @@ 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.data.basic.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Navimanagement;
@@ -54,7 +55,6 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.basic.Sessiondata;
import org.apache.openmeetings.persistence.beans.user.Userdata;
import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.rss.LoadAtomRssFeed;
import org.red5.logging.Red5LoggerFactory;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/PollService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/PollService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/PollService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/PollService.java
Fri Nov 2 18:21:52 2012
@@ -24,13 +24,13 @@ import java.util.List;
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.data.conference.PollManagement;
import org.apache.openmeetings.data.user.Usermanagement;
import org.apache.openmeetings.persistence.beans.poll.PollType;
import org.apache.openmeetings.persistence.beans.poll.RoomPoll;
import org.apache.openmeetings.persistence.beans.poll.RoomPollAnswers;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.red5.logging.Red5LoggerFactory;
import org.red5.server.api.IConnection;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
Fri Nov 2 18:21:52 2012
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.TimeZone;
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.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Fieldmanagment;
@@ -57,7 +58,6 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.user.Salutations;
import org.apache.openmeetings.persistence.beans.user.UserContacts;
import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.templates.RequestContactConfirmTemplate;
import org.apache.openmeetings.templates.RequestContactTemplate;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/WhiteBoardService.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/WhiteBoardService.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/WhiteBoardService.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/WhiteBoardService.java
Fri Nov 2 18:21:52 2012
@@ -29,6 +29,7 @@ import java.util.LinkedList;
import java.util.Map;
import org.apache.commons.collections.ComparatorUtils;
+import org.apache.openmeetings.conference.room.IClientList;
import org.apache.openmeetings.conference.room.RoomClient;
import org.apache.openmeetings.conference.whiteboard.Cliparts;
import org.apache.openmeetings.conference.whiteboard.WhiteboardObject;
@@ -37,7 +38,6 @@ import org.apache.openmeetings.conferenc
import org.apache.openmeetings.data.basic.AuthLevelmanagement;
import org.apache.openmeetings.data.basic.Sessionmanagement;
import org.apache.openmeetings.data.user.Usermanagement;
-import org.apache.openmeetings.remote.red5.IClientList;
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.remote.red5.WhiteBoardObjectListManager;
import org.apache.openmeetings.remote.red5.WhiteBoardObjectListManagerById;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/EmoticonsManager.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/EmoticonsManager.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/EmoticonsManager.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/EmoticonsManager.java
Fri Nov 2 18:21:52 2012
@@ -32,7 +32,16 @@ import org.slf4j.Logger;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.XppDriver;
+/**
+ * Load the list of available emoticons from the XML file and store them in
+ * memory to load faster, {@link #loadEmot()} is only called once: during
server
+ * startup
+ *
+ * @author sebawagner
+ *
+ */
public class EmoticonsManager {
+
private static final Logger log =
Red5LoggerFactory.getLogger(EmoticonsManager.class,
OpenmeetingsVariables.webAppRootKey);
private LinkedList<LinkedList<String>> emotfilesList = new
LinkedList<LinkedList<String>>();
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=1405087&r1=1405086&r2=1405087&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
Fri Nov 2 18:21:52 2012
@@ -30,6 +30,7 @@ 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;
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=1405087&r1=1405086&r2=1405087&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
Fri Nov 2 18:21:52 2012
@@ -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.remote.red5.IClientList;
import org.apache.openmeetings.utils.OmFileHelper;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/poll/TestClientListManager.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/poll/TestClientListManager.java?rev=1405087&r1=1405086&r2=1405087&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/poll/TestClientListManager.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/poll/TestClientListManager.java
Fri Nov 2 18:21:52 2012
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertNot
import java.util.Random;
-import org.apache.openmeetings.remote.red5.IClientList;
+import org.apache.openmeetings.conference.room.IClientList;
import org.apache.openmeetings.test.AbstractOpenmeetingsSpringTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;