openmeetings-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebawag...@apache.org
Subject svn commit: r1435001 - in /incubator/openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ docs/ src/org/apache/openmeetings/axis/services/ src/org/apache/openmeetings/cluster/ src/org/apache/openmeetings/cluster/sync/ src/org/apache/openmeetings/confer...
Date Fri, 18 Jan 2013 01:20:00 GMT
Author: sebawagner
Date: Fri Jan 18 01:19:59 2013
New Revision: 1435001

URL: http://svn.apache.org/viewvc?rev=1435001&view=rev
Log:
OPENMEETINGS-460 Remove methods and objects that are not needed for cluster mode

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java
      - copied, changed from r1433278, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java
Removed:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/sync/IRestClientObserver.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ISharedSessionStore.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/SlaveClientDto.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/cluster/
Modified:
    incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
    incubator/openmeetings/trunk/singlewebapp/docs/RoomService.html
    incubator/openmeetings/trunk/singlewebapp/docs/ServerService.html
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebService.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/sync/RestClient.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDao.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml Fri Jan 18 01:19:59 2013
@@ -94,36 +94,9 @@
 		class="org.apache.openmeetings.data.flvrecord.converter.FlvInterviewConverter" />
 	<bean id="openmeetings.FlvRecorderConverter"
 		class="org.apache.openmeetings.data.flvrecord.converter.FlvRecorderConverter" />
+	<bean id="openmeetings.SlaveHTTPConnectionManager"
+		class="org.apache.openmeetings.cluster.SlaveHTTPConnectionManager" />
 	
-	<!-- 
-	#####################################################################
-	Comment this in to enable the OpenMeetings instance to act as Master
-	#####################################################################
-	 -->
-		
-	<bean id="openmeetings.ClusterSlaveJob" class="org.apache.openmeetings.quartz.scheduler.ClusterSlaveJob" />
-	<bean id="clusterSlaveJob"
-		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
-		<property name="targetObject">
-			<ref bean="openmeetings.ClusterSlaveJob" />
-		</property>
-		<property name="targetMethod">
-			<value>doIt</value>
-		</property>
-		<property name="concurrent" value="false" />
-	</bean>
-	<bean id="triggerClusterSlaveJob" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
-		<property name="jobDetail">
-			<ref bean="clusterSlaveJob" />
-		</property>
-		<property name="startDelay">
-			<value>5000</value>
-		</property>
-		<property name="repeatInterval">
-			<value>3000</value>
-		</property>
-	</bean>	
-		
 	<bean id="openmeetings.SessionClearJob" class="org.apache.openmeetings.quartz.scheduler.SessionClearJob" />
 	<bean id="sessionClearJob"
 		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
@@ -204,7 +177,6 @@
 				<ref local="triggerSessionClear" />
 				<ref local="triggerMeetingReminder" />
 				<ref local="triggerTestSetupCleanup" />
-				<ref local="triggerClusterSlaveJob" />
 			</list>
 		</property>
 	</bean>

Modified: incubator/openmeetings/trunk/singlewebapp/docs/RoomService.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/docs/RoomService.html?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/docs/RoomService.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/docs/RoomService.html Fri Jan 18 01:19:59 2013
@@ -239,10 +239,6 @@ limitations under the License.
                 <a href="#modifyRoomParameter"><b>modifyRoomParameter</b></a><br/>
                 <div class="navigation_comment"><i >Method to update arbitrary room parameter.</i></div>
                 </div>
-                                               <div>
-                <a href="#syncUploadCompleteMessage"><b>syncUploadCompleteMessage</b></a><br/>
-                <div class="navigation_comment"><i >This method is used in cluster mode to send the sync event from the master to the slave</i></div>
-                </div>
                            </div>
 	   
 	    <h3>Methods Details in RoomService</h3>
@@ -5148,168 +5144,6 @@ limitations under the License.
     			REST Sample Call/URL:<br/>
     			    			    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/modifyRoomParameter?SID=VALUE&room_id=VALUE&paramName=VALUE&paramValue=VALUE">http://localhost:5080/openmeetings/services/RoomService/modifyRoomParameter?SID=VALUE&amp;room_id=VALUE&amp;paramName=VALUE&amp;paramValue=VALUE</a>
     		  </div>
