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.