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 2013/10/03 19:19:32 UTC

svn commit: r1528946 - in /openmeetings/trunk/singlewebapp: ./ src/main/java/org/apache/openmeetings/data/flvrecord/converter/ src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/ src/main/java/org/apache/openmeetings/db/dao/record/ src...

Author: solomax
Date: Thu Oct  3 17:19:31 2013
New Revision: 1528946

URL: http://svn.apache.org/r1528946
Log:
[OPENMEETINGS-688] red5 version is bumped
	code clean up

Modified:
    openmeetings/trunk/singlewebapp/.classpath
    openmeetings/trunk/singlewebapp/build.properties
    openmeetings/trunk/singlewebapp/build.xml
    openmeetings/trunk/singlewebapp/ivy.xml
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ChatService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/PollService.java
    openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java

Modified: openmeetings/trunk/singlewebapp/.classpath
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/.classpath?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/.classpath (original)
+++ openmeetings/trunk/singlewebapp/.classpath Thu Oct  3 17:19:31 2013
@@ -30,31 +30,32 @@
 	</classpathentry>
 	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=Openmeetings&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=%24%7Bworkspace_loc%3AOpenmeetings%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/red5-io-1.0.2.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/red5-server.jar"/>
+	<classpathentry kind="lib" path="build/red5/client/dist/red5_client-jar-r4393.jar"/>
 	<classpathentry kind="lib" path="build/lib/java_16_tools.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/red5-server.jar" sourcepath="build/red5/server/src/main/java"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/slf4j-api-1.7.2.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-core-3.1.1.RELEASE.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-beans-3.1.1.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/slf4j-api-1.7.5.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-core-3.1.4.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-beans-3.1.4.RELEASE.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/mina-core-2.0.7.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/quartz-2.1.6.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/log4j-over-slf4j-1.7.2.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/log4j-over-slf4j-1.7.5.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/commons-collections-20040616.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-web-3.1.1.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-web-3.1.4.RELEASE.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/commons-beanutils-1.8.3.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/commons-lang3-3.1.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/logback-core-1.0.9.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/logback-classic-1.0.9.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-asm-3.1.1.RELEASE.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-expression-3.1.1.RELEASE.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-context-3.1.1.RELEASE.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-context-support-3.1.1.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/logback-core-1.0.13.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/logback-classic-1.0.13.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-asm-3.1.4.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-expression-3.1.4.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-context-3.1.4.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-context-support-3.1.4.RELEASE.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/aopalliance-1.0.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-aop-3.1.1.RELEASE.jar"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-test-3.1.1.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-aop-3.1.4.RELEASE.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/lib/spring-test-3.1.4.RELEASE.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/commons-pool-1.5.6.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/ehcache-core-2.5.0.jar"/>
-	<classpathentry kind="lib" path="build/red5/client/dist/red5-client-1.0.2-SNAPSHOT.jar" sourcepath="build/red5/client/src/main/java"/>
-	<classpathentry kind="lib" path="build/red5/server/dist/plugins/tomcat-embed-core-jar-7.0.41.jar"/>
+	<classpathentry kind="lib" path="build/red5/server/dist/plugins/tomcat-embed-core-7.0.41.jar"/>
 	<classpathentry kind="lib" path="build/red5/server/dist/lib/bcprov-jdk15on-1.47.jar"/>
 	<classpathentry kind="output" path="build/classes/eclipse"/>
 </classpath>

Modified: openmeetings/trunk/singlewebapp/build.properties
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/build.properties?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/build.properties (original)
+++ openmeetings/trunk/singlewebapp/build.properties Thu Oct  3 17:19:31 2013
@@ -14,9 +14,9 @@ project.status=SNAPSHOT
 project.distname=openmeetings
 ivy.install.version=2.3.0
 maven.version=3.0.4
-red5.server.revision=4639
-red5.client.revision=4639
-red5.server.version=1.0.2-SNAPSHOT
+red5.server.revision=4722
+red5.client.revision=4393
+red5.server.version=1.0.2-RC3
 laszlo.proxied=solo
 wicket.mode=DEPLOYMENT
 backup.file.list=backup_v_1_4_rc1_r3326.zip,backup_v_1_5_rc1_r3393.zip,backup_v_1_6_2_r3675.zip,backup_v_1_7_0_r3822.zip,backup_v_1_8_8_r4555.zip,backup_v_1_9_1_r4707.zip,backup_v_2_0_0_r1361497.zip

Modified: openmeetings/trunk/singlewebapp/build.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/build.xml?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/build.xml (original)
+++ openmeetings/trunk/singlewebapp/build.xml Thu Oct  3 17:19:31 2013
@@ -1,16 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
  -->
 <!DOCTYPE project>
 <project name="openmeetings" basedir="./" default="dist"
@@ -95,9 +100,9 @@
 	
 	<!-- compile classpath -->
 	<path id="check.classpath">
+		<fileset dir="${red5.lib}" includes="*.jar" />
 		<fileset dir="${red5.server.lib}" includes="*.jar" />
 		<fileset dir="${red5.client.lib}" includes="*.jar" />
-		<fileset dir="${red5.lib}" includes="*.jar" />
 		<fileset dir="${mainlibs.lib.dir}" includes="*.jar" />
 		<fileset dir="${om.lib.dir}" includes="*.jar" />
 		<fileset dir="${junit.lib.dir}" includes="*.jar" />
@@ -405,7 +410,6 @@
 		</genkey>
 		<copy todir="${screenshare.out.dir}">
 			<fileset dir="${red5.server.lib}" includes="commons-codec*.jar" />
-			<fileset dir="${red5.server.lib}" includes="commons-lang3*.jar" />
 			<fileset dir="${red5.server.lib}" includes="httpclient*.jar" />
 			<fileset dir="${red5.server.lib}" includes="httpcore*.jar" />
 			<fileset dir="${red5.server.lib}" includes="bcprov*.jar" />
@@ -414,14 +418,13 @@
 			<fileset dir="${red5.server.lib}" includes="slf4j-api*.jar" />
 			<fileset dir="${red5.server.lib}" includes="jcl-over-slf4j*.jar" />
 			<fileset dir="${red5.server.lib}" includes="commons-collections*.jar" />
-			<fileset dir="${red5.lib}" includes="red5-server*.jar" excludes="*bootstrap.jar" />
 			<fileset dir="${red5.server.lib}" includes="spring-context-3*.jar" />
 			<fileset dir="${red5.server.lib}" includes="spring-core-*.jar" />
 			<fileset dir="${red5.server.lib}" includes="spring-beans-*.jar" />
 			<fileset dir="${red5.server.lib}" includes="logback*.jar" />
 			<fileset dir="${red5.server.lib}" includes="mina-core*.jar" />
 			<fileset dir="${red5.server.lib}" includes="com.springsource.slf4j.api*.jar" />