-    	   				    		      <div class="method">
-		        <div class="method_header">
-		        <div style="margin-left:10px">
-    			<a name="syncUploadCompleteMessage" ><b>syncUploadCompleteMessage</b></a>
-    			</div>
-    			</div>
-    			
-    			Method: <i>syncUploadCompleteMessage (
-    			    			    			       			   String SID
-    			       			    			       			     , 
-    			       			   String publicSID
-    			       			    			       			     , 
-    			       			   Long userId
-    			       			    			       			     , 
-    			       			   String message
-    			       			    			       			     , 
-    			       			   String action
-    			       			    			       			     , 
-    			       			   String error
-    			       			    			       			     , 
-    			       			   boolean hasError
-    			       			    			       			     , 
-    			       			   String fileName
-    			       			    			       			     , 
-    			       			   String fileSystemName
-    			       			    			       			     , 
-    			       			   boolean isPresentation
-    			       			    			       			     , 
-    			       			   boolean isImage
-    			       			    			       			     , 
-    			       			   boolean isVideo
-    			       			    			       			     , 
-    			       			   String fileHash
-    			       			    			)
-    			</i><br/>
-    			<p>
-    			  This method is used in cluster mode to send the sync event from the master to the slave
-    			</p>
-    			<p>
-                  Return Type: boolean
-                </p>
-    			<p>Params:</p>
-    			    			
-    				    			<table rules="all" border="1">
-	    			   <thead>
-	    			   <tr>
-	    			     <th width="200" align="left">Type</th>
-	    			     <th width="200" align="left">Fieldname</th>
-	    			     <th width="400" align="left">Description</th>
-	    			   </tr>
-	    			   </thead>
-	    			   <tbody>
-	    			   	    			   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">SID</td>
-	                     <td valign="top">The SID of the User. This SID must be marked as logged'in</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">publicSID</td>
-	                     <td valign="top">The publicSID that will receive the message</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		Long
-	                     		                     </td>
-	                     <td valign="top">userId</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">message</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">action</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">error</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		boolean
-	                     		                     </td>
-	                     <td valign="top">hasError</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">fileName</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">fileSystemName</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		boolean
-	                     		                     </td>
-	                     <td valign="top">isPresentation</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		boolean
-	                     		                     </td>
-	                     <td valign="top">isImage</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		boolean
-	                     		                     </td>
-	                     <td valign="top">isVideo</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">fileHash</td>
-	                     <td valign="top">part of sync message of document upload</td>
-	                   </tr>
-	                   
-	                   	                   	                   </tbody>
-	    			</table>
-    			    			<br/>
-    			REST Sample Call/URL:<br/>
-    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/syncUploadCompleteMessage?SID=VALUE&publicSID=VALUE&userId=VALUE&message=VALUE&action=VALUE&error=VALUE&hasError=VALUE&fileName=VALUE&fileSystemName=VALUE&isPresentation=VALUE&isImage=VALUE&isVideo=VALUE&fileHash=VALUE">http://localhost:5080/openmeetings/services/RoomService/syncUploadCompleteMessage?SID=VALUE&amp;publicSID=VALUE&amp;userId=VALUE&amp;message=VALUE&amp;action=VALUE&amp;error=VALUE&amp;hasError=VALUE&amp;fileName=VALUE&amp;fileSystemName=VALUE&amp;isPresentation=VALUE&amp;isImage=VALUE&amp;isVideo=VALUE&amp;fileHash=VALUE</a>
-    		  </div>
     	   			
 	
 	</body>

Modified: incubator/openmeetings/trunk/singlewebapp/docs/ServerService.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/docs/ServerService.html?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/docs/ServerService.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/docs/ServerService.html Fri Jan 18 01:19:59 2013
@@ -64,14 +64,6 @@ limitations under the License.
                 <a href="#deleteServer"><b>deleteServer</b></a><br/>
                 <div class="navigation_comment"><i >Method to delete server</i></div>
                 </div>
-                                               <div>
-                <a href="#ping"><b>ping</b></a><br/>
-                <div class="navigation_comment"><i >Load a ping from the slave, see <a
- href="http://incubator.apache.org/openmeetings/ClusteringManual.html"
- target
- ="_BLANK">http://incubator.apache.org/openmeetings/ClusteringManual.
- html</a></i></div>
-                </div>
                            </div>
 	   
 	    <h3>Methods Details in ServerService</h3>
@@ -375,53 +367,6 @@ limitations under the License.
     			REST Sample Call/URL:<br/>
     			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/ServerService/deleteServer?SID=VALUE&id=VALUE">http://localhost:5080/openmeetings/services/ServerService/deleteServer?SID=VALUE&amp;id=VALUE</a>
     		  </div>
-    	   				    		      <div class="method">
-		        <div class="method_header">
-		        <div style="margin-left:10px">
-    			<a name="ping" ><b>ping</b></a>
-    			</div>
-    			</div>
-    			
-    			Method: <i>ping (
-    			    			    			       			   String SID
-    			       			    			)
-    			</i><br/>
-    			<p>
-    			  Load a ping from the slave, see <a
- href="http://incubator.apache.org/openmeetings/ClusteringManual.html"
- target
- ="_BLANK">http://incubator.apache.org/openmeetings/ClusteringManual.
- html</a>
-    			</p>
-    			<p>
-                  Return Type: java.util.List
-                </p>
-    			<p>Params:</p>
-    			    			
-    				    			<table rules="all" border="1">
-	    			   <thead>
-	    			   <tr>
-	    			     <th width="200" align="left">Type</th>
-	    			     <th width="200" align="left">Fieldname</th>
-	    			     <th width="400" align="left">Description</th>
-	    			   </tr>
-	    			   </thead>
-	    			   <tbody>
-	    			   	    			   	    			   <tr>
-	                     <td valign="top">
-	                     		                     		String
-	                     		                     </td>
-	                     <td valign="top">SID</td>
-	                     <td valign="top">- session id to identify the user making request, WebService
-            Level required</td>
-	                   </tr>
-	                   
-	                   	                   	                   </tbody>
-	    			</table>
-    			    			<br/>
-    			REST Sample Call/URL:<br/>
-    			    			    				    												<a href="http://localhost:5080/openmeetings/services/ServerService/ping?SID=VALUE">http://localhost:5080/openmeetings/services/ServerService/ping?SID=VALUE</a>
-    		  </div>
     	   			
 	
 	</body>

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=1435001&r1=1435000&r2=1435001&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 Jan 18 01:19:59 2013
@@ -41,7 +41,6 @@ import org.apache.openmeetings.data.conf
 import org.apache.openmeetings.data.conference.Roommanagement;
 import org.apache.openmeetings.data.flvrecord.FlvRecordingDao;
 import org.apache.openmeetings.data.user.Usermanagement;
