You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/04/18 17:51:44 UTC

svn commit: r1791817 - in /openmeetings/application: branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/ branches/3.2.x/openmeetings-webser...

Author: solomax
Date: Tue Apr 18 17:51:44 2017
New Revision: 1791817

URL: http://svn.apache.org/viewvc?rev=1791817&view=rev
Log:
[OPENMEETINGS-1630] room counters are fixed

Added:
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java
      - copied, changed from r1791816, openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java
      - copied, changed from r1791816, openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java
Removed:
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java
Modified:
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
    openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
    openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
    openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
    openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java

Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java Tue Apr 18 17:51:44 2017
@@ -29,6 +29,7 @@ import javax.xml.bind.annotation.XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ServiceResult implements Serializable {
 	private static final long serialVersionUID = 1L;
+	public static ServiceResult NO_PERMISSION = new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
 	private long code;
 	private String message;
 	private String type;
@@ -39,7 +40,7 @@ public class ServiceResult implements Se
 	}
 
 	public ServiceResult() {}
-	
+
 	public ServiceResult(long code, String message, String type) {
 		super();
 		this.code = code;
@@ -53,7 +54,7 @@ public class ServiceResult implements Se
 		this.message = message;
 		this.type = type.name();
 	}
-	
+
 	public long getCode() {
 		return code;
 	}

