Revision: 4113
Author:   solomax666
Date:     Sat Aug 27 03:27:19 2011
Log:      - add/remove organization seems to work as expected
- clientListManager modified not to be singleton
- TestUserManagement updated
http://code.google.com/p/openmeetings/source/detail?r=4113

Modified:
/branches/dev/injection/WebContent/WEB-INF/openmeetings-applicationContext.xml /branches/dev/injection/src/app/org/openmeetings/app/data/basic/Sessionmanagement.java /branches/dev/injection/src/app/org/openmeetings/app/data/conference/Roommanagement.java /branches/dev/injection/src/app/org/openmeetings/app/data/user/Organisationmanagement.java /branches/dev/injection/src/app/org/openmeetings/app/data/user/Usermanagement.java /branches/dev/injection/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java /branches/dev/injection/src/app/org/openmeetings/app/installation/ImportInitvalues.java /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/domain/Organisation.java /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/domain/Organisation_Users.java /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/user/Users.java /branches/dev/injection/src/app/org/openmeetings/app/remote/FLVRecorderService.java /branches/dev/injection/src/app/org/openmeetings/app/remote/StreamService.java /branches/dev/injection/src/app/org/openmeetings/app/remote/red5/ClientListManager.java /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPScreenSharingSession.java /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPStreamReceiver.java /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPStreamingHandler.java /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/RTPMethodServlet.java /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/RTPSharerServlet.java /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/ScreenServlet.java /branches/dev/injection/src/roomservice/org/openmeetings/axis/services/RoomServiceProxy.java /branches/dev/injection/src/test/org/openmeetings/test/userdata/TestUserManagement.java

=======================================
--- /branches/dev/injection/WebContent/WEB-INF/openmeetings-applicationContext.xml Mon Aug 22 11:08:54 2011 +++ /branches/dev/injection/WebContent/WEB-INF/openmeetings-applicationContext.xml Sat Aug 27 03:27:19 2011
@@ -117,6 +117,12 @@
                                <entry key="fileProcessor">
                     <ref bean="openmeetings.FileProcessor"/>
                 </entry>
+                               <entry key="clientListManager">
+                    <ref bean="openmeetings.ClientListManager"/>
+                </entry>
+                               <entry key="rtpStreamingHandler">
+                    <ref bean="rtpStreamingHandler"/>
+                </entry>
                 <!--
                 <entry key="mainService">
                     <ref bean="xmlcrm.service"/>
@@ -224,6 +230,7 @@
<bean id="authLevelManagement" class="org.openmeetings.app.data.basic.AuthLevelmanagement" /> <bean id="generateSWF" class="org.openmeetings.app.documents.GenerateSWF" />
        <bean id="fileUtils" class="org.openmeetings.app.data.file.FileUtils" />
+ <bean id="rtpStreamingHandler" class="org.openmeetings.app.rtp.RTPStreamingHandler" />

        <!--  Templates -->
<bean id="registerUserTemplate" class="org.openmeetings.app.templates.RegisterUserTemplate" />
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/data/basic/Sessionmanagement.java Sat Aug 13 04:54:44 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/data/basic/Sessionmanagement.java Sat Aug 27 03:27:19 2011
@@ -42,6 +42,8 @@

        @Autowired
        private ManageCryptStyle manageCryptStyle;