-			<fileset dir="${red5.client.lib}" includes="red5-client*.jar" />
+			<fileset dir="${red5.client.lib}" includes="red5*.jar" />
 		</copy>
 		<signjar alias="filetest" keystore="${keystore.file}" storepass="secret" lazy="false"
 			sigalg="MD5withRSA" digestalg="SHA1">
@@ -1045,15 +1048,7 @@
 		</delete>
 	
 		<!-- START of Tomcat 7 patch -->
-		<delete>
-			<fileset dir="${red5.lib}/plugins" includes="*.jar" />
-		</delete>
-		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
-			<param name="ivy.conf.name" value="tomcat7" />
-			<param name="ivy.lib.location" value="${red5.lib}/plugins" />
-		</antcall>
 		<delete file="${red5.lib}/lib/javaee-api-5.1.2.jar" />
- 		<delete file="${red5.lib}/lib/servlet-api-2.5.jar" />
 		<!-- END of Tomcat 7 patch -->
 		<delete dir="${red5.lib}/webapps/installer" />
 		<delete dir="${red5.lib}/webapps/live" />
@@ -1074,18 +1069,10 @@
 	
 	<!-- Check for the Red5 client libraries -->
 	<target name="-retrieve-red5-client" unless="red5.client.installed" description="Retrieves the libraries if needed" depends="-retrieve-red5-server">
-		<svn refid="svn.settings">
-			<checkout url="https://red5.googlecode.com/svn/java/client/trunk/" revision="${red5.client.revision}" destPath="${red5.client.dir}" />
-		</svn>
-		<artifact:mvn pom="${red5.client.dir}/pom.xml" mavenVersion="${maven.version}" fork="true" dir="${red5.client.dir}">
-			<jvmarg value="-Dmaven.buildNumber.doUpdate=false" />
-			<arg value="clean"/>
-			<arg value="install"/>
-			<jvmarg value="-Dmaven.test.skip=true" />
-		</artifact:mvn>
-		<copy todir="${red5.client.lib}" overwrite="true" force="true">
-			<fileset dir="${red5.client.dir}/target" includes="red5-client-*.jar" excludes="*javadoc.jar,*sources.jar" />
-		</copy>
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="red5-client" />
+			<param name="ivy.lib.location" value="${red5.client.lib}" />
+		</antcall>
 		<echo message="Red5 Client build" />
 	</target>
 

Modified: openmeetings/trunk/singlewebapp/ivy.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/ivy.xml?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ openmeetings/trunk/singlewebapp/ivy.xml Thu Oct  3 17:19:31 2013
@@ -1,16 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
  -->
 <ivy-module version="2.0"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -33,7 +38,7 @@
 		<conf name="openlaszlo46" description="Openlaszlo with Flex 4.6 dependencies" />
 		<conf name="mysql" description="MySQL JDBC driver" />
 		<conf name="mvn" description="Maven Ant task to build Red5" />
-		<conf name="tomcat7" description="Libraries necessary for patching Red5 to use Tomcat7" />
+		<conf name="red5-client" description="Red5 Client/Server for screensharing" />
 	</configurations>
 	<dependencies>
 		<!--  START OF mainlib -->
@@ -46,22 +51,22 @@
 		<dependency org="asm" name="asm" rev="3.1" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.springframework" name="spring-aspects" rev="3.1.1.RELEASE" transitive="false">
+		<dependency org="org.springframework" name="spring-aspects" rev="3.1.4.RELEASE" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.springframework" name="spring-jdbc" rev="3.1.1.RELEASE" transitive="false">
+		<dependency org="org.springframework" name="spring-jdbc" rev="3.1.4.RELEASE" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.springframework" name="spring-orm" rev="3.1.1.RELEASE" transitive="false">
+		<dependency org="org.springframework" name="spring-orm" rev="3.1.4.RELEASE" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.springframework" name="spring-tx" rev="3.1.1.RELEASE" transitive="false">
+		<dependency org="org.springframework" name="spring-tx" rev="3.1.4.RELEASE" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.springframework" name="spring-webmvc" rev="3.1.1.RELEASE" transitive="false">
+		<dependency org="org.springframework" name="spring-webmvc" rev="3.1.4.RELEASE" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.springframework" name="spring-context-support" rev="3.1.1.RELEASE" transitive="false">
+		<dependency org="org.springframework" name="spring-context-support" rev="3.1.4.RELEASE" transitive="false">
 			<include type="jar" />
 		</dependency>
 		<!-- include type="bundle" / FIXME unable to get openjpa without  sources -->
@@ -320,7 +325,7 @@
 		<!--  END OF OPENMEETINGS -->
 
 		<!--  START OF JUNIT -->
-		<dependency org="org.springframework" name="spring-test" rev="3.1.1.RELEASE" conf="junit->*" transitive="false">
+		<dependency org="org.springframework" name="spring-test" rev="3.1.4.RELEASE" conf="junit->*" transitive="false">
 			<include type="jar" />
 		</dependency>
 		<dependency org="ant-contrib" name="ant-contrib" rev="1.0b3" conf="junit->*" transitive="false">
@@ -386,20 +391,11 @@
 			<include type="jar" />
 		</dependency>
 
-		<!-- Tomcat 7 -->
-		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-core" conf="tomcat7->*" rev="7.0.41" transitive="false" >
-			<include type="jar" />
-		</dependency>
-		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-jasper" conf="tomcat7->*" rev="7.0.41" transitive="false" >
-			<include type="jar" />
-		</dependency>
-		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-logging-juli" conf="tomcat7->*" rev="7.0.41" transitive="false" >
-			<include type="jar" />
-		</dependency>
-		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-logging-log4j" conf="tomcat7->*" rev="7.0.41" transitive="false" >
+		<!-- Red5 Client/Server for screensharing -->
+		<dependency org="red5_client" name="red5_client" rev="r4393" conf="red5-client->*" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="tomcatplugin" name="tomcatplugin" rev="1.4" conf="tomcat7->*" transitive="false">
+		<dependency org="red5_server" name="red5_server" rev="r4393" conf="red5-client->*" transitive="false">
 			<include type="jar" />
 		</dependency>
 		

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverter.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverter.java Thu Oct  3 17:19:31 2013
@@ -102,10 +102,9 @@ public class FlvRecorderConverter extend
 							+ flvRecordingMetaDataOfScreen.getFlvRecordingMetaDataId());
 
 					Thread.sleep(100L);
-
-					flvRecordingMetaDataOfScreen = flvRecordingMetaDataDaoImpl.get(flvRecordingMetaDataOfScreen
-							.getFlvRecordingMetaDataId());
-
+					
+					flvRecordingMetaDataOfScreen = flvRecordingMetaDataDaoImpl.get(flvRecordingMetaDataOfScreen.getFlvRecordingMetaDataId());
+					
 					if (flvRecordingMetaDataOfScreen.getStreamReaderThreadComplete()) {
 						log.debug("### Screen Stream now written Thread continue - ");
 						doStop = false;

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java Thu Oct  3 17:19:31 2013
@@ -29,12 +29,12 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.openmeetings.utils.OmFileHelper;
 import org.red5.io.IStreamableFile;
-import org.red5.io.IStreamableFileFactory;
-import org.red5.io.IStreamableFileService;
 import org.red5.io.ITagWriter;
-import org.red5.io.StreamableFileFactory;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
+import org.red5.server.api.service.IStreamableFileService;
+import org.red5.server.api.stream.IStreamableFileFactory;
+import org.red5.server.stream.StreamableFileFactory;
 import org.red5.server.util.ScopeUtils;
 import org.slf4j.Logger;
 
@@ -89,8 +89,8 @@ public abstract class BaseStreamWriter i
 	private void init() throws IOException {
 		file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), streamName + ".flv");
 