Copied: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java (from r1791816, openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java?p2=openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java&p1=openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java&r1=1791816&r2=1791817&rev=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java Tue Apr 18 17:51:44 2017
@@ -18,35 +18,48 @@
  */
 package org.apache.openmeetings.db.dto.room;
 
-public class RoomCountBean {
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class RoomCountDTO {
 	private Long roomId;
 	private String roomName;
 	private int roomCount;
 	private long maxUser;
-	
-	public RoomCountBean() {}
-	
+
+	public RoomCountDTO() {}
+
 	public Long getRoomId() {
 		return roomId;
 	}
+
 	public void setRoomId(Long roomId) {
 		this.roomId = roomId;
 	}
+
 	public String getRoomName() {
 		return roomName;
 	}
+
 	public void setRoomName(String roomName) {
 		this.roomName = roomName;
 	}
+
 	public int getRoomCount() {
 		return roomCount;
 	}
+
 	public void setRoomCount(int roomCount) {
 		this.roomCount = roomCount;
 	}
+
 	public long getMaxUser() {
 		return maxUser;
 	}
+
 	public void setMaxUser(long maxUser) {
 		this.maxUser = maxUser;
 	}

Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Tue Apr 18 17:51:44 2017
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.webservice;
 
+import static org.apache.openmeetings.db.dto.basic.ServiceResult.NO_PERMISSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 
@@ -111,7 +112,7 @@ public class FileWebService {
 				fileDao.delete(f);
 				return new ServiceResult(id, "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception e) {
 			log.error("[delete] ", e);

Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java Tue Apr 18 17:51:44 2017
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.webservice;
 
+import static org.apache.openmeetings.db.dto.basic.ServiceResult.NO_PERMISSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 
@@ -106,7 +107,7 @@ public class GroupWebService {
 			return new ServiceResult(groupDao.update(o, userId).getId(), "Success", Type.SUCCESS);
 		} else {
 			log.error("Could not create group");
-			return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+			return NO_PERMISSION;
 		}
 	}
 
@@ -161,7 +162,7 @@ public class GroupWebService {
 				}
 				return new ServiceResult(userid, "Success", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("addUser", err);
@@ -205,7 +206,7 @@ public class GroupWebService {
 				}
 				return new ServiceResult(userid, "Success", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("addUser", err);
@@ -253,7 +254,7 @@ public class GroupWebService {
 				}
 				return new ServiceResult(0L, "Not added", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("[addRoom]", err);
@@ -333,7 +334,7 @@ public class GroupWebService {
 
 				return new ServiceResult(id, "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("deleteUserById", err);

Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java Tue Apr 18 17:51:44 2017
@@ -39,18 +39,18 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.room.IInvitationManager;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.room.InvitationDTO;
-import org.apache.openmeetings.db.dto.room.RoomCountBean;
+import org.apache.openmeetings.db.dto.room.RoomCountDTO;
 import org.apache.openmeetings.db.dto.room.RoomDTO;
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
@@ -58,8 +58,10 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.message.RoomMessage;
 import org.apache.openmeetings.webservice.error.ServiceException;
+import org.apache.wicket.Application;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -88,8 +90,6 @@ public class RoomWebService {
 	@Autowired
 	private IInvitationManager invitationManager;
 	@Autowired
-	private ISessionManager sessionManager;
-	@Autowired
 	private RoomDao roomDao;
 
 	/**
@@ -420,19 +420,20 @@ public class RoomWebService {
 	@WebMethod
 	@GET
 	@Path("/counters")
-	public List<RoomCountBean> counters(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @QueryParam("id") List<Long> ids) throws ServiceException {
-		List<RoomCountBean> roomBeans = new ArrayList<>();
+	public List<RoomCountDTO> counters(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @QueryParam("id") List<Long> ids) throws ServiceException {
+		List<RoomCountDTO> roomBeans = new ArrayList<>();
 		try {
 			Sessiondata sd = sessionDao.check(sid);
 			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
+				IApplication app = (IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName);
 				List<Room> rooms = roomDao.get(ids);
 
 				for (Room room : rooms) {
-					RoomCountBean rCountBean = new RoomCountBean();
+					RoomCountDTO rCountBean = new RoomCountDTO();
 					rCountBean.setRoomId(room.getId());
 					rCountBean.setRoomName(room.getName());
 					rCountBean.setMaxUser(room.getNumberOfPartizipants());
-					rCountBean.setRoomCount(sessionManager.getClientListByRoom(room.getId()).size());
+					rCountBean.setRoomCount(app.getOmRoomClients(room.getId()).size());
 
 					roomBeans.add(rCountBean);
 				}

Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Tue Apr 18 17:51:44 2017
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.webservice;
 
+import static org.apache.openmeetings.db.dto.basic.ServiceResult.NO_PERMISSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_NAME;
@@ -41,7 +42,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
-import org.apache.openmeetings.core.session.SessionManager;
+import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
@@ -59,20 +60,22 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OmException;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.webservice.cluster.UserService;
 import org.apache.openmeetings.webservice.error.ServiceException;
+import org.apache.wicket.Application;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
- * 
+ *
  * The Service contains methods to login and create hash to directly enter
  * conference rooms, recordings or the application in general
- * 
+ *
  * @author sebawagner
- * 
+ *
  */
 @WebService(serviceName = USER_SERVICE_NAME, targetNamespace = TNS, portName = USER_SERVICE_PORT_NAME)
 @Features(features = "org.apache.cxf.feature.LoggingFeature")
@@ -90,8 +93,6 @@ public class UserWebService implements U
 	private UserDao userDao;
 	@Autowired
 	private SessiondataDao sessionDao;
-	@Autowired
-	private SessionManager sessionManager;
 
 	/* (non-Javadoc)
 	 * @see org.apache.openmeetings.webservice.cluster.UserService#login(java.lang.String, java.lang.String)
@@ -107,7 +108,7 @@ public class UserWebService implements U
 			if (u == null) {
 				return new ServiceResult(-1L, "Login failed", Type.ERROR);
 			}
-			
+
 			Sessiondata sd = sessionDao.create(u.getId(), u.getLanguageId());
 			log.debug("Login user SID : " + sd.getSessionId());
 			return new ServiceResult(u.getId(), sd.getSessionId(), Type.SUCCESS);
@@ -207,7 +208,7 @@ public class UserWebService implements U
 	}
 
 	//FIXME no update
-	
+
 	/* (non-Javadoc)
 	 * @see org.apache.openmeetings.webservice.cluster.UserService#delete(java.lang.String, long)
 	 */
@@ -223,7 +224,7 @@ public class UserWebService implements U
 
 				return new ServiceResult(id, "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("deleteUserById", err);
@@ -253,7 +254,7 @@ public class UserWebService implements U
 
 				return new ServiceResult(user.getId(), "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("deleteUserByExternalUserIdAndType", err);
@@ -305,7 +306,7 @@ public class UserWebService implements U
 					return new ServiceResult(0, hash, Type.SUCCESS);
 				}
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("getRoomHash", err);
@@ -326,10 +327,10 @@ public class UserWebService implements U
 			Sessiondata sd = sessionDao.check(sid);
 			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
 				Boolean success = userManagement.kickUserByPublicSID(sid, publicSID);
-	
+
 				return new ServiceResult(Boolean.TRUE.equals(success) ? 1L : 0L, Boolean.TRUE.equals(success) ? "deleted" : "not deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("[kick]", err);
@@ -344,11 +345,12 @@ public class UserWebService implements U
 	@WebMethod
 	@GET
 	@Path("/count/{roomid}")
-	public int count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId) {
+	public ServiceResult count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId) {
 		Sessiondata sd = sessionDao.check(sid);
 		if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-			return sessionManager.getClientListByRoom(roomId).size();
+			IApplication app = (IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName);
+			return new ServiceResult(app.getOmRoomClients(roomId).size(), "count", Type.SUCCESS);
 		}
-		return -1;
+		return NO_PERMISSION;
 	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java Tue Apr 18 17:51:44 2017
@@ -45,33 +45,33 @@ public interface UserService {
 	/**
 	 * @param user - login or email of Openmeetings user with admin or SOAP-rights
 	 * @param pass - password
-	 *            
+	 *
 	 * @return - {@link ServiceResult} with error code or SID and userId
 	 */
 	ServiceResult login(@WebParam(name="user") @QueryParam("user") String user, @WebParam(name="pass") @QueryParam("pass") String pass);
 
 	/**
 	 * Lists all users in the system!
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
-	 *            
+	 *
 	 * @return - list of users
 	 * @throws ServiceException
 	 */
 	List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException;
-	
+
 	/**
 	 * Adds a new User like through the Frontend, but also does activates the
 	 * Account To do SSO see the methods to create a hash and use those ones!
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param user
 	 *            user object
 	 * @param confirm
 	 *            whatever or not to send email, leave empty for auto-send
-	 *            
+	 *
 	 * @return - id of the user added or error code
 	 * @throws ServiceException
 	 */
@@ -82,30 +82,30 @@ public interface UserService {
 			) throws ServiceException;
 
 	/**
-	 * 
+	 *
 	 * Delete a certain user by its id
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param id
 	 *            the openmeetings user id
-	 *            
+	 *
 	 * @return - id of the user deleted, error code otherwise
 	 * @throws ServiceException
 	 */
 	ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException;
 
 	/**
-	 * 
+	 *
 	 * Delete a certain user by its external user id
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param externalId
 	 *            externalUserId
 	 * @param externalType
 	 *            externalUserId
-	 *            
+	 *
 	 * @return - id of user deleted, or error code
 	 * @throws ServiceException
 	 */
@@ -119,14 +119,14 @@ public interface UserService {
 	 * Description: sets the SessionObject for a certain SID, after setting this
 	 * Session-Object you can use the SID + a RoomId to enter any Room. ...
 	 * Session-Hashs are deleted 15 minutes after the creation if not used.
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param user
 	 *            user details to set
 	 * @param options
 	 *            room options to set
-	 *            
+	 *
 	 * @return - secure hash or error code
 	 * @throws ServiceException
 	 */
@@ -138,7 +138,7 @@ public interface UserService {
 
 	/**
 	 * Kick a user by its public SID
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param publicSID
@@ -151,10 +151,10 @@ public interface UserService {
 	/**
 	 * Returns the count of users currently in the Room with given id
 	 * No admin rights are necessary for this call
-	 * 
+	 *
 	 * @param sid The SID from UserService.getSession
 	 * @param roomId id of the room to get users
 	 * @return number of users as int
 	 */
-	int count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId);
+	ServiceResult count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId);
 }

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java Tue Apr 18 17:51:44 2017
@@ -29,6 +29,7 @@ import javax.xml.bind.annotation.XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ServiceResult implements Serializable {
 	private static final long serialVersionUID = 1L;
+	public static ServiceResult NO_PERMISSION = new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
 	private long code;
 	private String message;
 	private String type;
@@ -39,7 +40,7 @@ public class ServiceResult implements Se
 	}
 
 	public ServiceResult() {}
-	
+
 	public ServiceResult(long code, String message, String type) {
 		super();
 		this.code = code;
@@ -53,7 +54,7 @@ public class ServiceResult implements Se
 		this.message = message;
 		this.type = type.name();
 	}
-	
+
 	public long getCode() {
 		return code;
 	}

Copied: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java (from r1791816, openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java?p2=openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java&p1=openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java&r1=1791816&r2=1791817&rev=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountBean.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomCountDTO.java Tue Apr 18 17:51:44 2017
@@ -18,35 +18,48 @@
  */
 package org.apache.openmeetings.db.dto.room;
 
-public class RoomCountBean {
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class RoomCountDTO {
 	private Long roomId;
 	private String roomName;
 	private int roomCount;
 	private long maxUser;
-	
-	public RoomCountBean() {}
-	
+
+	public RoomCountDTO() {}
+
 	public Long getRoomId() {
 		return roomId;
 	}
+
 	public void setRoomId(Long roomId) {
 		this.roomId = roomId;
 	}
+
 	public String getRoomName() {
 		return roomName;
 	}
+
 	public void setRoomName(String roomName) {
 		this.roomName = roomName;
 	}
+
 	public int getRoomCount() {
 		return roomCount;
 	}
+
 	public void setRoomCount(int roomCount) {
 		this.roomCount = roomCount;
 	}
+
 	public long getMaxUser() {
 		return maxUser;
 	}
+
 	public void setMaxUser(long maxUser) {
 		this.maxUser = maxUser;
 	}

Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Tue Apr 18 17:51:44 2017
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.webservice;
 
+import static org.apache.openmeetings.db.dto.basic.ServiceResult.NO_PERMISSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 
@@ -111,7 +112,7 @@ public class FileWebService {
 				fileDao.delete(f);
 				return new ServiceResult(id, "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception e) {
 			log.error("[delete] ", e);

Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java Tue Apr 18 17:51:44 2017
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.webservice;
 
+import static org.apache.openmeetings.db.dto.basic.ServiceResult.NO_PERMISSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 
@@ -106,7 +107,7 @@ public class GroupWebService {
 			return new ServiceResult(groupDao.update(o, userId).getId(), "Success", Type.SUCCESS);
 		} else {
 			log.error("Could not create group");
-			return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+			return NO_PERMISSION;
 		}
 	}
 
@@ -161,7 +162,7 @@ public class GroupWebService {
 				}
 				return new ServiceResult(userid, "Success", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("addUser", err);
@@ -205,7 +206,7 @@ public class GroupWebService {
 				}
 				return new ServiceResult(userid, "Success", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("addUser", err);
@@ -253,7 +254,7 @@ public class GroupWebService {
 				}
 				return new ServiceResult(0L, "Not added", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("[addRoom]", err);
@@ -333,7 +334,7 @@ public class GroupWebService {
 
 				return new ServiceResult(id, "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("deleteUserById", err);

Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java Tue Apr 18 17:51:44 2017
@@ -39,18 +39,18 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.room.IInvitationManager;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.room.InvitationDTO;
-import org.apache.openmeetings.db.dto.room.RoomCountBean;
+import org.apache.openmeetings.db.dto.room.RoomCountDTO;
 import org.apache.openmeetings.db.dto.room.RoomDTO;
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
@@ -58,8 +58,10 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.util.message.RoomMessage;
 import org.apache.openmeetings.webservice.error.ServiceException;
+import org.apache.wicket.Application;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -88,8 +90,6 @@ public class RoomWebService {
 	@Autowired
 	private IInvitationManager invitationManager;
 	@Autowired
-	private ISessionManager sessionManager;
-	@Autowired
 	private RoomDao roomDao;
 
 	/**
@@ -420,19 +420,20 @@ public class RoomWebService {
 	@WebMethod
 	@GET
 	@Path("/counters")
-	public List<RoomCountBean> counters(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @QueryParam("id") List<Long> ids) throws ServiceException {
-		List<RoomCountBean> roomBeans = new ArrayList<>();
+	public List<RoomCountDTO> counters(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @QueryParam("id") List<Long> ids) throws ServiceException {
+		List<RoomCountDTO> roomBeans = new ArrayList<>();
 		try {
 			Sessiondata sd = sessionDao.check(sid);
 			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
+				IApplication app = (IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName);
 				List<Room> rooms = roomDao.get(ids);
 
 				for (Room room : rooms) {
-					RoomCountBean rCountBean = new RoomCountBean();
+					RoomCountDTO rCountBean = new RoomCountDTO();
 					rCountBean.setRoomId(room.getId());
 					rCountBean.setRoomName(room.getName());
 					rCountBean.setMaxUser(room.getNumberOfPartizipants());
-					rCountBean.setRoomCount(sessionManager.getClientListByRoom(room.getId()).size());
+					rCountBean.setRoomCount(app.getOmRoomClients(room.getId()).size());
 
 					roomBeans.add(rCountBean);
 				}

Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Tue Apr 18 17:51:44 2017
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.webservice;
 
+import static org.apache.openmeetings.db.dto.basic.ServiceResult.NO_PERMISSION;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.webservice.Constants.TNS;
 import static org.apache.openmeetings.webservice.Constants.USER_SERVICE_NAME;
@@ -41,7 +42,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
-import org.apache.openmeetings.core.session.SessionManager;
+import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
@@ -59,20 +60,22 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.util.OmException;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.apache.openmeetings.webservice.cluster.UserService;
 import org.apache.openmeetings.webservice.error.ServiceException;
+import org.apache.wicket.Application;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
- * 
+ *
  * The Service contains methods to login and create hash to directly enter
  * conference rooms, recordings or the application in general
- * 
+ *
  * @author sebawagner
- * 
+ *
  */
 @WebService(serviceName = USER_SERVICE_NAME, targetNamespace = TNS, portName = USER_SERVICE_PORT_NAME)
 @Features(features = "org.apache.cxf.feature.LoggingFeature")
@@ -90,8 +93,6 @@ public class UserWebService implements U
 	private UserDao userDao;
 	@Autowired
 	private SessiondataDao sessionDao;
-	@Autowired
-	private SessionManager sessionManager;
 
 	/* (non-Javadoc)
 	 * @see org.apache.openmeetings.webservice.cluster.UserService#login(java.lang.String, java.lang.String)
@@ -107,7 +108,7 @@ public class UserWebService implements U
 			if (u == null) {
 				return new ServiceResult(-1L, "Login failed", Type.ERROR);
 			}
-			
+
 			Sessiondata sd = sessionDao.create(u.getId(), u.getLanguageId());
 			log.debug("Login user SID : " + sd.getSessionId());
 			return new ServiceResult(u.getId(), sd.getSessionId(), Type.SUCCESS);
@@ -207,7 +208,7 @@ public class UserWebService implements U
 	}
 
 	//FIXME no update
-	
+
 	/* (non-Javadoc)
 	 * @see org.apache.openmeetings.webservice.cluster.UserService#delete(java.lang.String, long)
 	 */
@@ -223,7 +224,7 @@ public class UserWebService implements U
 
 				return new ServiceResult(id, "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("deleteUserById", err);
@@ -253,7 +254,7 @@ public class UserWebService implements U
 
 				return new ServiceResult(user.getId(), "Deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("deleteUserByExternalUserIdAndType", err);
@@ -305,7 +306,7 @@ public class UserWebService implements U
 					return new ServiceResult(0, hash, Type.SUCCESS);
 				}
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("getRoomHash", err);
@@ -326,10 +327,10 @@ public class UserWebService implements U
 			Sessiondata sd = sessionDao.check(sid);
 			if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) {
 				Boolean success = userManagement.kickUserByPublicSID(sid, publicSID);
-	
+
 				return new ServiceResult(Boolean.TRUE.equals(success) ? 1L : 0L, Boolean.TRUE.equals(success) ? "deleted" : "not deleted", Type.SUCCESS);
 			} else {
-				return new ServiceResult(-26L, "Insufficient permissions", Type.ERROR);
+				return NO_PERMISSION;
 			}
 		} catch (Exception err) {
 			log.error("[kick]", err);
@@ -344,11 +345,12 @@ public class UserWebService implements U
 	@WebMethod
 	@GET
 	@Path("/count/{roomid}")
-	public int count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId) {
+	public ServiceResult count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId) {
 		Sessiondata sd = sessionDao.check(sid);
 		if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-			return sessionManager.getClientListByRoom(roomId).size();
+			IApplication app = (IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName);
+			return new ServiceResult(app.getOmRoomClients(roomId).size(), "count", Type.SUCCESS);
 		}
-		return -1;
+		return NO_PERMISSION;
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java?rev=1791817&r1=1791816&r2=1791817&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/cluster/UserService.java Tue Apr 18 17:51:44 2017
@@ -45,33 +45,33 @@ public interface UserService {
 	/**
 	 * @param user - login or email of Openmeetings user with admin or SOAP-rights
 	 * @param pass - password
-	 *            
+	 *
 	 * @return - {@link ServiceResult} with error code or SID and userId
 	 */
 	ServiceResult login(@WebParam(name="user") @QueryParam("user") String user, @WebParam(name="pass") @QueryParam("pass") String pass);
 
 	/**
 	 * Lists all users in the system!
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
-	 *            
+	 *
 	 * @return - list of users
 	 * @throws ServiceException
 	 */
 	List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException;
-	
+
 	/**
 	 * Adds a new User like through the Frontend, but also does activates the
 	 * Account To do SSO see the methods to create a hash and use those ones!
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param user
 	 *            user object
 	 * @param confirm
 	 *            whatever or not to send email, leave empty for auto-send
-	 *            
+	 *
 	 * @return - id of the user added or error code
 	 * @throws ServiceException
 	 */
@@ -82,30 +82,30 @@ public interface UserService {
 			) throws ServiceException;
 
 	/**
-	 * 
+	 *
 	 * Delete a certain user by its id
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param id
 	 *            the openmeetings user id
-	 *            
+	 *
 	 * @return - id of the user deleted, error code otherwise
 	 * @throws ServiceException
 	 */
 	ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException;
 
 	/**
-	 * 
+	 *
 	 * Delete a certain user by its external user id
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param externalId
 	 *            externalUserId
 	 * @param externalType
 	 *            externalUserId
-	 *            
+	 *
 	 * @return - id of user deleted, or error code
 	 * @throws ServiceException
 	 */
@@ -119,14 +119,14 @@ public interface UserService {
 	 * Description: sets the SessionObject for a certain SID, after setting this
 	 * Session-Object you can use the SID + a RoomId to enter any Room. ...
 	 * Session-Hashs are deleted 15 minutes after the creation if not used.
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param user
 	 *            user details to set
 	 * @param options
 	 *            room options to set
-	 *            
+	 *
 	 * @return - secure hash or error code
 	 * @throws ServiceException
 	 */
@@ -138,7 +138,7 @@ public interface UserService {
 
 	/**
 	 * Kick a user by its public SID
-	 * 
+	 *
 	 * @param sid
 	 *            The SID from getSession
 	 * @param publicSID
@@ -151,10 +151,10 @@ public interface UserService {
 	/**
 	 * Returns the count of users currently in the Room with given id
 	 * No admin rights are necessary for this call
-	 * 
+	 *
 	 * @param sid The SID from UserService.getSession
 	 * @param roomId id of the room to get users
 	 * @return number of users as int
 	 */
-	int count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId);
+	ServiceResult count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId);
 }