+       @Autowired
+       private ClientListManager clientListManager;

        /**
         * creates a new session-object in the database
@@ -515,8 +517,8 @@
        public void clearSessionByRoomId(Long room_id) {
                try {

-                       HashMap<String, RoomClient> MyUserList = 
ClientListManager
-                                       
.getInstance().getClientListByRoom(room_id);
+                       HashMap<String, RoomClient> MyUserList = 
clientListManager
+                                       .getClientListByRoom(room_id);

                        for (Iterator<String> iter = 
MyUserList.keySet().iterator(); iter
                                        .hasNext();) {
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/data/conference/Roommanagement.java Sat Aug 20 00:57:33 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/data/conference/Roommanagement.java Sat Aug 27 03:27:19 2011
@@ -59,6 +59,8 @@
        private UsersDaoImpl usersDao;
        @Autowired
        private AuthLevelmanagement authLevelManagement;
+       @Autowired
+       private ClientListManager clientListManager;

        /**
         * add a new Record to the table roomtypes
@@ -162,8 +164,8 @@
                                Rooms room = this.getRoomById(rooms_id);

                                if (room != null) {
-                                       HashMap<String, RoomClient> map = 
ClientListManager
-                                                       
.getInstance().getClientListByRoom(
+                                       HashMap<String, RoomClient> map = 
clientListManager
+                                                       .getClientListByRoom(
                                                                        
room.getRooms_id());

                                        room.setCurrentusers(new 
LinkedList<RoomClient>());
@@ -294,8 +296,8 @@

                                for (Rooms room : rooms) {

-                                       HashMap<String, RoomClient> map = 
ClientListManager
-                                                       
.getInstance().getClientListByRoom(
+                                       HashMap<String, RoomClient> map = 
clientListManager
+                                                       .getClientListByRoom(
                                                                        
room.getRooms_id());

                                        room.setCurrentusers(new 
LinkedList<RoomClient>());
@@ -326,8 +328,8 @@

                                for (Rooms room : rooms) {

-                                       HashMap<String, RoomClient> map = 
ClientListManager
-                                                       
.getInstance().getClientListByRoom(
+                                       HashMap<String, RoomClient> map = 
clientListManager
+                                                       .getClientListByRoom(
                                                                        
room.getRooms_id());

                                        room.setCurrentusers(new 
LinkedList<RoomClient>());
@@ -359,8 +361,8 @@

                                for (Rooms room : rooms) {

-                                       HashMap<String, RoomClient> map = 
ClientListManager
-                                                       
.getInstance().getClientListByRoom(
+                                       HashMap<String, RoomClient> map = 
clientListManager
+                                                       .getClientListByRoom(
                                                                        
room.getRooms_id());

                                        room.setCurrentusers(new 
LinkedList<RoomClient>());
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/data/user/Organisationmanagement.java Thu Aug 18 11:34:11 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/data/user/Organisationmanagement.java Sat Aug 27 03:27:19 2011
@@ -459,25 +459,14 @@
        public Long addUserToOrganisation(Long user_id, Long organisation_id,
                        Long insertedby, String comment) {
                try {
-                       if 
(this.getOrganisation_UserByUserAndOrganisation(user_id,
-                                       organisation_id) == null) {
-                               Organisation org = 
this.getOrganisationById(organisation_id);
-                               log.debug("org: " + org.getName());
-
+ if (this.getOrganisation_UserByUserAndOrganisation(user_id, organisation_id) == null) {
                                Organisation_Users orgUser = new 
Organisation_Users();
-                               orgUser.setOrganisation(org);
+                               
orgUser.setOrganisation(getOrganisationById(organisation_id));
                                orgUser.setUser_id(user_id);
                                orgUser.setDeleted("false");
-                               orgUser.setStarttime(new Date());
                                orgUser.setComment(comment);

-                               orgUser = em.merge(orgUser);
-
-                               long id = orgUser.getOrganisation_users_id();
-
-                               em.flush();
-
-                               return id;
+                               return addOrganisationUserObj(orgUser);
                        } else {
                                return -35L;
                        }
@@ -489,13 +478,18 @@

        public Long addOrganisationUserObj(Organisation_Users orgUser) {
                try {
+                       Users u = usersDao.getUser(orgUser.getUser_id());
+
                        orgUser.setStarttime(new Date());
                        orgUser = em.merge(orgUser);
-                       long id = orgUser.getOrganisation_users_id();
-
-                       em.refresh(usersDao.getUser(orgUser.getUser_id()));
-
-                       return id;
+
+                       //user should be updated to have recent 
organisation_users list
+                       List<Organisation_Users> l = u.getOrganisation_users();
+                       l.add(orgUser);
+                       u.setOrganisation_users(l);
+                       usersDao.updateUser(u);
+
+                       return orgUser.getOrganisation_users_id();
                } catch (Exception ex2) {
                        log.error("[addUserToOrganisation]", ex2);
                }
@@ -510,7 +504,7 @@
                                        + "  " + organisation_id);

                        Query q = em
- .createQuery("select c from Organisation_Users c where c.deleted = 'false' AND c.organisation.organisation_id = :organisation_id AND c.user_id = :user_id"); + .createQuery("select c from Organisation_Users c where c.deleted = 'false' AND c.organisation.organisation_id = :organisation_id AND c.user_id = :user_id");
                        q.setParameter("organisation_id", organisation_id);
                        q.setParameter("user_id", user_id);
                        @SuppressWarnings("unchecked")
@@ -533,25 +527,22 @@

                                log.error("deleteUserFromOrganisation " + user_id + 
"  "
                                                + organisation_id);
-
-                               Organisation_Users orgUser = this
-                                               
.getOrganisation_UserByUserAndOrganisation(user_id,
-                                                               
organisation_id);
-                               log.error("org: " + 
orgUser.getOrganisation().getName());
-                               orgUser.setDeleted("true");
-                               orgUser.setUpdatetime(new Date());
-
-                               if (orgUser.getOrganisation_users_id() == null) 
{
-                                       em.persist(orgUser);
-                               } else {
-                                       if (!em.contains(orgUser)) {
-                                               em.merge(orgUser);
+                               //user should be updated to have recent 
organisation_users list
+                               Long id = null;
+                               Users u = usersDao.getUser(user_id);
+                               List<Organisation_Users> l = 
u.getOrganisation_users();
+                               for (Organisation_Users ou : l) {
+ if (ou.getOrganisation().getOrganisation_id().equals(organisation_id)) {
+                                               l.remove(ou);
+                                               id = 
ou.getOrganisation_users_id();
+                                               em.remove(ou);
+                                               break;
                                        }
                                }
-
-                               em.refresh(usersDao.getUser(user_id));
-
-                               return orgUser.getOrganisation_users_id();
+                               u.setOrganisation_users(l);
+                               usersDao.updateUser(u);
+
+                               return id;
                        } else {
                                log.error("[deleteUserFromOrganisation] 
authorization required");
                        }
@@ -600,7 +591,7 @@
        private Long selectMaxUsersByOrganisationId(long organisation_id) {
                try {
                        Query query = em
- .createQuery("select c.organisation_users_id from Organisation_Users c where c.deleted = 'false' AND c.organisation.organisation_id = :organisation_id"); + .createQuery("select c.organisation_users_id from Organisation_Users c where c.deleted = 'false' AND c.organisation.organisation_id = :organisation_id");
                        query.setParameter("organisation_id", organisation_id);

                        @SuppressWarnings("rawtypes")
@@ -725,25 +716,20 @@
                        long user_id, int start, int max, String orderby, 
boolean asc) {
                try {
                        if (authLevelManagement.checkAdminLevel(user_level)) {
-                               String hql = "select c from Organisation_Users c 
"
-                                               + "where c.deleted = 'false' "
-                                               + "AND c.user_id = :user_id "
-                                               + "GROUP BY 
c.organisation.organisation_id";
+                               String hql =
+                                       "SELECT o FROM Organisation o "
+                                       + "WHERE o.deleted = 'false' "
+                                       + "AND o.organisation_id IN ("
+ + " SELECT ou.organisation.organisation_id FROM Organisation_Users ou "
+                                       + " WHERE ou.deleted = 'false' "
+                                       + "                AND ou.user_id = :user_id 
"
+                                       + ")";
                                Query q = em.createQuery(hql);
                                q.setParameter("user_id", user_id);
                                q.setFirstResult(start);
                                q.setMaxResults(max);
                                @SuppressWarnings("unchecked")
-                               List<Organisation_Users> userOrgIds = 
q.getResultList();
-
-                               LinkedList<Organisation> userOrg = new 
LinkedList<Organisation>();
-
-                               for (Iterator<Organisation_Users> it = 
userOrgIds.iterator(); it
-                                               .hasNext();) {
-                                       Long org_id = 
it.next().getOrganisation()
-                                                       .getOrganisation_id();
-                                       
userOrg.add(this.getOrganisationById(org_id));
-                               }
+                               List<Organisation> userOrg = q.getResultList();

                                return userOrg;
                        }
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/data/user/Usermanagement.java Tue Aug 23 11:57:34 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/data/user/Usermanagement.java Sat Aug 27 03:27:19 2011
@@ -97,6 +97,8 @@
        private ResetPasswordTemplate resetPasswordTemplate;
        @Autowired
        private AuthLevelmanagement authLevelManagement;
+       @Autowired
+       private ClientListManager clientListManager;

        /**
         * query for a list of users
@@ -495,11 +497,9 @@

                                        // add or delete organisations from 
this user
                                        if (organisations != null) {
-                                               
organisationmanagement.updateUserOrganisationsByUser(
-                                                               us, 
organisations);
-                                       }
-
-                                       em.refresh(us);
+ organisationmanagement.updateUserOrganisationsByUser(us, organisations);
+                                       }
+                                       us = usersDao.getUser(user_id);

                                        us.setLastname(lastname);
                                        us.setFirstname(firstname);
@@ -1508,7 +1508,6 @@
                if (id == 0) {
                        return null;
                }
-
                CriteriaBuilder cb = em.getCriteriaBuilder();
                CriteriaQuery<Users> cq = cb.createQuery(Users.class);
                Root<Users> c = cq.from(Users.class);
@@ -1525,7 +1524,6 @@
                }

                return u;
-
        }

        public Users getUserByIdAndDeleted(Long id) throws Exception {
@@ -1665,8 +1663,8 @@
                try {
                        Long users_id = sessionManagement.checkSession(SID);
                        Long user_level = getUserLevelByID(users_id);
-                       HashMap<String, RoomClient> MyUserList = 
ClientListManager
-                                       
.getInstance().getClientListByRoom(room_id);
+                       HashMap<String, RoomClient> MyUserList = 
clientListManager
+                                       .getClientListByRoom(room_id);

                        // admins only
                        if (authLevelManagement.checkAdminLevel(user_level)) {
@@ -1714,7 +1712,7 @@
                        // admins only
                        if (authLevelManagement.checkAdminLevel(user_level)) {

-                               RoomClient rcl = ClientListManager.getInstance()
+                               RoomClient rcl = clientListManager
                                                
.getClientByPublicSID(publicSID);

                                if (rcl == null) {
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java Sat Aug 13 21:43:12 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/data/user/dao/UsersDaoImpl.java Sat Aug 27 03:27:19 2011
@@ -114,7 +114,7 @@
                try {
                        // get all users
Query query = em.createQuery("select count(c.user_id) from Users c where c.deleted = 'false'");
-                       List ll = query.getResultList();
+                       List<?> ll = query.getResultList();
                        log.info("selectMaxFromUsers" + ll.get(0));
                        return (Long) ll.get(0);
                } catch (Exception ex2) {
@@ -197,7 +197,7 @@
                        Query query = em.createQuery(hql);

                        // log.debug("id: "+folderId);
-                       List ll = query.getResultList();
+                       List<?> ll = query.getResultList();

                        // log.error((Long)ll.get(0));
                        Long i = (Long) ll.get(0);
@@ -331,7 +331,7 @@
                        // get all users
                        Query query = em.createQuery(hql);
                        query.setParameter("search", 
StringUtils.lowerCase(search));
-                       List ll = query.getResultList();
+                       List<?> ll = query.getResultList();
                        log.info("selectMaxFromUsers" + ll.get(0));
                        return (Long) ll.get(0);
                } catch (Exception ex2) {
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/installation/ImportInitvalues.java Sat Aug 13 05:56:03 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/installation/ImportInitvalues.java Sat Aug 27 03:27:19 2011
@@ -551,7 +551,7 @@
                                        defaultOrganisationName, user_id);

                        // Add user to default group
-                       organisationmanagement.addUserToOrganisation(new 
Long(1),
+                       organisationmanagement.addUserToOrganisation(user_id,
                                        organisation_id, null, "");
                } catch (Exception e) {
                        log.error("[loadInitUserAndOrganisation] ", e);
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/domain/Organisation.java Sat Jul 23 04:28:08 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/domain/Organisation.java Sat Aug 27 03:27:19 2011
@@ -14,26 +14,28 @@
 @Entity
 @Table(name = "organisation")
 public class Organisation implements Serializable {
-
-       /**
-        *
-        */
        private static final long serialVersionUID = 99123580264065654L;