-		IStreamableFileFactory factory = (IStreamableFileFactory) ScopeUtils.getScopeService(scope,
-				IStreamableFileFactory.class, StreamableFileFactory.class);
+		IStreamableFileFactory factory = (IStreamableFileFactory) ScopeUtils.getScopeService(scope, IStreamableFileFactory.class,
+				StreamableFileFactory.class);
 
 		if (!file.isFile()) {
 			// Maybe the (previously existing) file has been deleted

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java Thu Oct  3 17:19:31 2013
@@ -66,7 +66,6 @@ public class StreamAudioWriter extends B
 		FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
 		metaData.setStreamReaderThreadComplete(false);
 		metaDataDao.update(metaData);
-
 	}
 
 	@Override

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java Thu Oct  3 17:19:31 2013
@@ -35,7 +35,6 @@ import org.slf4j.Logger;
 public class StreamVideoWriter extends BaseStreamWriter {
 	private static final Logger log = Red5LoggerFactory.getLogger(StreamVideoWriter.class, webAppRootKey);
 	private Date startedSessionScreenTimeDate = null;
-
 	private final FlvRecordingMetaDataDao metaDataDao;
 
 	public StreamVideoWriter(String streamName, IScope scope, Long flvRecordingMetaDataId, boolean isScreenData,
@@ -58,7 +57,6 @@ public class StreamVideoWriter extends B
 
 			if (startedSessionScreenTimeDate == null) {
 				startedSessionScreenTimeDate = virtualTime;
-
 				// Calculate the delta between the initial start and the first packet data
 				initialDelta = startedSessionScreenTimeDate.getTime() - startedSessionTimeDate.getTime();
 

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java Thu Oct  3 17:19:31 2013
@@ -36,137 +36,128 @@ import org.springframework.transaction.a
 
 @Transactional
 public class FlvRecordingMetaDataDao {
-	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingMetaDataDao.class,
-			webAppRootKey);
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingMetaDataDao.class, webAppRootKey);
 	@PersistenceContext
 	private EntityManager em;
 	@Autowired
 	private FlvRecordingDao flvRecordingDao;
-	
+
 	public FlvRecordingMetaData get(Long flvRecordingMetaDataId) {
-		try { 
-			
-			String hql = "SELECT c FROM FlvRecordingMetaData c " +
-					"WHERE c.flvRecordingMetaDataId = :flvRecordingMetaDataId";
-			
+		try {
+
+			String hql = "SELECT c FROM FlvRecordingMetaData c WHERE c.flvRecordingMetaDataId = :flvRecordingMetaDataId";
+
 			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
 			query.setParameter("flvRecordingMetaDataId", flvRecordingMetaDataId);
-			
+
 			FlvRecordingMetaData flvRecordingMetaData = null;
 			try {
 				flvRecordingMetaData = query.getSingleResult();
-		    } catch (NoResultException ex) {
-		    }
-			
+			} catch (NoResultException ex) {
+			}
+
 			return flvRecordingMetaData;
-			
+
 		} catch (Exception ex2) {
-			log.error("[getFlvRecordingMetaDataById]: ",ex2);
+			log.error("[getFlvRecordingMetaDataById]: ", ex2);
 		}
 		return null;
 	}
-	
+
 	public List<FlvRecordingMetaData> getFlvRecordingMetaDataByRecording(Long flvRecordingId) {
-		try { 
-			
-			String hql = "SELECT c FROM FlvRecordingMetaData c " +
-					"WHERE c.flvRecording.flvRecordingId = :flvRecordingId " +
-					"AND c.deleted <> :deleted ";
-			
+		try {
+
+			String hql = "SELECT c FROM FlvRecordingMetaData c " + "WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+					+ "AND c.deleted <> :deleted ";
+
 			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
 			query.setParameter("flvRecordingId", flvRecordingId);
 			query.setParameter("deleted", true);
-			
+
 			List<FlvRecordingMetaData> flvRecordingMetaDatas = query.getResultList();
-			
+
 			return flvRecordingMetaDatas;
-			
+
 		} catch (Exception ex2) {
-			log.error("[getFlvRecordingMetaDataByRecording]: ",ex2);
+			log.error("[getFlvRecordingMetaDataByRecording]: ", ex2);
 		}
 		return null;
 	}
-	
+
 	public List<FlvRecordingMetaData> getFlvRecordingMetaDataAudioFlvsByRecording(Long flvRecordingId) {
-		try { 
-			
-			String hql = "SELECT c FROM FlvRecordingMetaData c " +
-					"WHERE c.flvRecording.flvRecordingId = :flvRecordingId " +
-					"AND (" +
-						"(c.isScreenData = false) " +
-							" AND " +
-						"(c.isAudioOnly = true OR (c.isAudioOnly = false AND c.isVideoOnly = false))" +
-					")";
-			
+		try {
+
+			String hql = "SELECT c FROM FlvRecordingMetaData c " + "WHERE c.flvRecording.flvRecordingId = :flvRecordingId " + "AND ("
+					+ "(c.isScreenData = false) " + " AND " + "(c.isAudioOnly = true OR (c.isAudioOnly = false AND c.isVideoOnly = false))"
+					+ ")";
+
 			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
 			query.setParameter("flvRecordingId", flvRecordingId);
-			
+
 			List<FlvRecordingMetaData> flvRecordingMetaDatas = query.getResultList();
-			
+
 			return flvRecordingMetaDatas;
-			
+
 		} catch (Exception ex2) {
-			log.error("[getFlvRecordingMetaDataAudioFlvsByRecording]: ",ex2);
+			log.error("[getFlvRecordingMetaDataAudioFlvsByRecording]: ", ex2);
 		}
 		return null;
 	}
-	
+
 	public FlvRecordingMetaData getFlvRecordingMetaDataScreenFlvByRecording(Long flvRecordingId) {
-		try { 
-			
-			String hql = "SELECT c FROM FlvRecordingMetaData c " +
-					"WHERE c.flvRecording.flvRecordingId = :flvRecordingId " +
-					"AND c.isScreenData = true";
-			
+		try {
+
+			String hql = "SELECT c FROM FlvRecordingMetaData c " + "WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+					+ "AND c.isScreenData = true";
+
 			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
 			query.setParameter("flvRecordingId", flvRecordingId);
-			
+
 			List<FlvRecordingMetaData> flvRecordingMetaDatas = query.getResultList();
-			
+
 			if (flvRecordingMetaDatas.size() > 0) {
 				return flvRecordingMetaDatas.get(0);
 			}
-			
+
 		} catch (Exception ex2) {
-			log.error("[getFlvRecordingMetaDataScreenFlvByRecording]: ",ex2);
+			log.error("[getFlvRecordingMetaDataScreenFlvByRecording]: ", ex2);
 		}
 		return null;
 	}
-	
-	public Long addFlvRecordingMetaData(Long flvRecordingId, String freeTextUserName, 
-					Date recordStart, Boolean isAudioOnly, Boolean isVideoOnly, 
-					Boolean isScreenData, String streamName, Integer interiewPodId) {
-		try { 
-			
+
+	public Long addFlvRecordingMetaData(Long flvRecordingId, String freeTextUserName, Date recordStart, Boolean isAudioOnly,
+			Boolean isVideoOnly, Boolean isScreenData, String streamName, Integer interiewPodId) {
+		try {
+
 			FlvRecordingMetaData flvRecordingMetaData = new FlvRecordingMetaData();
-			
+
 			flvRecordingMetaData.setDeleted(false);
-			
+
 			flvRecordingMetaData.setFlvRecording(flvRecordingDao.get(flvRecordingId));
 			flvRecordingMetaData.setFreeTextUserName(freeTextUserName);
 			flvRecordingMetaData.setInserted(new Date());
-			
+
 			flvRecordingMetaData.setRecordStart(recordStart);
-			
+
 			flvRecordingMetaData.setIsAudioOnly(isAudioOnly);
 			flvRecordingMetaData.setIsVideoOnly(isVideoOnly);
 			flvRecordingMetaData.setIsScreenData(isScreenData);
-			
+
 			flvRecordingMetaData.setStreamName(streamName);
-			
+
 			flvRecordingMetaData.setInteriewPodId(interiewPodId);
-			
+
 			flvRecordingMetaData = em.merge(flvRecordingMetaData);
 			Long flvRecordingMetaDataId = flvRecordingMetaData.getFlvRecordingMetaDataId();
-			
+
 			return flvRecordingMetaDataId;
-			
+
 		} catch (Exception ex2) {
-			log.error("[addFlvRecordingMetaData]: ",ex2);
+			log.error("[addFlvRecordingMetaData]: ", ex2);
 		}
 		return null;
 	}
-	
+
 	public Long addFlvRecordingMetaDataObj(FlvRecordingMetaData flvRecordingMetaData) {
 		try {
 
@@ -181,12 +172,10 @@ public class FlvRecordingMetaDataDao {
 		return null;
 	}
 
-	public Long updateFlvRecordingMetaDataEndDate(Long flvRecordingMetaDataId, 
-										Date recordEnd) {
-		try { 
-			
+	public Long updateFlvRecordingMetaDataEndDate(Long flvRecordingMetaDataId, Date recordEnd) {
+		try {
 			FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);
-			
+
 			flvRecordingMetaData.setRecordEnd(recordEnd);
 			
 			log.debug("updateFlvRecordingMetaDataEndDate :: Start Date :"+flvRecordingMetaData.getRecordStart());
@@ -195,46 +184,37 @@ public class FlvRecordingMetaDataDao {
 			this.update(flvRecordingMetaData);
 			
 			return flvRecordingMetaDataId;
-			
 		} catch (Exception ex2) {
-			log.error("[updateFlvRecordingMetaDataEndDate]: ",ex2);
+			log.error("[updateFlvRecordingMetaDataEndDate]: ", ex2);
 		}
 		return null;
 	}
 
-	public Long updateFlvRecordingMetaDataInitialGap(Long flvRecordingMetaDataId, 
-										long initalGap) {
-		try { 
-			
+	public Long updateFlvRecordingMetaDataInitialGap(Long flvRecordingMetaDataId, long initalGap) {
+		try {
 			FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);
-			
+
 			flvRecordingMetaData.setInitialGapSeconds(Long.valueOf(initalGap).intValue());
-			
 			this.update(flvRecordingMetaData);
-			
 			return flvRecordingMetaDataId;
-			
 		} catch (Exception ex2) {
-			log.error("[updateFlvRecordingMetaDataEndDate]: ",ex2);
+			log.error("[updateFlvRecordingMetaDataEndDate]: ", ex2);
 		}
 		return null;
 	}
 
 	public Long update(FlvRecordingMetaData flvRecordingMetaData) {
-		try { 
-			
+		try {
 			if (flvRecordingMetaData.getFlvRecordingMetaDataId() == 0) {
 				em.persist(flvRecordingMetaData);
-		    } else {
-		    	if (!em.contains(flvRecordingMetaData)) {
-		    		em.merge(flvRecordingMetaData);
-			    }
+			} else {
+				if (!em.contains(flvRecordingMetaData)) {
+					em.merge(flvRecordingMetaData);
+				}
 			}
-			
 		} catch (Exception ex2) {
-			log.error("[updateFlvRecordingMetaData]: ",ex2);
+			log.error("[updateFlvRecordingMetaData]: ", ex2);
 		}
 		return null;
 	}
-	
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ChatService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ChatService.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ChatService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ChatService.java Thu Oct  3 17:19:31 2013
@@ -25,6 +25,7 @@ import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.conference.RoomManager;
@@ -157,7 +158,8 @@ public class ChatService implements IPen
 			log.debug("SET CHATROOM: " + room_id);
 
 			//broadcast to everybody in the room/domain
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						
@@ -179,6 +181,7 @@ public class ChatService implements IPen
     			 	}
     			}
 			}
+			}
 		} catch (Exception err) {
 			log.error("[ChatService sendMessageWithClient] ",err);
 			return -1;
@@ -215,7 +218,8 @@ public class ChatService implements IPen
 			hsm.put("message", newMessage);
 
 			// broadcast to everybody in the room/domain
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -237,6 +241,7 @@ public class ChatService implements IPen
 					}
 				}
 			}
+			}
 		} catch (Exception err) {
 			log.error("[ChatService sendMessageWithClient] ", err);
 			return -1;

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java Thu Oct  3 17:19:31 2013
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openmeetings.OpenmeetingsVariables;
@@ -217,7 +218,8 @@ public class ConferenceLibrary implement
 				sendObject.put("roomitems", roomItems);
 
 				// Notify all Clients of that Scope (Room)
-				for (IConnection conn : current.getScope().getClientConnections()) {
+				for (Set<IConnection> conset : current.getScope().getConnections()) {
+				for (IConnection conn : conset) {
 					if (conn != null) {
 						if (conn instanceof IServiceCapableConnection) {
 							Client rcl = this.sessionManager
@@ -235,7 +237,7 @@ public class ConferenceLibrary implement
 						}
 					}
 				}
-
+				}
 			}
 		} catch (Exception err) {
 			log.error("[loadWmlObject] ", err);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java Thu Oct  3 17:19:31 2013
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.Op
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.openmeetings.data.basic.AuthLevelUtil;
 import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewConverterTask;
@@ -108,8 +109,7 @@ public class FLVRecorderService implemen
 
 			log.debug("getCurrentRoomClient -2- " + streamid);
 
-			Client currentClient = this.sessionManager
-					.getClientByStreamId(streamid, null);
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
 
 			for (Client rcl : sessionManager.getClientListByRoom(currentClient.getRoom_id())) {
 				if (rcl.getIsRecording()) {
@@ -128,7 +128,6 @@ public class FLVRecorderService implemen
 	private static String generateFileName(Long flvRecording_id, String streamid) throws Exception {
 		String dateString = CalendarPatterns.getTimeForStreamId(new java.util.Date());
 		return "rec_" + flvRecording_id + "_stream_" + streamid + "_" + dateString;
-
 	}
 
 	public String recordMeetingStream(String roomRecordingName, String comment, Boolean isInterview) {
@@ -153,51 +152,41 @@ public class FLVRecorderService implemen
 			sessionManager.updateClientByStreamId(current.getClient().getId(), currentClient, false, null);
 
 			// get all stream and start recording them
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
 
-						// Send every user a notification that the recording did start
+						// Send every user a notification that the recording did
+						// start
 						if (!rcl.getIsAVClient()) {
-							((IServiceCapableConnection) conn).invoke("startedRecording",
-									new Object[] { currentClient }, this);
+							((IServiceCapableConnection) conn).invoke("startedRecording", new Object[] { currentClient }, this);
 						}
 
 						// If its the recording client we need another type
 						// of Meta Data
 						if (rcl.getIsScreenClient()) {
-
 							if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
-
-								String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName()
-										.toString());
+								String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
 
 								Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(
 										flvRecordingId, rcl.getFirstname() + " " + rcl.getLastname(), now, false,
 										false, true, streamName_Screen, rcl.getInterviewPodId());
 
 								// Start FLV Recording
-								recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId,
-										true, isInterview);
+								recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId, true, isInterview);
 
 								// Add Meta Data
 								rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
 
 								sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
-
 							}
-
-						} else if
-						// if the user does publish av, a, v
-						// But we only record av or a, video only is not
-						// interesting
-						(rcl.getIsAVClient()
-								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl
-										.getAvsettings().equals("v"))) {
-
-							String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID())
-									.toString());
+						} else if (rcl.getIsAVClient()
+								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
+							// if the user does publish av, a, v
+							// But we only record av or a, video only is not interesting
+							String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID()).toString());
 
 							// Add Meta Data
 							boolean isAudioOnly = false;
