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&ivyXmlPath=ivy.xml&confs=*&ivySettingsPath=%24%7Bworkspace_loc%3AOpenmeetings%2Fivysettings.xml%7D&loadSettingsOnDemand=false&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
}
}
}
+ }
}
}