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);
 }


Reply via email to