@@ -210,24 +199,22 @@ public class FLVRecorderService implemen
 								isVideoOnly = true;
 							}
 
-							Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(
-									flvRecordingId, rcl.getFirstname() + " " + rcl.getLastname(), now, isAudioOnly,
-									isVideoOnly, false, streamName, rcl.getInterviewPodId());
+							Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId,
+									rcl.getFirstname() + " " + rcl.getLastname(), now, isAudioOnly, isVideoOnly, false, streamName,
+									rcl.getInterviewPodId());
 
 							rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
 
 							sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
 
 							// Start FLV recording
-							recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName,
-									flvRecordingMetaDataId, false, isInterview);
-
+							recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName, flvRecordingMetaDataId, false,
+									isInterview);
 						}
-
 					}
 				}
 			}
-
+			}
 			return roomRecordingName;
 
 		} catch (Exception err) {
@@ -245,8 +232,8 @@ public class FLVRecorderService implemen
 	 * @param flvRecordingMetaDataId
 	 * @throws Exception
 	 */
-	private synchronized void recordShow(IConnection conn, String broadcastid, String streamName,
-			Long flvRecordingMetaDataId, boolean isScreenData, Boolean isInterview) throws Exception {
+	private synchronized void recordShow(IConnection conn, String broadcastid, String streamName, Long flvRecordingMetaDataId,
+			boolean isScreenData, Boolean isInterview) throws Exception {
 		try {
 			log.debug("Recording show for: " + conn.getScope().getContextPath());
 			log.debug("Name of CLient and Stream to be recorded: " + broadcastid);
@@ -254,8 +241,7 @@ public class FLVRecorderService implemen
 			log.debug("Scope " + conn);
 			log.debug("Scope " + conn.getScope());
 			// Get a reference to the current broadcast stream.
-			ClientBroadcastStream stream = (ClientBroadcastStream) scopeApplicationAdapter.getBroadcastStream(
-					conn.getScope(), broadcastid);
+			ClientBroadcastStream stream = (ClientBroadcastStream) scopeApplicationAdapter.getBroadcastStream(conn.getScope(), broadcastid);
 
 			if (stream == null) {
 				log.debug("Unable to get stream: " + streamName);
@@ -268,14 +254,13 @@ public class FLVRecorderService implemen
 			log.debug("### flvRecordingMetaDataId " + flvRecordingMetaDataId);
 			log.debug("### isScreenData " + isScreenData);
 			log.debug("### isInterview " + isInterview);
-
-			StreamListener streamAudioListener = new StreamListener(!isScreenData, streamName, conn.getScope(),
+			StreamListener streamListener = new StreamListener(!isScreenData, streamName, conn.getScope(),
 					flvRecordingMetaDataId, isScreenData, isInterview, flvRecordingMetaDataDao,
 					flvRecordingMetaDeltaDao);
 
-			streamListeners.put(flvRecordingMetaDataId, streamAudioListener);
+			streamListeners.put(flvRecordingMetaDataId, streamListener);
 
-			stream.addStreamListener(streamAudioListener);
+			stream.addStreamListener(streamListener);
 			// Just for Debug Purpose
 			// stream.saveAs(streamName+"_DEBUG", false);
 		} catch (Exception e) {
@@ -298,8 +283,7 @@ public class FLVRecorderService implemen
 			}
 
 			log.debug("** stopRecordingShow: " + conn);
-			log.debug("### Stop recording show for broadcastId: " + broadcastId + " || "
-					+ conn.getScope().getContextPath());
+			log.debug("### Stop recording show for broadcastId: " + broadcastId + " || " + conn.getScope().getContextPath());
 
 			Object streamToClose = scopeApplicationAdapter.getBroadcastStream(conn.getScope(), broadcastId);
 
@@ -336,9 +320,7 @@ public class FLVRecorderService implemen
 				FlvRecordingMetaData flvRecordingMetaData = flvRecordingMetaDataDaoImpl.get(flvRecordingMetaDataId);
 				flvRecordingMetaData.setStreamReaderThreadComplete(true);
 				flvRecordingMetaDataDaoImpl.update(flvRecordingMetaData);
-
-				throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId "
-						+ flvRecordingMetaDataId);
+				throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId " + flvRecordingMetaDataId);
 			}
 
 			listenerAdapter.closeStream();
@@ -354,10 +336,10 @@ public class FLVRecorderService implemen
 			log.debug("stopRecordAndSave " + currentClient.getUsername() + "," + currentClient.getUserip());
 
 			// get all stream and stop recording them
-			for (IConnection conn : scope.getClientConnections()) {
+			for (Set<IConnection> conset : scope.getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
-
 						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
 
 						// FIXME: Check if this function is really in use at
@@ -371,34 +353,25 @@ public class FLVRecorderService implemen
 						log.debug("is this users still alive? stop it :" + rcl);
 
 						if (rcl.getIsScreenClient()) {
-
 							if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
-
 								// Stop FLV Recording
 								stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
 
 								// Update Meta Data
-								flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(
-										rcl.getFlvRecordingMetaDataId(), new Date());
+								flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
 							}
-
 						} else if (rcl.getIsAVClient()
-								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl
-										.getAvsettings().equals("v"))) {
+								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
 
-							stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()).toString(),
-									rcl.getFlvRecordingMetaDataId());
+							stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), rcl.getFlvRecordingMetaDataId());
 
 							// Update Meta Data
