You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/12/21 05:11:20 UTC
svn commit: r1424802 - in
/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings:
axis/services/ conference/room/ data/basic/dao/ quartz/scheduler/
remote/red5/ test/cluster/
Author: solomax
Date: Fri Dec 21 04:11:19 2012
New Revision: 1424802
URL: http://svn.apache.org/viewvc?rev=1424802&view=rev
Log:
SIP: verification is added while retrieving active room list (to filter out the only "SIP transport" user);
code cleanup;
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStoreSyncBug.java
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java Fri Dec 21 04:11:19 2012
@@ -895,7 +895,6 @@ public class RoomWebService {
try {
Long users_id = sessionManagement.checkSession(SID);
Long user_level = userManagement.getUserLevelByID(users_id);
- Users u = userManagement.getUserById(users_id);
if (authLevelManagement.checkWebServiceLevel(user_level)) {
return roommanagement.addRoom(3L, name, roomtypes_id, comment,
numberOfPartizipants, ispublic, null, appointment,
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java Fri Dec 21 04:11:19 2012
@@ -136,9 +136,20 @@ public class ServerWebService {
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkWebServiceLevel(user_level)) {
- return serversDao.saveServer(id, name, address, port, user, pass,
- webapp, protocol, active, comment, users_id)
- .getId();
+ Server s = serversDao.get(id);
+ if (s == null) {
+ s = new Server();
+ }
+ s.setName(name);
+ s.setAddress(address);
+ s.setPort(port);
+ s.setUser(user);
+ s.setPass(pass);
+ s.setWebapp(webapp);
+ s.setProtocol(protocol);
+ s.setActive(active);
+ s.setComment(comment);
+ return serversDao.update(s, users_id).getId();
} else {
log.warn("Insuffisient permissions");
return -1;
@@ -160,11 +171,15 @@ public class ServerWebService {
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkWebServiceLevel(user_level)) {
- return serversDao.delete(id);
+ Server s = serversDao.get(id);
+ if (s != null) {
+ serversDao.delete(s, users_id);
+ return true;
+ }
} else {
log.warn("Insuffisient permissions");
- return false;
}
+ return false;
}
/**
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/RoomClient.java Fri Dec 21 04:11:19 2012
@@ -179,6 +179,7 @@ public class RoomClient implements Seria
*/
private Boolean zombieCheckFlag = false;
private Boolean micMuted = false;
+ private boolean sipTransport = false;
public RoomClient() {
@@ -614,6 +615,14 @@ public class RoomClient implements Seria
+ " avsettings: " + this.getAvsettings() //
;
}
+
+ public boolean isSipTransport() {
+ return sipTransport;
+ }
+
+ public void setSipTransport(boolean sipTransport) {
+ this.sipTransport = sipTransport;
+ }
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java Fri Dec 21 04:11:19 2012
@@ -24,7 +24,6 @@ import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
-import javax.persistence.PersistenceException;
import javax.persistence.TypedQuery;
import org.apache.openmeetings.OpenmeetingsVariables;
@@ -157,63 +156,6 @@ public class ServerDao implements IDataP
return list.size() > 0 ? list.get(0) : null;
}
- /**
- * @deprecated user standard mechanism of
- * {@link IDataProviderDao#update(org.apache.openmeetings.persistence.beans.OmEntity, long)}
- * @param id
- * @param name
- * @param address
- * @return
- */
- @Deprecated
- public Server saveServer(long id, String name, String address, int port,
- String user, String pass, String webapp, String protocol,
- Boolean active, String comment, long userId) {
- Server s = get(id);
- if (s == null) {
- s = new Server();
- s.setInserted(new Date());
- s.setInsertedby(usersDao.get(userId));
- } else {
- s.setUpdated(new Date());
- s.setUpdatedby(usersDao.get(userId));
- if (active != null && !active) {
- clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(s);
- }
- }
- s.setName(name);
- s.setAddress(address);
- s.setPort(port);
- s.setUser(user);
- s.setPass(pass);
- s.setWebapp(webapp);
- s.setProtocol(protocol);
- s.setActive(active);
- s.setComment(comment);
-
- return em.merge(s);
-
- }
-
- /**
- * @deprecated use standard mechanism of
- * {@link IDataProviderDao#delete(org.apache.openmeetings.persistence.beans.OmEntity, long)}
- * @param id
- * @return
- */
- @Deprecated
- public boolean delete(long id) {
- Server s = get(id);
- if (s == null) {
- return false;
- }
- s.setDeleted(true);
- s = em.merge(s);
- //remove any active session with this server
- clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(s);
- return true;
- }
-
/*
* (non-Javadoc)
*
@@ -222,33 +164,24 @@ public class ServerDao implements IDataP
* .beans.OmEntity, long)
*/
public Server update(Server entity, long userId) {
- try {
- if (entity.getActive() != null && !entity.getActive()) {
- clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(entity);
+ if (entity.getActive() != null && !entity.getActive()) {
+ clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(entity);
+ }
+
+ entity.setDeleted(false);
+ if (entity.getId() > 0) {
+ if (userId > 0) {
+ entity.setUpdated(new Date());
+ entity.setUpdatedby(usersDao.get(userId));
}
-
- if (entity.getId() <= 0) {
+ em.merge(entity);
+ } else {
+ if (userId > 0) {
entity.setInserted(new Date());
entity.setInsertedby(usersDao.get(userId));
- entity.setDeleted(false);
- em.persist(entity);
- } else {
- entity.setUpdated(new Date());
- entity.setUpdatedby(usersDao.get(userId));
- entity.setDeleted(false);
- em.merge(entity);
}
- } catch (PersistenceException ex) {
- log.error("[update LdapConfig]", ex);
- }
- return entity;
- }
-
- public Server update(Server entity) {
- if (entity.getActive() != null && !entity.getActive()) {
- clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(entity);
+ em.persist(entity);
}
- em.merge(entity);
return entity;
}
@@ -260,7 +193,7 @@ public class ServerDao implements IDataP
* .beans.OmEntity, long)
*/
public void delete(Server entity, long userId) {
- if (entity.getId() >= 0) {
+ if (entity.getId() > 0) {
clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(entity);
entity.setUpdated(new Date());
entity.setUpdatedby(usersDao.get(userId));
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java Fri Dec 21 04:11:19 2012
@@ -120,7 +120,7 @@ public class ClusterSlaveJob implements
clientListManager.syncSlaveClientSession(server, slaveClients);
server.setLastPing(Calendar.getInstance());
- serverDao.update(server);
+ serverDao.update(server, -1L);
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java Fri Dec 21 04:11:19 2012
@@ -2992,10 +2992,23 @@ public class ScopeApplicationAdapter ext
* SIP transport methods
*/
+ private List<Long> getVerifyedActiveRoomIds(Server s) {
+ List<Long> result = new ArrayList<Long>(clientListManager.getActiveRoomIdsByServer(s));
+ //verify
+ for (Iterator<Long> i = result.iterator(); i.hasNext();) {
+ Long id = i.next();
+ List<RoomClient> rcs = clientListManager.getClientListByRoom(id, s);
+ if (rcs.size() == 0 || (rcs.size() == 1 && rcs.get(0).isSipTransport())) {
+ i.remove();
+ }
+ }
+ return result;
+ }
+
public synchronized List<Long> getActiveRoomIds() {
- List<Long> result = new ArrayList<Long>(clientListManager.getActiveRoomIdsByServer(null));
+ List<Long> result = getVerifyedActiveRoomIds(null);
for (Server s : serverDao.getActiveServers()) {
- result.addAll(clientListManager.getActiveRoomIdsByServer(s));
+ result.addAll(getVerifyedActiveRoomIds(s));
}
return result;
}
@@ -3056,6 +3069,7 @@ public class ScopeApplicationAdapter ext
currentClient.setAvsettings("av");
currentClient.setVWidth(120);
currentClient.setVHeight(90);
+ currentClient.setSipTransport(true);
this.clientListManager.updateClientByStreamId(streamid, currentClient, false);
Collection<Set<IConnection>> conCollection = current
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStore.java Fri Dec 21 04:11:19 2012
@@ -97,20 +97,47 @@ public class TestHashMapStore extends Ab
Server s1 = serverDao.get(1L);
if (s1 == null) {
- serverDao.saveServer(1L, "name 1", "127.0.0.1", 5080, "swagner",
- "qweqwe", "openmeetings", "http", true, "", 1L);
+ Server s = new Server();
+ s.setName("name 1");
+ s.setAddress("127.0.0.1");
+ s.setPort(5080);
+ s.setUser("swagner");
+ s.setPass("qweqwe");
+ s.setWebapp("openmeetings");
+ s.setProtocol("http");
+ s.setActive(true);
+ s.setComment("");
+ serverDao.update(s, 1L);
s1 = serverDao.get(1L);
}
Server s2 = serverDao.get(2L);
if (s2 == null) {
- serverDao.saveServer(2L, "name 2", "127.0.0.1", 5080, "swagner",
- "qweqwe", "openmeetings", "http", true, "", 1L);
+ Server s = new Server();
+ s.setName("name 2");
+ s.setAddress("127.0.0.1");
+ s.setPort(5080);
+ s.setUser("swagner");
+ s.setPass("qweqwe");
+ s.setWebapp("openmeetings");
+ s.setProtocol("http");
+ s.setActive(true);
+ s.setComment("");
+ serverDao.update(s, 1L);
s2 = serverDao.get(2L);
}
Server s3 = serverDao.get(3L);
if (s3 == null) {
- serverDao.saveServer(3L, "name 3", "127.0.0.1", 5080, "swagner",
- "qweqwe", "openmeetings", "http", true, "", 1L);
+ Server s = new Server();
+ s.setName("name 3");
+ s.setAddress("127.0.0.1");
+ s.setPort(5080);
+ s.setUser("swagner");
+ s.setPass("qweqwe");
+ s.setWebapp("openmeetings");
+ s.setProtocol("http");
+ s.setActive(true);
+ s.setComment("");
+ serverDao.update(s, 1L);
s3 = serverDao.get(3L);
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStoreSyncBug.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStoreSyncBug.java?rev=1424802&r1=1424801&r2=1424802&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStoreSyncBug.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/TestHashMapStoreSyncBug.java Fri Dec 21 04:11:19 2012
@@ -66,8 +66,17 @@ public class TestHashMapStoreSyncBug ext
Server s1 = serverDao.get(1L);
if (s1 == null) {
- serverDao.saveServer(1L, "name 1", "127.0.0.1", 5080, "swagner",
- "qweqwe", "openmeetings", "http", true, "", 1L);
+ Server s = new Server();
+ s.setName("name 1");
+ s.setAddress("127.0.0.1");
+ s.setPort(5080);
+ s.setUser("swagner");
+ s.setPass("qweqwe");
+ s.setWebapp("openmeetings");
+ s.setProtocol("http");
+ s.setActive(true);
+ s.setComment("");
+ serverDao.update(s, 1L);
s1 = serverDao.get(1L);
}