-import org.apache.openmeetings.documents.beans.UploadCompleteMessage;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
 import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording;
 import org.apache.openmeetings.persistence.beans.invitation.Invitations;
@@ -2506,50 +2505,4 @@ public class RoomWebService {
 		}
 	}
 	
-	/**
-	 * This method is used in cluster mode to send the sync event from the master to the slave
-	 * 
-	 * @param SID The SID of the User. This SID must be marked as logged'in
-	 * @param publicSID The publicSID that will receive the message
-	 * @param userId part of sync message of document upload
-	 * @param message part of sync message of document upload
-	 * @param action part of sync message of document upload
-	 * @param error part of sync message of document upload
-	 * @param hasError part of sync message of document upload
-	 * @param fileName part of sync message of document upload
-	 * @param fileSystemName part of sync message of document upload
-	 * @param isPresentation part of sync message of document upload
-	 * @param isImage part of sync message of document upload
-	 * @param isVideo part of sync message of document upload
-	 * @param fileHash part of sync message of document upload
-	 * @return true in case there were no errors, false otherwise
-	 * @throws AxisFault if any error occurred
-	 */
-	public boolean syncUploadCompleteMessage(String SID, String publicSID,
-			Long userId, String message, String action, String error,
-			boolean hasError, String fileName, String fileSystemName,
-			boolean isPresentation, boolean isImage, boolean isVideo,
-			String fileHash) throws AxisFault {
-
-		try {
-			Long users_id = sessionManagement.checkSession(SID);
-			Long user_level = userManagement.getUserLevelByID(users_id);
-			if (authLevelManagement.checkWebServiceLevel(user_level)) {
-
-				scopeApplicationAdapter.sendMessageWithClientByPublicSID(
-						new UploadCompleteMessage(userId, message, action,
-								error, hasError, fileName, fileSystemName,
-								isPresentation, isImage, isVideo, fileHash),
-						publicSID);
-
-				return true;
-			}
-		} catch (Exception err) {
-			log.error("[syncUploadCompleteMessage] ", err);
-
-			throw new AxisFault(err.getMessage());
-		}
-		return false;
-	}
-	
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java Fri Jan 18 01:19:59 2013
@@ -676,14 +676,4 @@ public class RoomWebServiceFacade {
 				paramName, paramValue);
 	}
 
-	public boolean syncUploadCompleteMessage(String SID, String publicSID,
-			Long userId, String message, String action, String error,
-			boolean hasError, String fileName, String fileSystemName,
-			boolean isPresentation, boolean isImage, boolean isVideo,
-			String fileHash) throws AxisFault {
-		return getRoomServiceProxy().syncUploadCompleteMessage(SID, publicSID,
-				userId, message, action, error, hasError, fileName,
-				fileSystemName, isPresentation, isImage, isVideo, fileHash);
-	}
-	
 }

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=1435001&r1=1435000&r2=1435001&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 Jan 18 01:19:59 2013
@@ -18,12 +18,8 @@
  */
 package org.apache.openmeetings.axis.services;
 
-import java.util.List;
-
 import org.apache.axis2.AxisFault;
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.ISharedSessionStore;
-import org.apache.openmeetings.conference.room.SlaveClientDto;
 import org.apache.openmeetings.data.basic.AuthLevelmanagement;
 import org.apache.openmeetings.data.basic.Sessionmanagement;
 import org.apache.openmeetings.data.basic.dao.ServerDao;