-							flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(),
-									new Date());
-
+							flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
 						}
-
 					}
 				}
 			}
-
+			}
 			// Store to database
 			Long flvRecordingId = currentClient.getFlvRecordingId();
 
@@ -409,34 +382,23 @@ public class FLVRecorderService implemen
 			}
 
 			if (flvRecordingId != null) {
-
-				flvRecordingDaoImpl.updateFlvRecordingEndTime(flvRecordingId, new Date(),
-						currentClient.getOrganization_id());
+				flvRecordingDaoImpl.updateFlvRecordingEndTime(flvRecordingId, new Date(), currentClient.getOrganization_id());
 
 				// Reset values
 				currentClient.setFlvRecordingId(null);
 				currentClient.setIsRecording(false);
 
 				sessionManager.updateClientByStreamId(currentClient.getStreamid(), currentClient, false, null);
-
 				log.debug("flvRecorderConverterTask ", flvRecorderConverterTask);
 
 				FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
-
 				if (flvRecording.getIsInterview() == null || !flvRecording.getIsInterview()) {
-
 					flvRecorderConverterTask.startConversionThread(flvRecordingId);
-
 				} else {
-
 					flvInterviewConverterTask.startConversionThread(flvRecordingId);
-
 				}
-
 			}
-
 		} catch (Exception err) {
-
 			log.error("[-- stopRecordAndSave --]", err);
 		}
 		return new Long(-1);
