Updated red5 applications configuration to accept redis parameters.

This commit is contained in:
Ghazi Triki 2018-11-21 19:30:41 -02:00
parent dc5c98b8cf
commit e768cbe3c5
26 changed files with 163 additions and 226 deletions

View File

@ -32,7 +32,7 @@ object Dependencies {
val scalaCompiler = "org.scala-lang" % "scala-compiler" % Versions.scala
val akkaActor = "com.typesafe.akka" % "akka-actor_2.12" % Versions.akkaVersion
val akkaSl4fj = "com.typesafe.akka" % "akka-slf4j_2.12" % Versions.akkaVersion % "provided"
val akkaSl4fj = "com.typesafe.akka" % "akka-slf4j_2.12" % Versions.akkaVersion
val googleGson = "com.google.code.gson" % "gson" % Versions.gson
val quicklens = "com.softwaremill.quicklens" %% "quicklens" % Versions.quicklens

View File

@ -17,7 +17,7 @@ object Dependencies {
val gson = "2.8.5"
val jackson = "2.9.7"
val sl4j = "1.7.25"
val red5 = "1.0.10-M9"
val red5 = "1.0.10-M5"
// Redis
val redisScala = "1.8.0"
@ -38,8 +38,8 @@ object Dependencies {
val sl4jApi = "org.slf4j" % "slf4j-api" % Versions.sl4j % "runtime"
val red5 = "org.red5" % "red5-server-common" % Versions.red5
val lettuceCore = "io.lettuce" % "lettuce-core" % Versions.lettuce
val redisScala = "com.github.etaty" % "rediscala_2.12" % Versions.redisScala
val lettuceCore = "io.lettuce" % "lettuce-core" % Versions.lettuce
}
object Test {

View File

@ -34,7 +34,7 @@ public class RedisStorageService extends RedisAwareCommunicator {
private static Logger log = LoggerFactory.getLogger(RedisStorageService.class);
private long keyExpiry;
private long expireKey;
RedisCommands<String, String> commands;
private StatefulRedisConnection<String, String> connection;
@ -105,12 +105,16 @@ public class RedisStorageService extends RedisAwareCommunicator {
* event into redis even if the meeting is not recorded. (ralam sept 23,
* 2015)
*/
commands.expire("meeting:" + meetingId + ":recordings", keyExpiry);
commands.expire("meeting:" + meetingId + ":recordings", expireKey);
commands.rpush("meeting:" + meetingId + ":recordings", Long.toString(msgid));
commands.expire("meeting:" + meetingId + ":recordings", keyExpiry);
commands.expire("meeting:" + meetingId + ":recordings", expireKey);
commands.exec();
}
public void setExpireKey(long expireKey) {
this.expireKey = expireKey;
}
private String recordMeeting(String key, Map<String, String> info) {
return commands.hmset(key, info);
}

View File

@ -1,48 +1,45 @@
#!/bin/bash
# deploying 'screenshare' to /usr/share/red5/webapps
sbt clean
sbt compile
sbt package
sbt clean compile package
if [[ -d /usr/share/red5/webapps/screenshare ]]; then
sudo rm -r /usr/share/red5/webapps/screenshare
fi
sudo cp -r target/webapp/ /usr/share/red5/webapps/screenshare
sudo rm -rf /usr/share/red5/webapps/screenshare/WEB-INF/lib/*
sudo cp ~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/bbb-screenshare-akka_2.12-0.0.3.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/scala-library.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/scala-reflect.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/jackson-* \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/paranamer-2.8.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/akka-* \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/config-1.3.3.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/gson-2.8.5.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/commons-pool2-2.6.0.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/spring-webmvc-4.3.20.RELEASE.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/rediscala_2.12-1.8.0.jar \
~/dev/bigbluebutton/bbb-screenshare/app/target/webapp/WEB-INF/lib/bbb-common-message_2.12-0.0.20-SNAPSHOT.jar \
sudo cp target/webapp/WEB-INF/lib/bbb-screenshare-akka_2.12-0.0.3.jar \
target/webapp/WEB-INF/lib/scala-library.jar \
target/webapp/WEB-INF/lib/scala-reflect.jar \
target/webapp/WEB-INF/lib/jackson-* \
target/webapp/WEB-INF/lib/paranamer-2.8.jar \
target/webapp/WEB-INF/lib/akka-* \
target/webapp/WEB-INF/lib/config-1.3.3.jar \
target/webapp/WEB-INF/lib/gson-2.8.5.jar \
target/webapp/WEB-INF/lib/commons-pool2-2.6.0.jar \
target/webapp/WEB-INF/lib/spring-webmvc-4.3.20.RELEASE.jar \
target/webapp/WEB-INF/lib/rediscala_2.12-1.8.0.jar \
target/webapp/WEB-INF/lib/bbb-common-message_2.12-0.0.20-SNAPSHOT.jar \
target/webapp/WEB-INF/lib/lettuce-core-5.1.2.RELEASE.jar \
target/webapp/WEB-INF/lib/netty-* \
target/webapp/WEB-INF/lib/reactor-core-3.2.2.RELEASE.jar \
target/webapp/WEB-INF/lib/reactive-streams-1.0.2.jar \
/usr/share/red5/webapps/screenshare/WEB-INF/lib/
#sudo mkdir /usr/share/red5/webapps/screenshare/WEB-INF/classes
#cd /usr/share/red5/webapps/screenshare/WEB-INF/classes/
#sudo jar -xf ../lib/bbb-screenshare-akka_2.12-0.0.3.jar
#sudo jar -xf .lib/bbb-screenshare-akka_2.12-0.0.3.jar
#sudo rm /usr/share/red5/webapps/screenshare/WEB-INF/lib/bbb-screenshare-akka_2.12-0.0.3.jar
cd /usr/share/red5/webapps/screenshare
sudo mkdir lib
cd lib
sudo cp -r ~/dev/bigbluebutton/bbb-screenshare/app/jws/lib/* .
cd ..
sudo cp ~/dev/bigbluebutton/bbb-screenshare/app/jws/screenshare.jnlp .
sudo cp ~/dev/bigbluebutton/bbb-screenshare/app/jws/screenshare.jnlp.h264 .
sudo mkdir -p /usr/share/red5/webapps/screenshare/lib
sudo cp -r jws/lib/* /usr/share/red5/webapps/screenshare/lib
sudo cp jws/screenshare.jnlp /usr/share/red5/webapps/screenshare
sudo cp jws/screenshare.jnlp.h264 /usr/share/red5/webapps/screenshare
sudo chmod -R 777 /usr/share/red5/webapps/screenshare
sudo chown -R red5:red5 /usr/share/red5/webapps/screenshare
# TODO change the owner username to 'firstuser'
# // Dev only
#sudo service red5 restart
#sudo service tomcat7 restart

View File

@ -29,6 +29,7 @@ object Dependencies {
// Redis
val redisScala = "1.8.0"
val lettuce = "5.1.2.RELEASE"
// BigBlueButton
val bbbCommons = "0.0.20-SNAPSHOT"
@ -65,6 +66,7 @@ object Dependencies {
val apachePool2 = "org.apache.commons" % "commons-pool2" % Versions.pool2
val redisScala = "com.github.etaty" % "rediscala_2.12" % Versions.redisScala
val lettuceCore = "io.lettuce" % "lettuce-core" % Versions.lettuce
val bbbCommons = "org.bigbluebutton" % "bbb-common-message_2.12" % Versions.bbbCommons
}
@ -84,6 +86,7 @@ object Dependencies {
Compile.scalaLibrary,
Compile.scalaReflect,
Compile.akkaActor,
Compile.akkaSl4fj,
Compile.googleGson,
Compile.jacksonModule,
Compile.red5Server,
@ -100,5 +103,6 @@ object Dependencies {
Compile.apacheLang,
Compile.apachePool2,
Compile.redisScala,
Compile.lettuceCore,
Compile.bbbCommons) ++ testing
}

View File

@ -25,8 +25,8 @@ object AppsRedisSubscriberActor extends SystemConfiguration {
}
class AppsRedisSubscriberActor(jsonMsgBus: IncomingJsonMessageBus, redisHost: String,
redisPort: Int,
channels: Seq[String] = Nil, patterns: Seq[String] = Nil)
redisPort: Int,
channels: Seq[String] = Nil, patterns: Seq[String] = Nil)
extends RedisSubscriberActor(
new InetSocketAddress(redisHost, redisPort),
channels, patterns, onConnectStatus = connected => { println(s"connected: $connected") }) with SystemConfiguration {

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
Copyright (c) 2014 BigBlueButton Inc. and by respective authors (see below).
This program is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 3.0 of the License, or (at your option) any later
version.
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
">
</beans>

View File

@ -30,9 +30,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<bean id="redisStorageService"
class="org.bigbluebutton.common2.redis.RedisStorageService"
init-method="start" destroy-method="stop">
<property name="host" value="${redisHost}" />
<property name="port" value="${redisPort}" />
<property name="password" value="${redisPassword:''}" />
<property name="host" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<property name="password" value="${redis.password:''}" />
<property name="clientName" value="BbbScreenshare" />
</bean>
</beans>

View File

@ -35,6 +35,21 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
</property>
</bean>
<import resource="bbb-redis-messaging.xml"/>
<bean id="screenShareApplication" class="org.bigbluebutton.app.screenshare.ScreenShareApplication">
<constructor-arg index="0" ref="messageBus"/>
<constructor-arg index="1" value="${jnlpFile}"/>
<constructor-arg index="2" value="${streamBaseUrl}"/>
</bean>
<bean id="connectionInvokerService" class="org.bigbluebutton.app.screenshare.red5.ConnectionInvokerService"
init-method="start" destroy-method="stop">
</bean>
<bean id="meetingManager" class="org.bigbluebutton.app.screenshare.MeetingManager"/>
<bean id="web.context" class="org.red5.server.Context" autowire="byType"/>
<bean id="web.scope" class="org.red5.server.scope.WebScope" init-method="register">
@ -55,29 +70,20 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<property name="meetingManager" ref="meetingManager"/>
</bean>
<bean id="meetingManager" class="org.bigbluebutton.app.screenshare.MeetingManager"/>
<bean id="screenshare.service" class="org.bigbluebutton.app.screenshare.red5.Red5AppService">
<property name="appHandler" ref="red5AppHandler"/>
<property name="red5RedisSender" ref="red5RedisSender"/>
</bean>
<bean id="red5AppHandler" class="org.bigbluebutton.app.screenshare.red5.Red5AppHandler">
<property name="application" ref="screenShareApplication"/>
<property name="messageSender" ref="connectionInvokerService"/>
</bean>
<bean id="screenshare.service" class="org.bigbluebutton.app.screenshare.red5.Red5AppService">
<property name="appHandler" ref="red5AppHandler"/>
</bean>
<!-- The IoHandler implementation -->
<bean id="screenCaptureHandler" class="org.bigbluebutton.app.screenshare.server.socket.BlockStreamEventMessageHandler">
<property name="application" ref="screenShareApplication"/>
</bean>
<bean id="screenShareApplication" class="org.bigbluebutton.app.screenshare.ScreenShareApplication">
<constructor-arg index="0" ref="messageBus"/>
<constructor-arg index="1" value="${jnlpFile}"/>
<constructor-arg index="2" value="${streamBaseUrl}"/>
</bean>
<bean id="eventListenerImp" class="org.bigbluebutton.app.screenshare.red5.EventListenerImp">
<property name="messageSender" ref="connectionInvokerService"/>
<property name="meetingManager" ref="meetingManager"/>
@ -100,16 +106,4 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
</property>
</bean>
<bean id="connectionInvokerService" class="org.bigbluebutton.app.screenshare.red5.ConnectionInvokerService"
init-method="start" destroy-method="stop">
</bean>
<bean id="redisRecorder" class="org.bigbluebutton.app.screenshare.server.recorder.EventRecorder">
<constructor-arg index="0" value="${redis.host}"/>
<constructor-arg index="1" value="${redis.port}"/>
</bean>
<import resource="bbb-redis-pool.xml"/>
<import resource="bbb-red5-redis-pubsub.xml"/>
</beans>

View File

@ -14,7 +14,6 @@ recordingDirectory=/usr/share/red5/webapps/screenshare/streams
redis.host=127.0.0.1
redis.port=6379
streamBaseUrl=rtmp://192.168.23.22/screenshare
jnlpUrl=http://192.168.23.22/screenshare
jnlpFile=http://192.168.23.22/screenshare/screenshare.jnlp

View File

@ -17,6 +17,13 @@ repositories {
mavenLocal()
}
configurations {
runtime.exclude group: "org.slf4j", module: "slf4j-api"
runtime.exclude group: "org.red5", module: "red5-server"
runtime.exclude group: "org.red5", module: "red5-server-common"
runtime.exclude group: "org.red5", module: "red5-io"
}
dependencies {
// Servlet
providedCompile 'javax.servlet:servlet-api:2.5@jar'

View File

@ -8,4 +8,3 @@ gradle resolveDeps
gradle war deploy
sudo chown -R red5.red5 /usr/share/red5/webapps

View File

@ -30,25 +30,28 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<bean id="redisStorageService"
class="org.bigbluebutton.common2.redis.RedisStorageService"
init-method="start" destroy-method="stop">
<property name="host" value="${redisHost}" />
<property name="port" value="${redisPort}" />
<property name="password" value="${redisPassword:''}" />
<property name="clientName" value="BbbRed5AppsPub" />
<property name="host" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<property name="password" value="${redis.password:''}" />
<property name="expireKey" value="${redis.keyExpiry}" />
<property name="clientName" value="BbbRed5VideoStore" />
</bean>
<bean id="messageReceiver" class="org.bigbluebutton.common2.redis.pubsub.MessageReceiver"
init-method="start" destroy-method="stop">
<property name="host" value="${redisHost}" />
<property name="port" value="${redisPort}" />
<property name="password" value="${redisPassword:''}" />
<property name="host" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<property name="password" value="${redis.password:''}" />
<property name="clientName" value="BbbRed5VideoReceiver" />
<property name="messageHandler" ref="receivedMessageHandler"/>
</bean>
<bean id="redisSender" class="org.bigbluebutton.common2.redis.pubsub.MessageSender"
init-method="start" destroy-method="stop">
<property name="host" value="${redisHost}" />
<property name="port" value="${redisPort}" />
<property name="password" value="${redisPassword:''}" />
<property name="host" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<property name="clientName" value="BbbRed5VideoSender" />
<property name="password" value="${redis.password:''}" />
</bean>
<bean id="redisPublisher" class="org.bigbluebutton.red5.pubsub.MessagePublisher">

View File

@ -33,6 +33,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
</property>
</bean>
<import resource="bbb-redis-messaging.xml"/>
<bean id="web.context" class="org.red5.server.Context"
autowire="byType" />
@ -45,6 +47,11 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<property name="virtualHosts" value="${webapp.virtualHosts}" />
</bean>
<bean id="connInvokerService" class="org.bigbluebutton.app.video.ConnectionInvokerService"
init-method="start" destroy-method="stop"/>
<bean id="meetingManager" class="org.bigbluebutton.app.video.MeetingManager"/>
<bean id="web.handler" class="org.bigbluebutton.app.video.VideoApplication">
<property name="packetTimeout" value="10000"/>
<property name="eventRecordingService" ref="redisStorageService"/>
@ -53,9 +60,4 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<property name="connInvokerService" ref="connInvokerService"/>
</bean>
<bean id="connInvokerService" class="org.bigbluebutton.app.video.ConnectionInvokerService"
init-method="start" destroy-method="stop"/>
<bean id="meetingManager" class="org.bigbluebutton.app.video.MeetingManager"/>
</beans>

View File

@ -17,6 +17,13 @@ repositories {
mavenLocal()
}
configurations {
runtime.exclude group: "org.slf4j", module: "slf4j-api"
runtime.exclude group: "org.red5", module: "red5-server"
runtime.exclude group: "org.red5", module: "red5-server-common"
runtime.exclude group: "org.red5", module: "red5-io"
}
dependencies {
// Servlet
providedCompile 'javax.servlet:servlet-api:2.5@jar'

View File

@ -10,4 +10,3 @@ gradle war deploy
sudo chown -R red5.red5 /usr/share/red5/webapps
sudo chmod -R 777 /usr/share/red5/webapps

View File

@ -31,7 +31,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
init-method="start" destroy-method="stop">
<property name="host" value="${redis.host}"/>
<property name="port" value="${redis.port}"/>
<property name="password" value="${redisPassword:''}" />
<property name="clientName" value="BbbRed5VoiceSender" />
<property name="password" value="${redis.password:''}" />
</bean>
<bean id="messagingService" class="org.bigbluebutton.voiceconf.messaging.RedisMessagingService">
@ -46,7 +47,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
init-method="start" destroy-method="stop">
<property name="host" value="${redis.host}"/>
<property name="port" value="${redis.port}"/>
<property name="password" value="${redisPassword:''}" />
<property name="password" value="${redis.password:''}" />
<property name="clientName" value="BbbRed5VideoReceiver" />
<property name="messageHandler"> <ref local="redisMessageHandler"/> </property>
</bean>

View File

@ -19,7 +19,7 @@ stopAudioPort=16383
redis.host=127.0.0.1
redis.port=6379
redis.pass=
redis.password=
# If you want mjsip stack (red5/log/*access*.log) to minimize the amount of logs it

View File

@ -36,6 +36,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
</property>
</bean>
<import resource="bbb-redis-messaging.xml"/>
<bean id="clientConnectionManager" class="org.bigbluebutton.voiceconf.red5.ClientConnectionManager"/>
<bean id="connInvokerService" class="org.bigbluebutton.voiceconf.red5.ConnectionInvokerService"
init-method="start" destroy-method="stop"/>
<bean id="web.context" class="org.red5.server.Context"
autowire="byType" />
@ -64,22 +70,14 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<property name="messagingService" ref="messagingService"/>
</bean>
<bean id="voiceconf.service" class="org.bigbluebutton.voiceconf.red5.Service">
<property name="sipPeerManager" ref="sipPeerManager"/>
</bean>
<bean id="connInvokerService" class="org.bigbluebutton.voiceconf.red5.ConnectionInvokerService"
init-method="start" destroy-method="stop"/>
<bean id="sipPeerManager" class="org.bigbluebutton.voiceconf.sip.SipPeerManager">
<property name="sipStackDebugLevel" value="${sipStackDebugLevel}"/>
<property name="sipRemotePort" value="${freeswitch.port}"/>
<property name="messagingService" ref="messagingService"/>
</bean>
<bean id="clientConnectionManager" class="org.bigbluebutton.voiceconf.red5.ClientConnectionManager"/>
<import resource="bbb-redis-messaging.xml"/>
<bean id="voiceconf.service" class="org.bigbluebutton.voiceconf.red5.Service">
<property name="sipPeerManager" ref="sipPeerManager"/>
</bean>
</beans>

View File

@ -21,6 +21,13 @@ repositories {
mavenLocal()
}
configurations {
runtime.exclude group: "org.slf4j", module: "slf4j-api"
runtime.exclude group: "org.red5", module: "red5-server"
runtime.exclude group: "org.red5", module: "red5-server-common"
runtime.exclude group: "org.red5", module: "red5-io"
}
dependencies {
// Servlet
providedCompile 'javax.servlet:servlet-api:2.5@jar'
@ -60,8 +67,8 @@ dependencies {
//redis
compile 'org.apache.commons:commons-pool2:2.6.0'
compile 'com.google.code.gson:gson:2.8.5'
providedCompile 'org.apache.commons:commons-lang3:3.8.1'
compile 'com.google.code.gson:gson:2.8.5'
providedCompile 'org.apache.commons:commons-lang3:3.8.1'
compile 'org.bigbluebutton:bbb-common-message_2.12:0.0.20-SNAPSHOT'
compile 'org.bigbluebutton:bbb-apps-common_2.12:0.0.4-SNAPSHOT'

View File

@ -8,11 +8,3 @@ gradle resolveDeps
gradle war deploy
sudo chown -R red5.red5 /usr/share/red5/webapps
# Remove slf4j jar as it conflicts with logging with red5
FILE=/usr/share/red5/webapps/bigbluebutton/WEB-INF/lib/slf4j-api-1.7.25.jar
if [ -f $FILE ]
then
sudo rm $FILE
fi

View File

@ -1,16 +0,0 @@
## Dependecies Version
# Logging
log4jVersion = 1.2.17
slf4jVersion = 1.6.6
# Common libraries
springVersion = 3.1.4.RELEASE
springRedisVersion = 1.1.0.RELEASE
jacksonVersion = 1.8.3
# Testing
junitVersion = 4.8.1
mockitoVersion = 1.8.5

View File

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
This program is free software; you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 3.0 of the License, or (at your option) any later
version.
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
">
</beans>

View File

@ -36,8 +36,19 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
</property>
</bean>
<bean id="msgToClientGW" class="org.bigbluebutton.client.MsgToClientGW" >
<constructor-arg index="0" ref="connInvokerService"/>
</bean>
<bean id="clientGWApp" class="org.bigbluebutton.client.ClientGWApplication" destroy-method="shutdown">
<constructor-arg index="0" ref="msgToClientGW"/>
</bean>
<bean id="web.context" class="org.red5.server.Context" autowire="byType" />
<bean id="connInvokerService" class="org.bigbluebutton.red5.client.messaging.ConnectionInvokerService"
init-method="start" destroy-method="stop"/>
<bean id="web.scope" class="org.red5.server.scope.WebScope"
init-method="register">
<property name="server" ref="red5.server" />
@ -48,31 +59,18 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<property name="virtualHosts" value="${webapp.virtualHosts}" />
</bean>
<bean id="clientInGW" class="org.bigbluebutton.client.ClientInGW" >
<constructor-arg index="0" ref="clientGWApp"/>
</bean>
<bean id="web.handler" class="org.bigbluebutton.red5.BigBlueButtonApplication">
<property name="connInvokerService"><ref bean="connInvokerService"/></property>
<property name="clientInGW" ref="clientInGW" />
<property name="maxMessageLength" value="${maxMessageLength}"/>
</bean>
<bean id="clientInGW" class="org.bigbluebutton.client.ClientInGW" >
<constructor-arg index="0" ref="clientGWApp"/>
</bean>
<bean id="msgToClientGW" class="org.bigbluebutton.client.MsgToClientGW" >
<constructor-arg index="0" ref="connInvokerService"/>
</bean>
<bean id="clientGWApp" class="org.bigbluebutton.client.ClientGWApplication" destroy-method="shutdown">
<constructor-arg index="0" ref="msgToClientGW"/>
</bean>
<bean id="connInvokerService" class="org.bigbluebutton.red5.client.messaging.ConnectionInvokerService"
init-method="start" destroy-method="stop"/>
<bean id="bbbAppsIsAliveMonitorService" class="org.bigbluebutton.red5.monitoring.BbbAppsIsAliveMonitorService"
init-method="start" destroy-method="stop">
<property name="connectionInvokerService"> <ref bean="connInvokerService"/></property>
</bean>
<import resource="bbb-redis-pool.xml"/>
</beans>

View File

@ -132,6 +132,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
</bean>
<import resource="doc-conversion.xml"/>
<import resource="bbb-redis-pool.xml"/>
<import resource="bbb-redis-messaging.xml"/>
<import resource="turn-stun-servers.xml"/>
</beans>