+
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
-
        @Column(name="organisation_id")
        private Long organisation_id;
+
        @Column(name="name")
        private String name;
+
        @Column(name="insertedby")
        private Long insertedby;
+
        @Column(name="updatedby")
        private Long updatedby;
+
        @Column(name="starttime")
        private Date starttime;
+
        @Column(name="updatetime")
        private Date updatetime;
+
        @Column(name="deleted")
        private String deleted;

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/domain/Organisation_Users.java Tue Aug 23 11:57:34 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/domain/Organisation_Users.java Sat Aug 27 03:27:19 2011
@@ -32,12 +32,16 @@

        @Column(name = "starttime")
        private Date starttime;
+
        @Column(name = "updatetime")
        private Date updatetime;
+
        @Column(name = "deleted")
        private String deleted;
+
        @Column(name = "is_moderator")
        private Boolean isModerator;
+
        @Column(name = "comment_field")
        private String comment;

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/user/Users.java Tue Aug 23 11:57:34 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/persistence/beans/user/Users.java Sat Aug 27 03:27:19 2011
@@ -4,6 +4,7 @@
 import java.util.Date;
 import java.util.List;

+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -30,6 +31,7 @@
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "user_id")
        private Long user_id;
+
        @Column(name = "age")
        private Date age;
        @Column(name = "availible")