@@ -451,8 +413,7 @@ public class FLVRecorderService implemen
 
 			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
 
-			log.debug("getCurrentRoomClient -#########################- "
-					+ currentClient.getRoom_id());
+			log.debug("getCurrentRoomClient -#########################- " + currentClient.getRoom_id());
 
 			for (Client rcl : sessionManager.getClientListByRoomAll(currentClient.getRoom_id())) {
 				if (rcl.getIsRecording()) {
@@ -486,13 +447,11 @@ public class FLVRecorderService implemen
 					stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
 
 					// Update Meta Data
-					flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(),
-							new Date());
+					flvRecordingMetaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
 				}
 
 			} else if (rcl.getIsAVClient()
-					&& (rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v") || rcl.getAvsettings()
-							.equals("av"))) {
+					&& (rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v") || rcl.getAvsettings().equals("av"))) {
 
 				// FIXME: Is there really a need to stop it manually if the user
 				// just stops the stream?
@@ -509,23 +468,19 @@ public class FLVRecorderService implemen
 
 	public void addRecordingByStreamId(IConnection conn, String streamId, Client rcl, Long flvRecordingId) {
 		try {
-
 			FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
 
 			Date now = new Date();
 
 			// If its the recording client we need another type of Meta Data
 			if (rcl.getIsScreenClient()) {
-
 				if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
-
 					String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
 
 					log.debug("##############  ADD SCREEN OF SHARER :: " + rcl.getStreamPublishName());
 
-					Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId,
-							rcl.getFirstname() + " " + rcl.getLastname(), now, false, false, true, streamName_Screen,
-							rcl.getInterviewPodId());
+					Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId, rcl.getFirstname()
+							+ " " + rcl.getLastname(), now, false, false, true, streamName_Screen, rcl.getInterviewPodId());
 
 					// Start FLV Recording
 					recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId, true,
@@ -535,12 +490,9 @@ public class FLVRecorderService implemen
 					rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
 
 					sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
-
 				}
-
 			} else if (rcl.getIsAVClient()
-					&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings()
-							.equals("v"))) {
+					&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
 				// if the user does publish av, a, v
 				// But we only record av or a, video only is not interesting
 
@@ -556,13 +508,12 @@ public class FLVRecorderService implemen
 					isVideoOnly = true;
 				}
 
-				Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId,
-						rcl.getFirstname() + " " + rcl.getLastname(), now, isAudioOnly, isVideoOnly, false, streamName,
-						rcl.getInterviewPodId());
+				Long flvRecordingMetaDataId = flvRecordingMetaDataDao.addFlvRecordingMetaData(flvRecordingId, rcl.getFirstname() + " "
+						+ rcl.getLastname(), now, isAudioOnly, isVideoOnly, false, streamName, rcl.getInterviewPodId());
 
 				// Start FLV recording
-				recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName, flvRecordingMetaDataId,
-						false, flvRecording.getIsInterview());
+				recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName, flvRecordingMetaDataId, false,
+						flvRecording.getIsInterview());
 
 				rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
 
@@ -575,8 +526,8 @@ public class FLVRecorderService implemen
 		}
 	}
 