@@ -53,8 +49,6 @@ public class ServerWebService {
 	private AuthLevelmanagement authLevelManagement;
 	@Autowired
 	private ServerDao serversDao;
-	@Autowired
-	private ISharedSessionStore clientListManager;
 
 	/**
 	 * Method to retrieve the list of the servers participating in cluster
@@ -182,33 +176,4 @@ public class ServerWebService {
 		return false;
 	}
 
-	/**
-	 * Load a ping from the slave, see <a
-	 * href="http://incubator.apache.org/openmeetings/ClusteringManual.html"
-	 * target
-	 * ="_BLANK">http://incubator.apache.org/openmeetings/ClusteringManual.
-	 * html</a>
-	 * 
-	 * @param SID
-	 *            - session id to identify the user making request, WebService
-	 *            Level required
-	 * @return List of
-	 * @throws AxisFault
-	 */
-	public List<SlaveClientDto> ping(String SID)
-			throws AxisFault {
-		Long users_id = sessionManagement.checkSession(SID);
-		Long user_level = userManagement.getUserLevelByID(users_id);
-
-		if (authLevelManagement.checkWebServiceLevel(user_level)) {
-			
-			//sync the sessions to the masters session store
-			return clientListManager.getCurrentSlaveSessions();
-			
-		} else {
-			log.warn("Insuffisient permissions");
-			throw new AxisFault("Insuffisient permissions");
-		}
-	}
-
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java Fri Jan 18 01:19:59 2013
@@ -18,15 +18,12 @@
  */
 package org.apache.openmeetings.axis.services;
 
-import java.util.List;
-
 import javax.servlet.ServletContext;
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.SlaveClientDto;
 import org.apache.openmeetings.persistence.beans.basic.Server;
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 import org.red5.logging.Red5LoggerFactory;
@@ -93,12 +90,4 @@ public class ServerWebServiceFacade {
 		return getServerServiceProxy().deleteServer(SID, id);
 	}
 
-	/**
-	 * Proxy method please see {@link ServerWebService#ping(String)}
-	 */
-	public List<SlaveClientDto> ping(String SID)
-			throws AxisFault {
-		return getServerServiceProxy().ping(SID);
-	}
-	
 }

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java (from r1433278, 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/cluster/SlaveHTTPConnectionManager.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java&r1=1433278&r2=1435001&rev=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/quartz/scheduler/ClusterSlaveJob.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java Fri Jan 18 01:19:59 2013
@@ -16,35 +16,30 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.quartz.scheduler;
+package org.apache.openmeetings.cluster;
 
-import java.util.Calendar;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.cluster.sync.IRestClientObserver;
 import org.apache.openmeetings.cluster.sync.RestClient;
-import org.apache.openmeetings.conference.room.ISharedSessionStore;
-import org.apache.openmeetings.conference.room.SlaveClientDto;
-import org.apache.openmeetings.data.basic.dao.ServerDao;
-import org.apache.openmeetings.documents.beans.UploadCompleteMessage;
 import org.apache.openmeetings.persistence.beans.basic.Server;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
 
-public class ClusterSlaveJob implements IRestClientObserver {
+/**
+ * Manages connections to the other nodes of the cluster.
+ * 
+ * Use-case: When you kick a user via the admin-panel, it is probably on anther server.
+ * So you need to perform a REST call to the node and let that node do the actual disconnect.
+ * 
+ * @author sebawagner
+ *
+ */
+public class SlaveHTTPConnectionManager {
 
 	private static Logger log = Red5LoggerFactory.getLogger(
-			ClusterSlaveJob.class, OpenmeetingsVariables.webAppRootKey);
-
-	@Autowired
-	private ServerDao serverDao;
-	@Autowired
-	private ISharedSessionStore clientListManager;
-
+			SlaveHTTPConnectionManager.class, OpenmeetingsVariables.webAppRootKey);
 
 	/**
 	 * We store the list of RestClients in the memory, so that we can simply
@@ -75,55 +70,12 @@ public class ClusterSlaveJob implements 
 		}
 
 		if (restClient == null) {
-			restClient = new RestClient(this, server);
+			restClient = new RestClient(server);
 			restClientsSessionStore.put(server.getId(), restClient);
 		}
 		return restClient;
 	}
 
-	public void doIt() {
-		try {
-
-			for (Server server : serverDao.getActiveServers()) {
-
-				RestClient rClient = getRestClient(server);
-				
-				//If the ping is still running, we don't ping the client in this session
-				if (rClient.getPingRunning()) {
-					log.warn("The ping for the server " + server
-							+ " takes longer then the ping interval!");
-					continue;
-				}
-				
-				log.debug("ClusterSlaveJob. Ping server: " + server);
-
-				rClient.ping();
-
-			}
-
-		} catch (Exception e) {
-			log.error("Unexpected exception while doRoundTrip cluster.", e);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.apache.openmeetings.cluster.sync.IRestClientObserverEvent#pingComplete
-	 * (org.apache.openmeetings.persistence.beans.basic.Server, java.util.List)
-	 */
-	public void pingComplete(Server server, List<SlaveClientDto> slaveClients) {
-
-		log.debug("-- pingComplete -- For server: " + server+ " Size: "+slaveClients.size());
-
-		clientListManager.syncSlaveClientSession(server, slaveClients);
-
-		server.setLastPing(Calendar.getInstance());
-		serverDao.update(server, -1L);
-
-	}
-	
 	/**
 	 * Gets the current {@link RestClient} from the session store and then
 	 * performs a kickUser on that. It is not possible that there is no
@@ -147,27 +99,4 @@ public class ClusterSlaveJob implements 
 		
 	}
 	
-	/**
-	 * Gets the current {@link RestClient} from the session store and then
-	 * performs a kickUser on that. It is not possible that there is no
-	 * {@link RestClient}, because if you want to kick a user from a slave, the
-	 * master <i>must</i> already have loaded the sessions from the slave, so
-	 * there logically <i>must</i> by a {@link RestClient} available that has an 
-	 * open connection to that slave / {@link Server}
-	 * 
-	 * @param server
-	 * @param publicSID
-	 * @param uploadCompleteMessage
-	 * @throws Exception
-	 */
-	public void syncMessageToClientOnSlave(Server server, String publicSID, UploadCompleteMessage uploadCompleteMessage) throws Exception {
-		RestClient rClient = getRestClient(server);
-		
-		if (rClient == null) {
-			throw new Exception("No RestClient found for server " + server);
-		}
-		
-		rClient.syncMessage(publicSID, uploadCompleteMessage);
-	}
-
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/sync/RestClient.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/sync/RestClient.java?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/sync/RestClient.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/cluster/sync/RestClient.java Fri Jan 18 01:19:59 2013
@@ -19,9 +19,7 @@
 package org.apache.openmeetings.cluster.sync;
 
 import java.lang.reflect.Constructor;
-import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 
 import javax.xml.namespace.QName;
 
@@ -35,9 +33,6 @@ import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.RoomClient;
-import org.apache.openmeetings.conference.room.SlaveClientDto;
-import org.apache.openmeetings.documents.beans.UploadCompleteMessage;
 import org.apache.openmeetings.persistence.beans.basic.Server;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -56,19 +51,10 @@ public class RestClient {
 			RestClient.class, OpenmeetingsVariables.webAppRootKey);
 	
 	private enum Action {
-		//send a ping to the user
-		PING, 
 		//kick the user from the server
 		KICK_USER,
-		//send a sync message to a client on that server
-		SYNC_MESSAGE
 	}
 
-	/**
-	 * The observerInstance will be notified whenever a ping was completed
-	 */
-	private IRestClientObserver observerInstance;
-	
 	private Server server;
 	private final String host;
 	private final int port;
@@ -80,12 +66,8 @@ public class RestClient {
 	private boolean loginSuccess = false;
 	private String sessionId;
 	
-	private boolean pingRunning = false;
-
 	private String publicSID;
 
-	private UploadCompleteMessage uploadCompleteMessage;
-
 	/**
 	 * there are two publicSIDs, one for the kickUser REST call and one for the syncMessage call
 	 * theoretically they could be performed at the same time but to different users, so we don't want
@@ -95,15 +77,6 @@ public class RestClient {
 	
 	private static String nameSpaceForSlaveDto = "http://room.conference.openmeetings.apache.org/xsd";
 	
-	/**
-	 * returns true as long as the RestClient performs a ping and parses the result
-	 * 
-	 * @return
-	 */
-	public boolean getPingRunning() {
-		return pingRunning;
-	}
-
 	private static String NAMESPACE_PREFIX = "http://services.axis.openmeetings.apache.org";
 
 	private String getUserServiceEndPoint() {
@@ -111,11 +84,6 @@ public class RestClient {
 				+ "/services/UserService";
 	}
 
-	private String getServerServiceEndPoint() {
-		return protocol + "://" + host + ":" + port + "/" + webapp
-				+ "/services/ServerService";
-	}
-	
 	private String getRoomServiceEndPoint() {
 		return protocol + "://" + host + ":" + port + "/" + webapp
 				+ "/services/RoomService";
@@ -132,8 +100,7 @@ public class RestClient {
 	 * @param user
 	 * @param pass
 	 */
-	public RestClient(IRestClientObserver observerInstance, Server server) {
-		this.observerInstance = observerInstance;
+	public RestClient(Server server) {
 		this.server = server;
 		this.host = server.getAddress();
 		this.port = server.getPort();
@@ -152,8 +119,7 @@ public class RestClient {
 		RestClient rClient = new RestClient("127.0.0.1", 5080, "http",
 				"openmeetings", "swagner", "qweqwe");
 		try {
-			rClient.loginUser(Action.PING);
-			rClient.ping();
+			rClient.loginUser(Action.KICK_USER);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -231,12 +197,12 @@ public class RestClient {
 
 		loginSuccess = loginSuccessFromResult(loginUserResult);
 
-		if (action == Action.PING) {
-			ping();
-		} else if (action == Action.KICK_USER) {
-			kickUserInternl();
-		} else if (action == Action.SYNC_MESSAGE) {
-			syncMessageInternl();
+		switch (action) {
+			case KICK_USER:
+				kickUserInternl();
+				break;
+			default:
+				throw new Exception("No action defined");
 		}
 
 	}
@@ -266,82 +232,6 @@ public class RestClient {
 		return omElement;
 	}
 
-	
-	/**
-	 * set s the publicSID the message object and sends it to the slave by calling a REST service
-	 * 
-	 * @param publicSID
-	 * @param uploadCompleteMessage
-	 */
-	public void syncMessage(String publicSID, UploadCompleteMessage uploadCompleteMessage) {
-		this.publicSIDSync = publicSID;
-		this.uploadCompleteMessage = uploadCompleteMessage;
-		syncMessageInternl();
-	}
-	
-	private void syncMessageInternl() {
-		try {
-			
-			if (!loginSuccess) {
-				loginUser(Action.SYNC_MESSAGE);
-			}
-			
-			ServiceClient sender = createServiceClient(getRoomServiceEndPoint());
-			OMElement syncMessageResult = sender
-					.sendReceive(getPayloadMethodSyncMessage());
-			Boolean result = syncMessageResultFromResult(syncMessageResult);
-			
-			if (!result) {
-				throw new Exception("Could not sync message to slave host");
-			}
-			
-		} catch (Exception err) {
-			log.error("[syncMessage failed]", err);
-		}
-	}
-	
-	private Boolean syncMessageResultFromResult(OMElement result) throws Exception {
-		QName kickUserResult = new QName(NAMESPACE_PREFIX, "return");
-
-		@SuppressWarnings("unchecked")
-		Iterator<OMElement> elements = result.getChildrenWithName(kickUserResult);
-		if (elements.hasNext()) {
-			OMElement resultElement = elements.next();
-			if (resultElement.getText().equals("true")) {
-				return true;
-			} else {
-				throw new Exception("Could not delete user from slave host, returns: "
-						+ resultElement.getText());
-			}
-		} else {
-			throw new Exception("Could not parse kickUserByPublicSID result");
-		}
-	}
-	
-	private OMElement getPayloadMethodSyncMessage() {
-		
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace omNs = fac.createOMNamespace(NAMESPACE_PREFIX, "pre");
-		OMElement method = fac.createOMElement("syncUploadCompleteMessage", omNs);
-
-		method.addChild(createOMElement(fac, omNs, "SID", sessionId));
-		method.addChild(createOMElement(fac, omNs, "publicSID", publicSIDSync));
-		method.addChild(createOMElement(fac, omNs, "userId", ""+ uploadCompleteMessage.getUserId()));
-		method.addChild(createOMElement(fac, omNs, "message", uploadCompleteMessage.getMessage()));
-		method.addChild(createOMElement(fac, omNs, "action", uploadCompleteMessage.getAction()));
-		method.addChild(createOMElement(fac, omNs, "error", uploadCompleteMessage.getError()));
-		method.addChild(createOMElement(fac, omNs, "hasError", ""+uploadCompleteMessage.isHasError()));
-		method.addChild(createOMElement(fac, omNs, "fileName", uploadCompleteMessage.getFileName()));
-		
-		method.addChild(createOMElement(fac, omNs, "fileSystemName", uploadCompleteMessage.getFileSystemName()));
-		method.addChild(createOMElement(fac, omNs, "isPresentation", ""+uploadCompleteMessage.getIsPresentation()));
-		method.addChild(createOMElement(fac, omNs, "isImage", ""+uploadCompleteMessage.getIsImage()));
-		method.addChild(createOMElement(fac, omNs, "isVideo", ""+uploadCompleteMessage.getIsVideo()));
-		method.addChild(createOMElement(fac, omNs, "fileHash", uploadCompleteMessage.getFileHash()));
-		
-		return method;
-	}
-
 	/**
 	 * sets the publicSID and removes a user from a slave host by calling a REST service
 	 * 
@@ -402,52 +292,6 @@ public class RestClient {
 	}
 
 	/**
-	 * verifies if the user is logged in, if yes, it will try to load the
-	 * current list of sessions from the slave
-	 * 
-	 * @throws Exception
-	 */
-	public void ping() {
-		try {
-			//flag this ping flow as active, so that the scheduler does not run multiple ping's 
-			//on the same instance, at the same time, cause a ping could take longer then the 
-			//scheduler interval, for example because of the server load
-			pingRunning = true;
-			
-			if (!loginSuccess) {
-				loginUser(Action.PING);
-			} else {
-				 
-				ServiceClient sender = createServiceClient(getServerServiceEndPoint());
-				OMElement pingResult = sender
-						.sendReceive(getPayloadMethodPingTemp());
-
-				List<SlaveClientDto> slaveClients = pingFromResult(pingResult);
-
-				if (this.observerInstance != null) {
-					this.observerInstance.pingComplete(server, slaveClients);
-				}
-				
-				//flag this flow as complete
-				pingRunning = false;
-
-			}
-			// Catches all errors to make sure the observer is notified that the
-			// ping was performed (even when performed badly)
-		} catch (Exception ex) {
-			
-			//Clear the list of clients if there are any for this server
-			if (this.observerInstance != null) {
-				this.observerInstance.pingComplete(server, new ArrayList<SlaveClientDto>(0));
-			}
-			
-			//flag this flow as complete
-			pingRunning = false;
-			log.error("[ping failed]", ex);
-		}
-	}
-
-	/**
 	 * Create the REST request to get a new session Id
 	 * 
 	 * @return
@@ -481,7 +325,7 @@ public class RestClient {
 	}
 
 	/**
-	 * create the payload to login to another openmeetings instance via REST
+	 * create the payload to login to another OpenMeetings instance via REST
 	 * 
 	 * @return
 	 */
@@ -523,55 +367,6 @@ public class RestClient {
 	}
 
 	/**
-	 * Create the REST request for the ping method to load the users
-	 * 
-	 * @return
-	 */
-	private OMElement getPayloadMethodPingTemp() throws Exception {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace omNs = fac.createOMNamespace(NAMESPACE_PREFIX, "pre");
-		OMElement method = fac.createOMElement("ping", omNs);
-		method.addChild(createOMElement(fac, omNs, "SID", sessionId));
-		return method;
-	}
-
-	/**
-	 * Parses the result of the rest request and returns a list of
-	 * {@link RoomClient}s
-	 * 
-	 * @param result
-	 *            the result of the REST request
-	 * @return list of {@link RoomClient}s
-	 * @throws Exception
-	 */
-	private List<SlaveClientDto> pingFromResult(OMElement result) throws Exception {
-
-		QName pingResult = new QName(NAMESPACE_PREFIX, "return");
-
-		@SuppressWarnings("unchecked")
-		Iterator<OMElement> elements = result.getChildrenWithName(pingResult);
-		List<SlaveClientDto> clients = new ArrayList<SlaveClientDto>();
-		while (elements.hasNext()) {
-			OMElement resultElement = elements.next();
-			SlaveClientDto slaveDto = new SlaveClientDto( //
-					getElementTextByName(resultElement, "streamid", String.class), //
-					getElementTextByName(resultElement, "publicSID", String.class), //
-					getElementTextByName(resultElement, "roomId", Long.class), //
-					getElementTextByName(resultElement, "userId", Long.class), //
-					getElementTextByName(resultElement, "firstName", String.class), //
-					getElementTextByName(resultElement, "lastName", String.class), //
-					getElementTextByName(resultElement, "AVClient", Boolean.class), //
-					getElementTextByName(resultElement, "scope", String.class), //
-					getElementTextByName(resultElement, "username", String.class), //
-					getElementTextByName(resultElement, "connectedSince", String.class)
-				); //
-			log.debug(slaveDto.toString());
-			clients.add(slaveDto);
-		}
-		return clients;
-	}
-	
-	/**
 	 * Get and cast the element's text (if there is any)
 	 * 
 	 * @param resultElement

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/conference/room/ClientListHashMapStore.java Fri Jan 18 01:19:59 2013
@@ -47,7 +47,7 @@ import org.springframework.beans.factory
  * @author sebawagner
  * 
  */
-public class ClientListHashMapStore implements IClientList, ISharedSessionStore {
+public class ClientListHashMapStore implements IClientList {
 
 	protected static final Logger log = Red5LoggerFactory.getLogger(
 			ClientListHashMapStore.class, OpenmeetingsVariables.webAppRootKey);
@@ -341,53 +341,6 @@ public class ClientListHashMapStore impl
 		return numberOfPublishingUsers;
 	}
 	
-	public void cleanSessionsOfDeletedOrDeactivatedServer(Server server) {
-		//we need to summarize those clients in a second list first, cause there are 
-		//multiple lists to be cleaned up and an iterator will not work
-		ArrayList<RoomClient> serverList = new ArrayList<RoomClient>();
-		serverList.addAll(cache.getClientsByServer(server).values());
-		
-		for (RoomClient rcl : serverList) {
-			cache.remove(server, rcl.getStreamid());
-		}
-	}
-
-	public void syncSlaveClientSession(Server server,
-			List<SlaveClientDto> clients) {
-		
-		// delete all existing client sessions by that slave, updating existing ones
-		// makes no sense, we don't know anything about the start or end date
-		// so at this point we can just remove them all and add them new
-		cleanSessionsOfDeletedOrDeactivatedServer(server);
-
-		for (SlaveClientDto slaveClientDto : clients) {
-			cache.put(
-					server, slaveClientDto.getStreamid(),
-					new RoomClient(
-								slaveClientDto.getStreamid(), 
-								slaveClientDto.getPublicSID(),
-								slaveClientDto.getRoomId(), 
-								slaveClientDto.getUserId(),
-								slaveClientDto.getFirstName(), 
-								slaveClientDto.getLastName(), 
-								slaveClientDto.isAVClient(),
-								slaveClientDto.getUsername(),
-								slaveClientDto.getConnectedSince(),
-								slaveClientDto.getScope()
-							));
-		}
-
-	}
-	
-	public List<SlaveClientDto> getCurrentSlaveSessions() {
-		List<SlaveClientDto> clients = new ArrayList<SlaveClientDto>(
-				cache.size());
-		for (RoomClient rcl : cache.getClientsByServer(null).values()) {
-			clients.add(new SlaveClientDto(rcl));
-		}
-		return clients;
-	}
-	
 	public Set<Long> getActiveRoomIdsByServer(Server server) {
 		if (cache.getClientsByServerAndRoom(server) == null) {
 			return EMPTY_HASH_SET;

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=1435001&r1=1435000&r2=1435001&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 Jan 18 01:19:59 2013
@@ -27,7 +27,6 @@ import javax.persistence.PersistenceCont
 import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.ISharedSessionStore;
 import org.apache.openmeetings.data.IDataProviderDao;
 import org.apache.openmeetings.data.user.dao.UsersDao;
 import org.apache.openmeetings.persistence.beans.basic.Server;
@@ -56,9 +55,6 @@ public class ServerDao implements IDataP
 	@Autowired
 	private UsersDao usersDao;
 	
-	@Autowired
-	private ISharedSessionStore clientListManager;
-
 	/**
 	 * Get a list of all available servers
 	 * 
@@ -164,10 +160,6 @@ public class ServerDao implements IDataP
 	 * .beans.OmEntity, long)
 	 */
 	public Server update(Server entity, long userId) {
-		if (entity.getActive() != null && !entity.getActive()) {
-			clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(entity);
-		}
-		
 		entity.setDeleted(false);
 		if (entity.getId() > 0) {
 			if (userId > 0) {
@@ -194,7 +186,6 @@ public class ServerDao implements IDataP
 	 */
 	public void delete(Server entity, long userId) {
 		if (entity.getId() > 0) {
-			clientListManager.cleanSessionsOfDeletedOrDeactivatedServer(entity);
 			entity.setUpdated(new Date());
 			entity.setUpdatedby(usersDao.get(userId));
 			entity.setDeleted(true);

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1435001&r1=1435000&r2=1435001&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java Fri Jan 18 01:19:59 2013
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.TimeZone;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.cluster.SlaveHTTPConnectionManager;
 import org.apache.openmeetings.conference.room.IClientList;
 import org.apache.openmeetings.conference.room.RoomClient;
 import org.apache.openmeetings.data.basic.AuthLevelmanagement;
@@ -59,7 +60,6 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.user.Salutations;
 import org.apache.openmeetings.persistence.beans.user.UserContacts;
 import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.quartz.scheduler.ClusterSlaveJob;
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.templates.RequestContactConfirmTemplate;
 import org.apache.openmeetings.templates.RequestContactTemplate;
@@ -135,7 +135,7 @@ public class UserService {
 	@Autowired
 	private ServerDao serverDao;
 	@Autowired
-	private ClusterSlaveJob clusterSlaveJob;
+	private SlaveHTTPConnectionManager slaveHTTPConnectionManager;
 
 	/**
 	 * get your own user-object
@@ -565,7 +565,7 @@ public class UserService {
 					Server server = serverDao.get(serverId);
 					RoomClient rcl = clientListManager.getClientByStreamId(
 							streamid, server);
-					clusterSlaveJob.kickSlaveUser(server, rcl.getPublicSID());
+					slaveHTTPConnectionManager.kickSlaveUser(server, rcl.getPublicSID());
 					
 					// true means only the REST call is performed, it is no
 					// confirmation that the user is really kicked from the

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=1435001&r1=1435000&r2=1435001&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 Jan 18 01:19:59 2013
@@ -30,7 +30,6 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
-import org.apache.openmeetings.conference.room.ClientSessionInfo;
 import org.apache.openmeetings.conference.room.IClientList;
 import org.apache.openmeetings.conference.room.RoomClient;
 import org.apache.openmeetings.conference.whiteboard.BrowserStatus;
@@ -52,7 +51,6 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.calendar.MeetingMember;
 import org.apache.openmeetings.persistence.beans.rooms.Rooms;
 import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.quartz.scheduler.ClusterSlaveJob;
 import org.apache.openmeetings.remote.FLVRecorderService;
 import org.apache.openmeetings.remote.WhiteBoardService;
 import org.apache.openmeetings.utils.OmFileHelper;
@@ -107,8 +105,6 @@ public class ScopeApplicationAdapter ext
 	@Autowired
 	private MeetingMemberDao meetingMemberDao;
 	@Autowired
-	private ClusterSlaveJob clusterSlaveJob;
-	@Autowired
 	private ServerDao serverDao;
 
 	public static String lineSeperator = System.getProperty("line.separator");
@@ -2517,30 +2513,13 @@ public class ScopeApplicationAdapter ext
 			
 			if (currentClient != null) {
 				sendMessageWithClientByPublicSID(message, publicSID);
-				return;
-			}
-			
-			//Check if the client is on any slave host
-			ClientSessionInfo clientSessionInfo = this.clientListManager.getClientByPublicSIDAnyServer(publicSID, false);
-			
-			if (clientSessionInfo == null) {
+			} else {
 				throw new Exception(
 						"Could not Find RoomClient on List publicSID: "+ publicSID);
 			}
 			
-			Server s = clientSessionInfo.getServerId() != null ? serverDao
-					.get(clientSessionInfo.getServerId()) : null;
-			if (s == null) {
-				throw new Exception("Found session has the server null rcl: "
-						+ clientSessionInfo.getRcl() + " serverId: "
-						+ clientSessionInfo.getServerId() + " publicSID: " 
-						+ publicSID);
-			}
-			
-			clusterSlaveJob.syncMessageToClientOnSlave(s, clientSessionInfo.getRcl().getPublicSID() , message);
-			
 		} catch (Exception err) {
-			log.error("[sendMessageWithClient] ", err);
+			log.error("[sendUploadCompletMessageByPublicSID] ", err);
 		}
 	}
 	



Mime
View raw message