From 3841862d9cef01f1eaca85ea26fecb3530c97853 Mon Sep 17 00:00:00 2001
From: Richard Alam <ritzalam@gmail.com>
Date: Tue, 9 Jan 2018 14:56:17 -0800
Subject: [PATCH]  - remove redis msg receivers from bbb-screenshare red5 app

---
 .../redis/MeetingMessageHandler.java          |  35 ------
 .../messaging/redis/MessageDistributor.java   |  25 ----
 .../messaging/redis/MessageReceiver.java      | 108 ------------------
 .../redis/ReceivedMessageHandler.java         |  72 ------------
 .../redis/RedisPubSubMessageHandler.java      |  46 --------
 .../screenshare/ScreenShareApplication.scala  |   1 -
 .../webapp/WEB-INF/bbb-red5-redis-pubsub.xml  |  21 ----
 .../app/src/main/webapp/WEB-INF/red5-web.xml  |   4 -
 8 files changed, 312 deletions(-)
 delete mode 100755 bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MeetingMessageHandler.java
 delete mode 100755 bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageDistributor.java
 delete mode 100755 bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageReceiver.java
 delete mode 100755 bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/ReceivedMessageHandler.java
 delete mode 100755 bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/RedisPubSubMessageHandler.java

diff --git a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MeetingMessageHandler.java b/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MeetingMessageHandler.java
deleted file mode 100755
index c655188099..0000000000
--- a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MeetingMessageHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.bigbluebutton.app.screenshare.messaging.redis;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import com.google.gson.Gson;
-import org.bigbluebutton.common.messages.MessagingConstants;
-
-public class MeetingMessageHandler implements MessageHandler {
-	private static Logger log = Red5LoggerFactory.getLogger(MeetingMessageHandler.class, "screenshare");
-	
-	
-	@Override
-	public void handleMessage(String pattern, String channel, String message) {
-
-		if (channel.equalsIgnoreCase(MessagingConstants.TO_MEETING_CHANNEL)) {
-
-//			IMessage msg = MessageFromJsonConverter.convert(message);			
-//			if (msg != null) {
-
-//			}
-		} else if (channel.equalsIgnoreCase(MessagingConstants.TO_SYSTEM_CHANNEL)) {
-//			IMessage msg = MessageFromJsonConverter.convert(message);
-			
-//			if (msg != null) {
-//
-//			}
-		}
-	}
-	
-
-	
-}
diff --git a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageDistributor.java b/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageDistributor.java
deleted file mode 100755
index 794704bec8..0000000000
--- a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageDistributor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.bigbluebutton.app.screenshare.messaging.redis;
-
-import java.util.Set;
-
-public class MessageDistributor {
-	private ReceivedMessageHandler handler;
-	private Set<MessageHandler> listeners;
-	
-	public void setMessageListeners(Set<MessageHandler> listeners) {
-		this.listeners = listeners;
-	}
-	
-	public void setMessageHandler(ReceivedMessageHandler handler) {
-		this.handler = handler;
-		if (handler != null) {
-			handler.setMessageDistributor(this);
-		}		
-	}
-	
-	public void notifyListeners(String pattern, String channel, String message) {
-		for (MessageHandler listener : listeners) {
-			listener.handleMessage(pattern, channel, message);
-		}		
-	}	
-}
diff --git a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageReceiver.java b/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageReceiver.java
deleted file mode 100755
index 5747fe5406..0000000000
--- a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/MessageReceiver.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.bigbluebutton.app.screenshare.messaging.redis;
-
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
-
-import org.bigbluebutton.common.messages.MessagingConstants;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisPubSub;
-import redis.clients.jedis.exceptions.JedisConnectionException;
-
-public class MessageReceiver {
-    private static Logger log = Red5LoggerFactory.getLogger(MessageReceiver.class, "screenshare");
-
-    private ReceivedMessageHandler handler;
-
-    private Jedis jedis;
-    private volatile boolean receiveMessage = false;
-
-    private final Executor msgReceiverExec = Executors.newSingleThreadExecutor();
-
-    private String host;
-    private int port;
-
-    public void stop() {
-        receiveMessage = false;
-    }
-
-    public void start() {
-        log.info("Ready to receive messages from Redis pubsub.");
-        try {
-            receiveMessage = true;
-            jedis = new Jedis(host, port);
-            // Set the name of this client to be able to distinguish when doing
-            // CLIENT LIST on redis-cli
-            jedis.clientSetname("bbb-screenshare");
-
-            Runnable messageReceiver = new Runnable() {
-                public void run() {
-                    if (receiveMessage) {
-                        try {
-                            jedis.psubscribe(new PubSubListener(),
-                                    MessagingConstants.FROM_BBB_APPS_PATTERN);
-                        } catch(JedisConnectionException ex) {
-                            log.warn("Exception on Jedis connection. Resubscribing to pubsub.");
-                            start();
-                        }
-
-                    }
-                }
-            };
-            msgReceiverExec.execute(messageReceiver);
-        } catch (Exception e) {
-            log.error("Error subscribing to channels: " + e.getMessage());
-        }
-    }
-
-    public void setHost(String host){
-        this.host = host;
-    }
-
-    public void setPort(int port) {
-        this.port = port;
-    }
-
-    public void setMessageHandler(ReceivedMessageHandler handler) {
-        this.handler = handler;
-    }
-
-    private class PubSubListener extends JedisPubSub {
-
-        public PubSubListener() {
-            super();
-        }
-
-        @Override
-        public void onMessage(String channel, String message) {
-            // Not used.
-        }
-
-        @Override
-        public void onPMessage(String pattern, String channel, String message) {
-            handler.handleMessage(pattern, channel, message);
-        }
-
-        @Override
-        public void onPSubscribe(String pattern, int subscribedChannels) {
-            log.debug("Subscribed to the pattern: " + pattern);
-        }
-
-        @Override
-        public void onPUnsubscribe(String pattern, int subscribedChannels) {
-            // Not used.
-        }
-
-        @Override
-        public void onSubscribe(String channel, int subscribedChannels) {
-            // Not used.
-        }
-
-        @Override
-        public void onUnsubscribe(String channel, int subscribedChannels) {
-            // Not used.
-        }
-    }
-}
diff --git a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/ReceivedMessageHandler.java b/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/ReceivedMessageHandler.java
deleted file mode 100755
index b713dd3c3f..0000000000
--- a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/ReceivedMessageHandler.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.bigbluebutton.app.screenshare.messaging.redis;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
-import java.util.concurrent.LinkedBlockingQueue;
-
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class ReceivedMessageHandler {
-	private static Logger log = Red5LoggerFactory.getLogger(ReceivedMessageHandler.class, "bigbluebutton");
-	
-	private BlockingQueue<ReceivedMessage> receivedMessages = new LinkedBlockingQueue<ReceivedMessage>();
-	
-	private volatile boolean processMessage = false;
-	
-	private final Executor msgProcessorExec = Executors.newSingleThreadExecutor();
-	private final Executor runExec = Executors.newSingleThreadExecutor();
-	
-	private MessageDistributor handler;
-	
-	public void stop() {
-		processMessage = false;
-	}
-	
-	public void start() {	
-		log.info("Ready to handle messages from Redis pubsub!");
-
-		try {
-			processMessage = true;
-			
-			Runnable messageProcessor = new Runnable() {
-			    public void run() {
-			    	while (processMessage) {
-			    		try {
-							ReceivedMessage msg = receivedMessages.take();
-							processMessage(msg);
-						} catch (InterruptedException e) {
-							log.warn("Error while taking received message from queue.");
-						}   			    		
-			    	}
-			    }
-			};
-			msgProcessorExec.execute(messageProcessor);
-		} catch (Exception e) {
-			log.error("Error subscribing to channels: " + e.getMessage());
-		}			
-	}
-	
-	private void processMessage(final ReceivedMessage msg) {
-		Runnable task = new Runnable() {
-			public void run() {
-				if (handler != null) {
-					handler.notifyListeners(msg.getPattern(), msg.getChannel(), msg.getMessage());
-				} else {
-					log.info("No listeners interested in messages from Redis!");
-				}				
-			}
-		};
-		runExec.execute(task);
-	}
-	
-	public void handleMessage(String pattern, String channel, String message) {
-		ReceivedMessage rm = new ReceivedMessage(pattern, channel, message);
-		receivedMessages.add(rm);
-	}
-	
-	public void setMessageDistributor(MessageDistributor h) {
-		this.handler = h;
-	}
-}
diff --git a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/RedisPubSubMessageHandler.java b/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/RedisPubSubMessageHandler.java
deleted file mode 100755
index 76aad623cc..0000000000
--- a/bbb-screenshare/app/src/main/java/org/bigbluebutton/app/screenshare/messaging/redis/RedisPubSubMessageHandler.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.bigbluebutton.app.screenshare.messaging.redis;
-
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import org.bigbluebutton.app.screenshare.red5.Red5AppHandler;
-import org.bigbluebutton.common.messages.MeetingDestroyedMessage;
-import org.bigbluebutton.common.messages.MeetingCreatedMessage;
-import org.bigbluebutton.common.messages.MessagingConstants;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-
-public class RedisPubSubMessageHandler implements MessageHandler {
-    private static Logger log = Red5LoggerFactory.getLogger(RedisPubSubMessageHandler.class, "screenshare");
-    private Red5AppHandler handler;
-
-    @Override
-    public void handleMessage(String pattern, String channel, String message) {
-        if (channel.equalsIgnoreCase(MessagingConstants.FROM_MEETING_CHANNEL)) {
-            JsonParser parser = new JsonParser();
-            JsonObject obj = (JsonObject) parser.parse(message);
-            if (obj.has("header") && obj.has("payload")) {
-                JsonObject header = (JsonObject) obj.get("header");
-                if (header.has("name")) {
-                    String messageName = header.get("name").getAsString();
-
-                    if (MeetingDestroyedMessage.NAME.equals(messageName)) {
-                        MeetingDestroyedMessage msg = MeetingDestroyedMessage.fromJson(message);
-                        handler.meetingHasEnded(msg.meetingId);
-
-                    } else if (MeetingCreatedMessage.MEETING_CREATED.equals(messageName)) {
-                        MeetingCreatedMessage msg = MeetingCreatedMessage.fromJson(message);
-                        handler.meetingCreated(msg.meetingId, msg.record);
-
-                    }
-                }
-            }
-        }
-
-
-    }
-
-    public void setAppHandler(Red5AppHandler handler) {
-        this.handler = handler;
-  }
-
-}
diff --git a/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/ScreenShareApplication.scala b/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/ScreenShareApplication.scala
index e28ad314e7..974e86966c 100755
--- a/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/ScreenShareApplication.scala
+++ b/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/ScreenShareApplication.scala
@@ -66,7 +66,6 @@ class ScreenShareApplication(val bus: IEventsMessageBus, val jnlpFile: String,
 //    }
 
     screenShareManager ! new MeetingEnded(meetingId)
-
   }
 
   def meetingCreated(meetingId: String, record: java.lang.Boolean) {
diff --git a/bbb-screenshare/app/src/main/webapp/WEB-INF/bbb-red5-redis-pubsub.xml b/bbb-screenshare/app/src/main/webapp/WEB-INF/bbb-red5-redis-pubsub.xml
index c64c2974aa..d056fd28aa 100755
--- a/bbb-screenshare/app/src/main/webapp/WEB-INF/bbb-red5-redis-pubsub.xml
+++ b/bbb-screenshare/app/src/main/webapp/WEB-INF/bbb-red5-redis-pubsub.xml
@@ -34,25 +34,4 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
       <property name="port" value="${redis.port}" />
     </bean>
 
-    <bean id="red5RedisReceiver" class="org.bigbluebutton.app.screenshare.messaging.redis.MessageReceiver"
-                    init-method="start" destroy-method="stop">
-      <property name="messageHandler"> <ref local="red5RedisHandler"/> </property>
-      <property name="host" value="${redis.host}" />
-      <property name="port" value="${redis.port}" />
-    </bean>
-
-    <bean id="red5RedisHandler" class="org.bigbluebutton.app.screenshare.messaging.redis.ReceivedMessageHandler"
-                    init-method="start" destroy-method="stop">
-      <property name="messageDistributor"><ref bean="red5RedisDistributor" /></property>
-    </bean>
-
-    <bean id="red5RedisDistributor" class="org.bigbluebutton.app.screenshare.messaging.redis.MessageDistributor">
-       <property name="messageHandler"> <ref local="red5RedisHandler"/> </property>
-       <property name="messageListeners">
-          <set>
-              <ref bean="redisPubSubMessageHandler" />
-          </set>
-      </property>
-    </bean>
-
 </beans>
diff --git a/bbb-screenshare/app/src/main/webapp/WEB-INF/red5-web.xml b/bbb-screenshare/app/src/main/webapp/WEB-INF/red5-web.xml
index cab5891b7e..1fd0b7bfc6 100755
--- a/bbb-screenshare/app/src/main/webapp/WEB-INF/red5-web.xml
+++ b/bbb-screenshare/app/src/main/webapp/WEB-INF/red5-web.xml
@@ -114,10 +114,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
     <constructor-arg index="1" value="${redis.port}"/>
   </bean>
 
-    <bean id="redisPubSubMessageHandler"
-          class="org.bigbluebutton.app.screenshare.messaging.redis.RedisPubSubMessageHandler">
-        <property name="appHandler" ref="red5AppHandler"/>
-    </bean>
 
   <import resource="bbb-redis-pool.xml"/>
   <import resource="bbb-red5-redis-pubsub.xml"/>
-- 
GitLab