-	public Long restartConversion(String SID, Long flvRecordingId, Integer leftSideLoud, Integer rightSideLoud,
-			Integer leftSideTime, Integer rightSideTime) {
+	public Long restartConversion(String SID, Long flvRecordingId, Integer leftSideLoud, Integer rightSideLoud, Integer leftSideTime,
+			Integer rightSideTime) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
 			Long user_level = userManager.getUserLevelByID(users_id);
@@ -595,8 +546,8 @@ public class FLVRecorderService implemen
 				if (flvRecording.getIsInterview() == null || !flvRecording.getIsInterview()) {
 					flvRecorderConverterTask.startConversionThread(flvRecordingId);
 				} else {
-					flvInterviewReConverterTask.startConversionThread(flvRecordingId, leftSideLoud, rightSideLoud,
-							leftSideTime, rightSideTime);
+					flvInterviewReConverterTask.startConversionThread(flvRecordingId, leftSideLoud, rightSideLoud, leftSideTime,
+							rightSideTime);
 				}
 			}
 		} catch (Exception err) {

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/PollService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/PollService.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/PollService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/PollService.java Thu Oct  3 17:19:31 2013
@@ -20,6 +20,7 @@ package org.apache.openmeetings.remote;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.user.UserManager;
@@ -136,9 +137,9 @@ public class PollService implements IPen
 	public void sendNotification(IConnection current, String clientFunction,
 			Object[] obj) throws Exception {
 		// Notify all clients of the same scope (room)
-		Client rc = this.sessionManager.getClientByStreamId(current
-				.getClient().getId(), null);
-		for (IConnection conn : current.getScope().getClientConnections()) {
+		Client rc = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
+		for (Set<IConnection> conset : current.getScope().getConnections()) {
+		for (IConnection conn : conset) {
 			if (conn != null) {
 				if (conn instanceof IServiceCapableConnection) {
 					Client rcl = this.sessionManager
@@ -159,6 +160,7 @@ public class PollService implements IPen
 				}
 			}
 		}
+		}
 	}
 
 	public List<PollType> getPollTypeList() {

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1528946&r1=1528945&r2=1528946&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java Thu Oct  3 17:19:31 2013
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.db
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -423,7 +424,8 @@ public class ScopeApplicationAdapter ext
     	HashSet<Integer> broadcastList = new HashSet<Integer>();
         IConnection current = Red5.getConnectionLocal();
         String streamid = current.getClient().getId();
-        for (IConnection conn : current.getScope().getClientConnections()) {
+        for (Set<IConnection> conset : current.getScope().getConnections()) {
+        for (IConnection conn : conset) {
             if (conn != null) {
                 Client rcl = this.sessionManager
                         .getClientByStreamId(conn
@@ -449,6 +451,7 @@ public class ScopeApplicationAdapter ext
                 }
             }
         }
+        }
         return new ArrayList<Integer>(broadcastList);
     }
 
@@ -603,9 +606,10 @@ public class ScopeApplicationAdapter ext
 			// and room except the current disconnected cause it could throw an exception
 			log.debug("currentScope " + currentScope);
 
-			if (currentScope != null && currentScope.getClientConnections() != null) {
+			if (currentScope != null && currentScope.getConnections() != null) {
 				// Notify Users of the current Scope
-				for (IConnection cons : currentScope.getClientConnections()) {
+				for (Set<IConnection> conset : currentScope.getConnections()) {
+				for (IConnection cons : conset) {
 					if (cons != null && cons instanceof IServiceCapableConnection) {
 
 						log.debug("sending roomDisconnect to " + cons
@@ -670,6 +674,7 @@ public class ScopeApplicationAdapter ext
 						}
 					}
 				}
+				}
 			}
 
 			if (removeUserFromSessionList) {
@@ -724,7 +729,8 @@ public class ScopeApplicationAdapter ext
 
 			// Notify all users of the same Scope
 			// We need to iterate through the streams to catch if anybody is recording
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						
@@ -774,7 +780,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[streamPublishStart]", err);
 		}
@@ -847,7 +853,8 @@ public class ScopeApplicationAdapter ext
 					+ " " + currentClient.getStreamid());
 
 			// Notify all clients of the same scope (room)
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						if (conn.equals(current)) {
@@ -905,6 +912,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
+			}
 		} catch (Exception err) {
 			log.error("[sendClientBroadcastNotifications]", err);
 		}
@@ -961,7 +969,8 @@ public class ScopeApplicationAdapter ext
 					currentClient.getStreamPublishName());
 
 			// Notify all users of the same Scope
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -982,7 +991,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[setNewCursorPosition]", err);
 		}
@@ -1012,7 +1021,8 @@ public class ScopeApplicationAdapter ext
 					.getCurrentModeratorByRoom(room_id);
 
 			// Notify all clients of the same scope (room)
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -1029,7 +1039,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[addModerator]", err);
 		}
@@ -1059,7 +1069,8 @@ public class ScopeApplicationAdapter ext
 		    		currentClient.getStreamid(), currentClient, false, null);
 		    
 			// Notify all clients of the same scope (room)
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -1077,7 +1088,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[setBroadCastingFlag]", err);
 		}
@@ -1104,7 +1115,8 @@ public class ScopeApplicationAdapter ext
 					currentClient.getStreamid(), currentClient, false, null);
 
 			// Notify all clients of the same scope (room)
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					Client rcl = this.sessionManager
 							.getClientByStreamId(conn.getClient().getId(), null);
@@ -1131,7 +1143,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[giveExclusiveAudio]", err);
 		}
@@ -1278,7 +1290,8 @@ public class ScopeApplicationAdapter ext
 			hsm.put("client", currentClient);
 			hsm.put("message", newMessage);
 
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -1294,7 +1307,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 			return currentClient;
 		} catch (Exception err) {
 			log.error("[setUserAVSettings]", err);
@@ -1774,7 +1787,7 @@ public class ScopeApplicationAdapter ext
 
 			if (scopeHibernate != null) {
 
-				Set<IConnection> conset = webAppKeyScope.getScope(room_id.toString()).getClientConnections();
+				for (Set<IConnection> conset : webAppKeyScope.getScope(room_id.toString()).getConnections()) {
 				for (IConnection conn : conset) {
 					if (conn != null) {
 						if (conn instanceof IServiceCapableConnection) {
@@ -1792,7 +1805,7 @@ public class ScopeApplicationAdapter ext
 						}
 					}
 				}
-
+				}
 			} else {
 				log.debug("sendMessageByRoomAndDomain servlet not yet started  - roomID : '"
 						+ room_id + "'");
@@ -1898,7 +1911,8 @@ public class ScopeApplicationAdapter ext
 			boolean showDrawStatus = getWhiteboardDrawStatus();
 
 			// Notify all Clients of that Scope (Room)
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -1920,7 +1934,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[sendVarsByWhiteboardId]", err);
 		}
@@ -1941,7 +1955,8 @@ public class ScopeApplicationAdapter ext
 			if (ismod) {
 				log.debug("CurrentScope :" + current.getScope().getName());
 				// Send to all Clients of the same Scope
-				for (IConnection conn : current.getScope().getClientConnections()) {
+				for (Set<IConnection> conset : current.getScope().getConnections()) {
+				for (IConnection conn : conset) {
 					if (conn != null) {
 						if (conn instanceof IServiceCapableConnection) {
 							IClient client = conn.getClient();
@@ -1962,6 +1977,7 @@ public class ScopeApplicationAdapter ext
 						}
 					}
 				}
+				}
 				return 1;
 			} else {
 				// log.debug("*..*you are not allowed to send: "+ismod);
@@ -2095,7 +2111,8 @@ public class ScopeApplicationAdapter ext
 			IConnection current = Red5.getConnectionLocal();
 
 			// Send to all Clients of that Scope(Room)
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						IClient client = conn.getClient();
@@ -2116,6 +2133,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
+			}
 		} catch (Exception err) {
 			log.error("[syncMessageToCurrentScope]", err);
 		}
@@ -2180,7 +2198,8 @@ public class ScopeApplicationAdapter ext
 			hsm.put("message", newMessage);
 
 			// broadcast Message to specific user with id inside the same Scope
-			for (IConnection conn : scope.getClientConnections()) {
+			for (Set<IConnection> conset : scope.getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					if (conn instanceof IServiceCapableConnection) {
 						if (conn.getClient().getId().equals(clientId)) {
@@ -2191,6 +2210,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
+			}
 		} catch (Exception err) {
 			log.error("[sendMessageWithClient] ", err);
 			return -1;
@@ -2217,13 +2237,15 @@ public class ScopeApplicationAdapter ext
 			hsm.put("message", newMessage);
 
 			// broadcast Message to specific user with id inside the same Scope
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn.getClient().getId().equals(clientId)) {
 					((IServiceCapableConnection) conn).invoke(
 							"sendVarsToMessageWithClient",
 							new Object[] { hsm }, this);
 				}
 			}
+			}
 		} catch (Exception err) {
 			log.error("[sendMessageWithClient] ", err);
 			return -1;
@@ -2284,7 +2306,7 @@ public class ScopeApplicationAdapter ext
 			if (scopeHibernate != null) {
 				// Notify the clients of the same scope (room) with user_id
 
-				Set<IConnection> conset = webAppKeyScope.getScope(scopeName).getClientConnections();
+				for (Set<IConnection> conset : webAppKeyScope.getScope(scopeName).getConnections()) {
 				for (IConnection conn : conset) {
 					IClient client = conn.getClient();
 					if (SessionVariablesUtil.isScreenClient(client)) {
@@ -2302,7 +2324,7 @@ public class ScopeApplicationAdapter ext
 									new Object[] { message }, this);
 					}
 				}
-
+				}
 			} else {
 				// Scope not yet started
 			}