@@ -64,24 +66,25 @@
        private String deleted;
        @Column(name = "language_id")
        private Long language_id;
-       @ManyToOne(fetch = FetchType.EAGER)
-       @JoinColumn(name = "adresses_id", insertable = true, updatable = true)
-       private Adresses adresses;
        @Column(name = "resethash")
        private String resethash;
        @Column(name = "activatehash")
        private String activatehash;

+
+       @ManyToOne(fetch = FetchType.EAGER)
+       @JoinColumn(name = "adresses_id", insertable = true, updatable = true)
+       private Adresses adresses;
+
        @Transient
        private Userlevel userlevel;
-
        @Transient
        private Userdata rechnungsaddressen;
        @Transient
        private Userdata lieferadressen;
        private Usergroups[] usergroups;

-       @OneToMany(fetch = FetchType.EAGER)
+       @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
        @JoinColumn(name = "user_id", insertable = true, updatable = true)
        private List<Organisation_Users> organisation_users;

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/remote/FLVRecorderService.java Sun Aug 21 06:26:43 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/remote/FLVRecorderService.java Sat Aug 27 03:27:19 2011
@@ -431,8 +431,7 @@
                                        if (conn != null) {
                                                if (conn instanceof 
IServiceCapableConnection) {

-                                                       RoomClient rcl = 
ClientListManager.getInstance()
-                                                                       
.getClientByStreamId(
+                                                       RoomClient rcl = 
clientListManager.getClientByStreamId(
                                                                                
        conn.getClient().getId());

                                                        // FIXME: Check if this 
function is really in use at
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/remote/StreamService.java Mon Aug 15 11:47:14 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/remote/StreamService.java Sat Aug 27 03:27:19 2011
@@ -59,7 +59,7 @@
        public static String folderForRecordings = "recorded";

        @Autowired
-       private ClientListManager clientListManager = null;
+       private ClientListManager clientListManager;
        @Autowired
        private RecordingDaoImpl recordingDao;
        @Autowired
@@ -311,7 +311,7 @@
                        Long room_id = currentClient.getRoom_id();
                        currentClient.setIsRecording(false);
                        currentClient.setRoomRecordingName("");
-                       ClientListManager.getInstance().updateClientByStreamId(
+                       clientListManager.updateClientByStreamId(
                                        currentClient.getStreamid(), 
currentClient);

                        String conferenceType = 
roomRecording.getConferenceType();
@@ -324,7 +324,7 @@
                                        if (conn != null) {
                                                if (conn instanceof 
IServiceCapableConnection) {

-                                                       RoomClient rcl = 
ClientListManager.getInstance()
+                                                       RoomClient rcl = 
clientListManager
                                                                        
.getClientByStreamId(
                                                                                
        conn.getClient().getId());
                                                        log.debug("is this users 
still alive? :" + rcl);
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/remote/red5/ClientListManager.java Sat Aug 13 04:54:44 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/remote/red5/ClientListManager.java Sat Aug 27 03:27:19 2011
@@ -22,19 +22,6 @@

        @Autowired
        private ManageCryptStyle manageCryptStyle;
-
-       private static ClientListManager instance = null;
-
-       private ClientListManager() {
-       }
-
-       public static synchronized ClientListManager getInstance() {
-
-               if (instance == null) {
-                       instance = new ClientListManager();
-               }
-               return instance;
-       }

        public synchronized RoomClient addClientListItem(String streamId,
                        String scopeName, Integer remotePort, String 
remoteAddress,
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPScreenSharingSession.java Sat Jul 23 04:28:08 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPScreenSharingSession.java Sat Aug 27 03:27:19 2011
@@ -1,9 +1,10 @@
 package org.openmeetings.app.rtp;

 import java.util.HashMap;
-import org.openmeetings.app.persistence.beans.recording.RoomClient;
+
 import org.openmeetings.app.persistence.beans.rooms.Rooms;
 import org.openmeetings.app.persistence.beans.user.Users;
+import org.openmeetings.app.remote.red5.ClientListManager;
 /**
  * represents a ScreenSharingSession within Conference
  * @author o.becherer
@@ -54,8 +55,8 @@
                return sharingUser;
        }

-       public void startReceiver() throws Exception{
-               receiver = new RTPStreamReceiver(this);
+ public void startReceiver(ClientListManager clientListManager) throws Exception{
+               receiver = new RTPStreamReceiver(clientListManager, this);

        }

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPStreamReceiver.java Sat Jul 23 04:28:08 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPStreamReceiver.java Sat Aug 27 03:27:19 2011
@@ -22,6 +22,7 @@
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;


 /**
@@ -40,7 +41,8 @@
private static final Logger log = Red5LoggerFactory.getLogger(RTPStreamReceiver.class, ScopeApplicationAdapter.webAppRootKey);

        /** contains sessionData */
-       RTPScreenSharingSession sessionData = null;
+       private RTPScreenSharingSession sessionData;
+       private ClientListManager clientListManager;

/** The basic RTPmanager for a romm, receiving the webstart client stream */
        private RTPManager basicManager = null;
@@ -60,9 +62,10 @@
         * @param session
         */
        //----------------------------------------------------------------------
- public RTPStreamReceiver(RTPScreenSharingSession session) throws Exception { + public RTPStreamReceiver(ClientListManager clientListManager, RTPScreenSharingSession session) throws Exception {
                log.debug("RTPStreamReceiver Konstruktor");
                this.sessionData = session;
+               this.clientListManager = clientListManager;

                basicManager = RTPManager.newInstance();
                //basicManager.addSessionListener(this);
@@ -83,7 +86,7 @@

                while(iter.hasNext()){
                        String clientSID = iter.next();
- RoomClient client = ClientListManager.getInstance().getClientByPublicSID(clientSID);
+                       RoomClient client = 
clientListManager.getClientByPublicSID(clientSID);

log.debug("Adding Target for room " +session.getRoom().getRooms_id() + " : " + client.getUserip() + "/" + viewers.get(clientSID));

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPStreamingHandler.java Sat Aug 13 05:23:09 2011 +++ /branches/dev/injection/src/app/org/openmeetings/app/rtp/RTPStreamingHandler.java Sat Aug 27 03:27:19 2011
@@ -25,11 +25,11 @@
        private static final Logger log = Red5LoggerFactory.getLogger(
                        RTPStreamingHandler.class, 
ScopeApplicationAdapter.webAppRootKey);
        @Autowired
-       // FIXME
-       private static Sessionmanagement sessionManagement;
+       private Sessionmanagement sessionManagement;
        @Autowired
-       // FIXME
-       static private Usermanagement userManagement;
+       private Usermanagement userManagement;
+       @Autowired
+       private ClientListManager clientListManager;

        @Autowired
        private static Roommanagement roommanagement;
@@ -95,7 +95,7 @@
         * Retrieving Session data for Room
         */
// ---------------------------------------------------------------------------------------------
-       public static RTPScreenSharingSession getSessionForRoom(String room,
+       public RTPScreenSharingSession getSessionForRoom(String room,
                        String sid, String publicSID) throws Exception {
                log.debug("getSessionForRoom");

@@ -146,7 +146,7 @@
         *         Store Session for Room
         */
// ---------------------------------------------------------------------------------------------
-       public static RTPScreenSharingSession storeSessionForRoom(String room,
+       public RTPScreenSharingSession storeSessionForRoom(String room,
                        Long sharing_user_id, String publicSID, String hostIP, 
int the_port)
                        throws Exception {
                log.debug("storeSessionForRoom : Room = " + room + ", publicSID : 
"
@@ -155,7 +155,7 @@
                // Defining The IP of the Sharer (Moderator)
                // Should be retrieved via Clientlist to receive the "extern" 
IP, seen
                // by red5
-               RoomClient rcl = 
ClientListManager.getInstance().getClientByPublicSID(
+               RoomClient rcl = clientListManager.getClientByPublicSID(
                                publicSID);

                if (rcl == null)
@@ -203,8 +203,8 @@
                session.setIncomingRTPPort(port);

                // Pre-Define Viewers
-               HashMap<String, RoomClient> clientsForRoom = ClientListManager
-                               
.getInstance().getClientListByRoom(Long.parseLong(room));
+               HashMap<String, RoomClient> clientsForRoom = clientListManager
+                               .getClientListByRoom(Long.parseLong(room));

                Iterator<String> siter = clientsForRoom.keySet().iterator();

@@ -246,7 +246,7 @@
         * Remove Session
         */
// ---------------------------------------------------------------------------------------------
-       public static void removeSessionForRoom(String room, String sid)
+       public void removeSessionForRoom(String room, String sid)
                        throws Exception {
                log.debug("removeSessionForRoom : " + room);

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/RTPMethodServlet.java Sun Aug 14 04:44:55 2011 +++ /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/RTPMethodServlet.java Sat Aug 27 03:27:19 2011
@@ -34,12 +34,16 @@

        private Sessionmanagement sessionManagement;
        private ScopeApplicationAdapter scopeApplicationAdapter;
+       private ClientListManager clientListManager;
+       private RTPStreamingHandler rtpStreamingHandler;

        @Override
        public void init(ServletConfig config) throws ServletException {
                super.init(config);
sessionManagement = (Sessionmanagement)config.getServletContext().getAttribute("sessionManagement"); scopeApplicationAdapter = (ScopeApplicationAdapter)config.getServletContext().getAttribute("scopeApplicationAdapter"); + clientListManager = (ClientListManager)config.getServletContext().getAttribute("clientListManager"); + rtpStreamingHandler = (RTPStreamingHandler)config.getServletContext().getAttribute("rtpStreamingHandler");
        }

        @Override
@@ -82,7 +86,7 @@
                        if (publicSID == null)
throw new ServletException("RTPMethodServlet.startStreaming : no parameter publicSID!");

- RTPScreenSharingSession session = RTPStreamingHandler.getSessionForRoom(room, sid, publicSID); + RTPScreenSharingSession session = rtpStreamingHandler.getSessionForRoom(room, sid, publicSID);

                        session.getReceiver().stop();

@@ -94,7 +98,7 @@
scopeApplicationAdapter.sendMessageByRoomAndDomain(Long.valueOf(room).longValue(),hs);

                        // Remove Session
-                       RTPStreamingHandler.removeSessionForRoom(room, sid);
+                       rtpStreamingHandler.removeSessionForRoom(room, sid);


                } catch(Exception err){
@@ -150,11 +154,11 @@
throw new ServletException("RTPMethodServlet.startStreaming : no parameter rtpport!");


- RTPScreenSharingSession session = RTPStreamingHandler.getSessionForRoom(room, sid, publicSID); + RTPScreenSharingSession session = rtpStreamingHandler.getSessionForRoom(room, sid, publicSID);

                        if(session == null){
                                Long users_id = 
sessionManagement.checkSession(sid);
- session = RTPStreamingHandler.storeSessionForRoom(room, users_id, publicSID, hostIP, Integer.parseInt(sharersPort)); + session = rtpStreamingHandler.storeSessionForRoom(room, users_id, publicSID, hostIP, Integer.parseInt(sharersPort));
                        }

                        width=request.getParameter("width");
@@ -182,14 +186,14 @@
                        }

                        // Starting ReceiverThread
-                       session.startReceiver();
+                       session.startReceiver(clientListManager);

log.debug("startStreaming values : IPAddress Sharer : " + sharerIP + ", width=" + width + ", height=" + height + ",room=" + room);
                        log.debug("startStreaming publicSID=" + publicSID);

                        //we have to include the publicSID to get the 
RoomClient Object
//also the HOST, PORT must be set correctly in the RTPScreenSharingSession-Object - RoomClient rcl = ClientListManager.getInstance().getClientByPublicSID(publicSID);
+                       RoomClient rcl = 
clientListManager.getClientByPublicSID(publicSID);

                        HashMap<String, Integer> viewers = session.getViewers();

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/RTPSharerServlet.java Sat Aug 13 22:42:00 2011 +++ /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/RTPSharerServlet.java Sat Aug 27 03:27:19 2011
@@ -36,12 +36,14 @@

        private Sessionmanagement sessionManagement;
     private Usermanagement userManagement;
+    private RTPStreamingHandler rtpStreamingHandler;

        @Override
        public void init(ServletConfig config) throws ServletException {
                super.init(config);
sessionManagement = (Sessionmanagement)config.getServletContext().getAttribute("sessionManagement"); userManagement = (Usermanagement)config.getServletContext().getAttribute("userManagement"); + rtpStreamingHandler = (RTPStreamingHandler)config.getServletContext().getAttribute("rtpStreamingHandler");
        }

        @Override
@@ -86,7 +88,7 @@
                                String template = "rtp_player_applet.vm";

                                // Retrieve Data from RTPmanager
- RTPScreenSharingSession rsss = RTPStreamingHandler.getSessionForRoom(room, sid, publicSID); + RTPScreenSharingSession rsss = rtpStreamingHandler.getSessionForRoom(room, sid, publicSID);

                                if(rsss == null){
                                        log.error("no RTPSharingSession available 
for room " + room);
=======================================
--- /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java Sat Aug 13 22:42:00 2011 +++ /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java Sat Aug 27 03:27:19 2011
@@ -32,6 +32,7 @@
        private Configurationmanagement cfgManagement;
        private Usermanagement userManagement;
        private Fieldmanagment fieldmanagment;
+       private RTPStreamingHandler rtpStreamingHandler;

        @Override
        public void init(ServletConfig config) throws ServletException {
@@ -40,6 +41,7 @@
cfgManagement = (Configurationmanagement)config.getServletContext().getAttribute("cfgManagement"); userManagement = (Usermanagement)config.getServletContext().getAttribute("userManagement"); fieldmanagment = (Fieldmanagment)config.getServletContext().getAttribute("fieldmanagment"); + rtpStreamingHandler = (RTPStreamingHandler)config.getServletContext().getAttribute("rtpStreamingHandler");
        }

        @Override
@@ -282,7 +284,7 @@
                                        } else if (conf_i == 2) {

                                                // Storing Session data
-                                               RTPScreenSharingSession session 
= RTPStreamingHandler
+                                               RTPScreenSharingSession session 
= rtpStreamingHandler
                                                                
.storeSessionForRoom(room, users_id, publicSID,
                                                                                
rtmphostlocal, -1);

=======================================
--- /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/ScreenServlet.java Sun Aug 14 04:44:55 2011 +++ /branches/dev/injection/src/app/org/openmeetings/servlet/outputhandler/ScreenServlet.java Sat Aug 27 03:27:19 2011
@@ -55,6 +55,7 @@
     private Usermanagement userManagement;
        private UsersDaoImpl usersDao;
        private ScopeApplicationAdapter scopeApplicationAdapter;
+       private ClientListManager clientListManager;

        @Override
        public void init(ServletConfig config) throws ServletException {
@@ -64,6 +65,7 @@
userManagement = (Usermanagement)config.getServletContext().getAttribute("userManagement"); usersDao = (UsersDaoImpl)config.getServletContext().getAttribute("usersDao"); scopeApplicationAdapter = (ScopeApplicationAdapter)config.getServletContext().getAttribute("scopeApplicationAdapter"); + clientListManager = (ClientListManager)config.getServletContext().getAttribute("clientListManager");
        }

        /* (non-Javadoc)
@@ -142,7 +144,7 @@
                                        boolean userIsInRoom = false;
                                        boolean doProcess = false;

- HashMap<String, RoomClient> clientList = ClientListManager.getInstance().getClientList(); + HashMap<String, RoomClient> clientList = clientListManager.getClientList();
                                        for (Iterator iter = 
clientList.keySet().iterator();iter.hasNext();) {
                                                RoomClient rcl = 
clientList.get(iter.next());
                                                if 
(rcl.getPublicSID().equals(publicSID)) {
@@ -355,7 +357,7 @@
                                boolean userIsInRoom = false;
                                boolean doProcess = false;

- HashMap<String, RoomClient> clientList = ClientListManager.getInstance().getClientList(); + HashMap<String, RoomClient> clientList = clientListManager.getClientList();
                                for (Iterator iter = 
clientList.keySet().iterator();iter.hasNext();) {
                                        RoomClient rcl = 
clientList.get(iter.next());
                                        if 
(rcl.getPublicSID().equals(publicSID)) {
=======================================
--- /branches/dev/injection/src/roomservice/org/openmeetings/axis/services/RoomServiceProxy.java Sun Aug 21 04:35:43 2011 +++ /branches/dev/injection/src/roomservice/org/openmeetings/axis/services/RoomServiceProxy.java Sat Aug 27 03:27:19 2011
@@ -56,6 +56,8 @@
        private AuthLevelmanagement authLevelManagement;
        @Autowired
        private ConferenceService conferenceService;
+       @Autowired
+       private ClientListManager clientListManager;

        // TODO: Not implemented yet
// public List<Rooms_Organisation> getRoomsByOrganisationAndType(String SID,
@@ -398,8 +400,8 @@
                                int i = 0;
                                for (Rooms room : rooms) {

-                                       HashMap<String, RoomClient> map = 
ClientListManager
-                                                       
.getInstance().getClientListByRoom(
+                                       HashMap<String, RoomClient> map = 
clientListManager
+                                                       .getClientListByRoom(
                                                                        
room.getRooms_id());

                                        // room.setCurrentusers(new 
LinkedList<RoomClient>());
@@ -462,8 +464,8 @@
                                roomReturn.setName(room.getName());
                                roomReturn.setRoom_id(room.getRooms_id());

-                               HashMap<String, RoomClient> map = 
ClientListManager
-                                               
.getInstance().getClientListByRoom(room.getRooms_id());
+                               HashMap<String, RoomClient> map = 
clientListManager
+                                               
.getClientListByRoom(room.getRooms_id());

                                RoomUser[] roomUsers = new RoomUser[map.size()];

=======================================
--- /branches/dev/injection/src/test/org/openmeetings/test/userdata/TestUserManagement.java Tue Aug 23 12:37:01 2011 +++ /branches/dev/injection/src/test/org/openmeetings/test/userdata/TestUserManagement.java Sat Aug 27 03:27:19 2011
@@ -36,8 +36,6 @@
        private UserService uService;
        @Autowired
        private Usermanagement userManagement;
-       //FIXME incomplete @Autowired
-       //FIXME incomplete private UserService userService;
        @Autowired
        private Organisationmanagement organisationmanagement;

@@ -76,41 +74,50 @@
                }
        }

-       private void addOrganisation(Long userId, Long orgId) {
+ private void checkOrganisationCount(int count, Long userId) throws Exception { + int count2 = organisationmanagement.getOrganisationsByUserId(LEVEL_ADMIN, userId, 0, Integer.MAX_VALUE, "name", true).size();
+               assertEquals("Organisation count is not changed", count, 
count2);
+               Users u = userManagement.getUserById(userId);
+               int count3 = u.getOrganisation_users().size();
+ assertEquals("Organisation count in Users object is not changed", count, count3);
+       }
+
+       private void addOrganisation(Long userId, Long orgId) throws Exception {
int count = organisationmanagement.getOrganisationsByUserId(LEVEL_ADMIN, userId, 0, Integer.MAX_VALUE, "name", true).size();
+               System.err.println("count = " + count);
+               Users u = userManagement.getUserById(userId);
+               System.err.println("count(user) = " + 
u.getOrganisation_users().size());
                addUserToOrganisation(userId, orgId);
- int count2 = organisationmanagement.getOrganisationsByUserId(LEVEL_ADMIN, userId, 0, Integer.MAX_VALUE, "name", true).size();
-               assertEquals("Organisation count is not incremented", count + 
1, count2);
+
+               checkOrganisationCount(count + 1, userId);
        }

        @Test
-       public void testAddAdditionalOrganisation() throws Exception {
+       public void testAddRemoveAdditionalOrganisation() throws Exception {
                Users u = userManagement.getUserByLogin(USER_NAME);
                assertNotNull("Failed to fetch user", u);

+               Long orgId = -1L;
                boolean found = false;
+
for (Organisation o : organisationmanagement.getOrganisations(LEVEL_ADMIN)) { if (organisationmanagement.getOrganisation_UserByUserAndOrganisation(u.getUser_id(), o.getOrganisation_id()) == null){
                                found = true;
-                               addOrganisation(u.getUser_id(), 
o.getOrganisation_id());
+                               orgId = o.getOrganisation_id();
+                               addOrganisation(u.getUser_id(), orgId);
                                break;
                        }
                }
                if (!found) {
- addOrganisation(u.getUser_id(), createOrganisation(ORG_PREFIX, u.getUser_id()));
-               }
-       }
-
-       @Test
-       public void testAddOrganisationViaService() {
-               Sessiondata sessionData = mService.getsessiondata();
-               String sid = sessionData.getSession_id();
- Users us = (Users) mService.loginUser(sid, USER_NAME, USER_PASS, false, 1L, -1L);
-               assertNotNull("Failed to login user", us);
-
- //FIXME incomplete Users us1 = userService.getUserById(sid, us.getUser_id());
-       }
-
+                       orgId = createOrganisation(ORG_PREFIX, u.getUser_id());
+                       addOrganisation(u.getUser_id(), orgId);
+               }
+
+ int count = organisationmanagement.getOrganisationsByUserId(LEVEL_ADMIN, u.getUser_id(), 0, Integer.MAX_VALUE, "name", true).size(); + assertTrue("Failed to delete user from organisation", organisationmanagement.deleteUserFromOrganisation(LEVEL_ADMIN, u.getUser_id(), orgId) > 0);
+               checkOrganisationCount(count - 1, u.getUser_id());
+       }
+
        @Test
        public void testUsers(){

--
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.

Reply via email to