@@ -2331,14 +2353,14 @@ public class ScopeApplicationAdapter ext
 				currentClient = sessionManager.getClientByUserId(user_id);
 			}
 
-			Set<IConnection> conset = null;
+			Collection<Set<IConnection>> concolset = null;
 
 			if (currentClient == null) {
 				// Must be from a previous session, search for user in current
 				// scope
 				IConnection current = Red5.getConnectionLocal();
 				// Notify all Clients of that Scope (Room)
-				conset = current.getScope().getClientConnections();
+				concolset = current.getScope().getConnections();
 			} else {
 				// default Scope Name
 				String scopeName = "hibernate";
@@ -2349,7 +2371,7 @@ public class ScopeApplicationAdapter ext
 				IScope scopeHibernate = webAppKeyScope.getScope(scopeName);
 
 				if (scopeHibernate != null) {
-					conset = webAppKeyScope.getScope(scopeName).getClientConnections();
+					concolset = webAppKeyScope.getScope(scopeName).getConnections();
 				}
 			}
 
@@ -2357,6 +2379,7 @@ public class ScopeApplicationAdapter ext
 
 			// Notify the clients of the same scope (room) with user_id
 
+			for (Set<IConnection> conset : concolset) {
 			for (IConnection conn : conset) {
 				if (conn != null) {
 					
@@ -2386,7 +2409,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
-
+			}
 		} catch (Exception err) {
 			log.error("[sendMessageWithClient] ", err);
 		}
@@ -2403,7 +2426,8 @@ public class ScopeApplicationAdapter ext
 
 			IConnection current = Red5.getConnectionLocal();
 
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 
 					Client rcl = this.sessionManager
@@ -2417,7 +2441,7 @@ public class ScopeApplicationAdapter ext
 
 				}
 			}
-
+			}
 			return false;
 		} catch (Exception err) {
 			log.error("[getInterviewRecordingStatus]", err);
@@ -2435,7 +2459,8 @@ public class ScopeApplicationAdapter ext
 			log.debug("-----------  startInterviewRecording");
 			IConnection current = Red5.getConnectionLocal();
 
-			Set<IConnection> conset = current.getScope().getClientConnections();
+			Collection<Set<IConnection>> concolset = current.getScope().getConnections();
+			for (Set<IConnection> conset : concolset) {
 			for (IConnection conn : conset) {
 				if (conn != null) {
 
@@ -2449,7 +2474,7 @@ public class ScopeApplicationAdapter ext
 
 				}
 			}
-
+			}
 			Client current_rcl = this.sessionManager
 					.getClientByStreamId(current.getClient().getId(), null);
 
@@ -2462,6 +2487,7 @@ public class ScopeApplicationAdapter ext
 			Map<String, String> interviewStatus = new HashMap<String, String>();
 			interviewStatus.put("action", "start");
 
+			for (Set<IConnection> conset : concolset) {
 			for (IConnection conn : conset) {
 				if (conn != null) {
 					
@@ -2481,7 +2507,7 @@ public class ScopeApplicationAdapter ext
 
 				}
 			}
-
+			}
 			String recordingName = "Interview "
 					+ CalendarPatterns.getDateWithTimeByMiliSeconds(new Date());
 
@@ -2503,7 +2529,8 @@ public class ScopeApplicationAdapter ext
 
 			IConnection current = Red5.getConnectionLocal();
 
-			for (IConnection conn : current.getScope().getClientConnections()) {
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
 				if (conn != null) {
 					IClient client = conn.getClient();
 					if (SessionVariablesUtil.isScreenClient(client)) {
@@ -2515,6 +2542,7 @@ public class ScopeApplicationAdapter ext
 					}
 				}
 			}
+			}
 		} catch (Exception err) {
 			log.debug("[sendRemoteCursorEvent]", err);
 		}
@@ -2534,7 +2562,8 @@ public class ScopeApplicationAdapter ext
 			boolean found = false;
 			Long flvRecordingId = null;
 
-			Set<IConnection> conset = current.getScope().getClientConnections();
+			Collection<Set<IConnection>> concolset = current.getScope().getConnections();
+			for (Set<IConnection> conset : concolset) {
 			for (IConnection conn : conset) {
 				if (conn != null) {
 
@@ -2560,7 +2589,7 @@ public class ScopeApplicationAdapter ext
 
 				}
 			}
-
+			}
 			if (!found) {
 				return false;
 			}
@@ -2574,6 +2603,7 @@ public class ScopeApplicationAdapter ext
 			Map<String, String> interviewStatus = new HashMap<String, String>();
 			interviewStatus.put("action", "stop");
 
+			for (Set<IConnection> conset : concolset) {
 			for (IConnection conn : conset) {
 				if (conn != null) {
 					IClient client = conn.getClient();
@@ -2589,7 +2619,7 @@ public class ScopeApplicationAdapter ext
 							new Object[] { interviewStatus }, this);
 				}
 			}
-
+			}
 			return true;
 
 		} catch (Exception err) {
@@ -2769,7 +2799,8 @@ public class ScopeApplicationAdapter ext
 		sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
 		SessionVariablesUtil.initClient(c, false, publicSID);
 
-		for (IConnection conn : current.getScope().getClientConnections()) {
+		for (Set<IConnection> conset : current.getScope().getConnections()) {
+		for (IConnection conn : conset) {
 			if (conn != null) {
 				IClient client = conn.getClient();
 				if (SessionVariablesUtil.isScreenClient(client)) {
@@ -2790,5 +2821,6 @@ public class ScopeApplicationAdapter ext
 				}
 			}
 		}
+		}
 	}
 }