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 2012/03/30 18:54:13 UTC
svn commit: r1307533 - in /incubator/openmeetings/trunk/singlewebapp: ./
src/org/openmeetings/app/data/calendar/beans/
src/org/openmeetings/app/data/calendar/management/
src/org/openmeetings/screen/webstart/
src/org/openmeetings/screen/webstart/gui/ sr...
Author: solomax
Date: Fri Mar 30 16:54:12 2012
New Revision: 1307533
URL: http://svn.apache.org/viewvc?rev=1307533&view=rev
Log:
OPENMEETINGS-97 rtpms client is created, not tested; compilation warnings are fixed; red5 sources are added to eclipse for debugging
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java
- copied, changed from r1307397, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CommonScreenShare.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java
- copied, changed from r1307397, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShare.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java
- copied, changed from r1307397, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShareRTMPT.java
Removed:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CommonScreenShare.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShare.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShareRTMPT.java
Modified:
incubator/openmeetings/trunk/singlewebapp/.classpath
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/beans/Week.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/VirtualScreen.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java
Modified: incubator/openmeetings/trunk/singlewebapp/.classpath
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/.classpath?rev=1307533&r1=1307532&r2=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/.classpath (original)
+++ incubator/openmeetings/trunk/singlewebapp/.classpath Fri Mar 30 16:54:12 2012
@@ -32,7 +32,7 @@
<classpathentry kind="lib" path="build/lib/om/xml-resolver-jar-1.2.jar"/>
<classpathentry kind="lib" path="build/lib/om/servlet-api-jar-2.5.jar"/>
<classpathentry kind="lib" path="build/lib/mainlibs/geronimo-jpa_2.0_spec-bundle-1.1.jar"/>
- <classpathentry kind="lib" path="build/red5/dist/red5.jar"/>
+ <classpathentry kind="lib" path="build/red5/dist/red5.jar" sourcepath="build/red5/src"/>
<classpathentry kind="lib" path="build/red5/dist/lib/bcprov-jdk16-145.jar"/>
<classpathentry kind="lib" path="build/red5/dist/lib/com.springsource.javax.xml.stream-1.0.1.jar"/>
<classpathentry kind="lib" path="build/red5/dist/lib/com.springsource.org.antlr-3.1.3.jar"/>
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/beans/Week.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/beans/Week.java?rev=1307533&r1=1307532&r2=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/beans/Week.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/beans/Week.java Fri Mar 30 16:54:12 2012
@@ -5,7 +5,7 @@ import java.util.List;
public class Week {
- private List<Day> days = new ArrayList(7);
+ private List<Day> days = new ArrayList<Day>(7);
public List<Day> getDays() {
return days;
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java?rev=1307533&r1=1307532&r2=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/calendar/management/AppointmentLogic.java Fri Mar 30 16:54:12 2012
@@ -21,7 +21,6 @@ package org.openmeetings.app.data.calend
import java.util.Date;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.TimeZone;
import org.openmeetings.app.data.basic.Configurationmanagement;
Copied: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java (from r1307397, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CommonScreenShare.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CommonScreenShare.java&r1=1307397&r2=1307533&rev=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CommonScreenShare.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java Fri Mar 30 16:54:12 2012
@@ -53,10 +53,10 @@ import org.red5.server.stream.message.RT
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class CommonScreenShare {
+public class CoreScreenShare {
private static final Logger logger = LoggerFactory
- .getLogger(CommonScreenShare.class);
+ .getLogger(CoreScreenShare.class);
private IScreenShare instance = null;
@@ -163,7 +163,7 @@ public class CommonScreenShare {
//
// ------------------------------------------------------------------------
- public CommonScreenShare(IScreenShare instance) {
+ public CoreScreenShare(IScreenShare instance) {
this.instance = instance;
};
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java?rev=1307533&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java Fri Mar 30 16:54:12 2012
@@ -0,0 +1,86 @@
+/*
+ * 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.
+ */
+package org.openmeetings.screen.webstart;
+
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.net.rtmp.Channel;
+import org.red5.server.net.rtmp.ClientExceptionHandler;
+import org.red5.server.net.rtmp.RTMPConnection;
+import org.red5.server.net.rtmp.codec.RTMP;
+import org.red5.server.net.rtmp.event.Notify;
+import org.red5.server.net.rtmp.message.Header;
+import org.red5.server.net.rtmps.RTMPSClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RTMPSScreenShare extends RTMPSClient implements ClientExceptionHandler, IScreenShare {
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(RTMPSScreenShare.class);
+
+ private CoreScreenShare instance = null;
+
+ private RTMPSScreenShare() {
+ instance = new CoreScreenShare(this);
+ };
+
+ public static void main(String[] args) {
+ new RTMPSScreenShare().instance.main(args);
+ }
+
+ // ------------------------------------------------------------------------
+ //
+ // Override
+ //
+ // ------------------------------------------------------------------------
+ @Override
+ public void connectionOpened(RTMPConnection conn, RTMP state) {
+ logger.debug("connection opened");
+ super.connectionOpened(conn, state);
+ this.conn = conn;
+ }
+
+ @Override
+ public void connectionClosed(RTMPConnection conn, RTMP state) {
+ logger.debug("connection closed");
+ super.connectionClosed(conn, state);
+ }
+
+ @Override
+ protected void onInvoke(RTMPConnection conn, Channel channel,
+ Header source, Notify invoke, RTMP rtmp) {
+ super.onInvoke(conn, channel, source, invoke, rtmp);
+
+ instance.onInvoke(conn, channel, source, invoke, rtmp);
+ }
+
+ @Override
+ public void handleException(Throwable throwable) {
+ logger.error("{}", new Object[] { throwable.getCause() });
+ System.out.println(throwable.getCause());
+ }
+
+ public void onStreamEvent(Notify notify) {
+ instance.onStreamEvent(notify);
+ }
+
+ public void resultReceived(IPendingServiceCall call) {
+ instance.resultReceived(call);
+ }
+}
Copied: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java (from r1307397, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShare.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShare.java&r1=1307397&r2=1307533&rev=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShare.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java Fri Mar 30 16:54:12 2012
@@ -29,19 +29,19 @@ import org.red5.server.net.rtmp.message.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class ScreenShare extends RTMPClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPScreenShare extends RTMPClient implements ClientExceptionHandler, IScreenShare {
private static final Logger logger = LoggerFactory
- .getLogger(ScreenShare.class);
+ .getLogger(RTMPScreenShare.class);
- private CommonScreenShare instance = null;
+ private CoreScreenShare instance = null;
- private ScreenShare() {
- instance = new CommonScreenShare(this);
+ private RTMPScreenShare() {
+ instance = new CoreScreenShare(this);
};
public static void main(String[] args) {
- new ScreenShare().instance.main(args);
+ new RTMPScreenShare().instance.main(args);
}
// ------------------------------------------------------------------------
Copied: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java (from r1307397, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShareRTMPT.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShareRTMPT.java&r1=1307397&r2=1307533&rev=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/ScreenShareRTMPT.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java Fri Mar 30 16:54:12 2012
@@ -29,19 +29,19 @@ import org.red5.server.net.rtmpt.RTMPTCl
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class ScreenShareRTMPT extends RTMPTClient implements ClientExceptionHandler, IScreenShare {
+public class RTMPTScreenShare extends RTMPTClient implements ClientExceptionHandler, IScreenShare {
private static final Logger logger = LoggerFactory
- .getLogger(ScreenShareRTMPT.class);
+ .getLogger(RTMPTScreenShare.class);
- private CommonScreenShare instance = null;
+ private CoreScreenShare instance = null;
- private ScreenShareRTMPT() {
- instance = new CommonScreenShare(this);
+ private RTMPTScreenShare() {
+ instance = new CoreScreenShare(this);
};
public static void main(String[] args) {
- new ScreenShareRTMPT().instance.main(args);
+ new RTMPTScreenShare().instance.main(args);
}
// ------------------------------------------------------------------------
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/VirtualScreen.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/VirtualScreen.java?rev=1307533&r1=1307532&r2=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/VirtualScreen.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/VirtualScreen.java Fri Mar 30 16:54:12 2012
@@ -36,8 +36,8 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.openmeetings.screen.webstart.BlankArea;
-import org.openmeetings.screen.webstart.CommonScreenShare;
-import org.openmeetings.screen.webstart.ScreenShare;
+import org.openmeetings.screen.webstart.CoreScreenShare;
+import org.openmeetings.screen.webstart.RTMPScreenShare;
import org.openmeetings.screen.webstart.gui.VirtualScreenBean.ScreenQuality;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
public class VirtualScreen {
private static final Logger logger = LoggerFactory.getLogger( VirtualScreen.class );
- CommonScreenShare css;
+ CoreScreenShare css;
public boolean showWarning = true;
public boolean doUpdateBounds = true;
@@ -84,7 +84,7 @@ public class VirtualScreen {
}
}
- public VirtualScreen(CommonScreenShare css) throws Exception {
+ public VirtualScreen(CoreScreenShare css) throws Exception {
this.css = css;
css.tFieldScreenZoom = new JLabel();
@@ -114,13 +114,13 @@ public class VirtualScreen {
css.vScreenIconDown = new JLabel();
css.vScreenIconDown.setBounds(30+(width/2)-8, 162+height-8, 16, 32);
- Image im_left = ImageIO.read(ScreenShare.class.getResource("/org/openmeetings/screen/1leftarrow.png"));
+ Image im_left = ImageIO.read(RTMPScreenShare.class.getResource("/org/openmeetings/screen/1leftarrow.png"));
ImageIcon iIcon1 = new ImageIcon(im_left);
- Image im_right = ImageIO.read(ScreenShare.class.getResource("/org/openmeetings/screen/1rightarrow.png"));
+ Image im_right = ImageIO.read(RTMPScreenShare.class.getResource("/org/openmeetings/screen/1rightarrow.png"));
ImageIcon iIcon2 = new ImageIcon(im_right);
- Image im_up = ImageIO.read(ScreenShare.class.getResource("/org/openmeetings/screen/1uparrow.png"));
+ Image im_up = ImageIO.read(RTMPScreenShare.class.getResource("/org/openmeetings/screen/1uparrow.png"));
ImageIcon iIcon3 = new ImageIcon(im_up);
- Image im_down = ImageIO.read(ScreenShare.class.getResource("/org/openmeetings/screen/1downarrow.png"));
+ Image im_down = ImageIO.read(RTMPScreenShare.class.getResource("/org/openmeetings/screen/1downarrow.png"));
ImageIcon iIcon4 = new ImageIcon(im_down);
JLabel jLab1 = new JLabel(iIcon1);
@@ -302,12 +302,12 @@ public class VirtualScreen {
case High:
break;
case Medium:
- VirtualScreenBean.vScreenResizeX = (int)((float)VirtualScreenBean.vScreenResizeX) * 1/2;
- VirtualScreenBean.vScreenResizeY = (int)((float)VirtualScreenBean.vScreenResizeY) * 1/2;
+ VirtualScreenBean.vScreenResizeX = (int)(1.0/2 * VirtualScreenBean.vScreenResizeX);
+ VirtualScreenBean.vScreenResizeY = (int)(1.0/2 * VirtualScreenBean.vScreenResizeY);
break;
case Low:
- VirtualScreenBean.vScreenResizeX = (int)((float)VirtualScreenBean.vScreenResizeX) * 3/8;
- VirtualScreenBean.vScreenResizeY = (int)((float)VirtualScreenBean.vScreenResizeY) * 3/8;
+ VirtualScreenBean.vScreenResizeX = (int)(3.0/8 * VirtualScreenBean.vScreenResizeX);
+ VirtualScreenBean.vScreenResizeY = (int)(3.0/8 * VirtualScreenBean.vScreenResizeY);
break;
}
logger.debug("resize: X:" + VirtualScreenBean.vScreenResizeX + " Y: " + VirtualScreenBean.vScreenResizeY);
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java?rev=1307533&r1=1307532&r2=1307533&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java Fri Mar 30 16:54:12 2012
@@ -82,7 +82,12 @@ public class ScreenRequestHandler extend
return null;
}
-
+ private enum ConnectionType {
+ rtmp
+ , rtmps
+ , rtmpt
+ }
+
@Override
public Template handleRequest(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse, Context ctx) {
@@ -104,8 +109,7 @@ public class ScreenRequestHandler extend
String publicSID = httpServletRequest.getParameter("publicSID");
if (publicSID == null) {
- new Exception("publicSID is empty: " + publicSID);
- return null;
+ throw new Exception("publicSID is empty: " + publicSID);
}
String room = httpServletRequest.getParameter("room");
@@ -114,48 +118,41 @@ public class ScreenRequestHandler extend
String domain = httpServletRequest.getParameter("domain");
if (domain == null) {
- new Exception("domain is empty: " + domain);
- return null;
+ throw new Exception("domain is empty: " + domain);
}
String languageAsString = httpServletRequest
.getParameter("languageAsString");
if (languageAsString == null) {
- new Exception("languageAsString is empty: " + domain);
- return null;
+ throw new Exception("languageAsString is empty: " + domain);
}
Long language_id = Long.parseLong(languageAsString);
String rtmphostlocal = httpServletRequest
.getParameter("rtmphostlocal");
if (rtmphostlocal == null) {
- new Exception("rtmphostlocal is empty: " + rtmphostlocal);
- return null;
+ throw new Exception("rtmphostlocal is empty: " + rtmphostlocal);
}
String red5httpport = httpServletRequest
.getParameter("red5httpport");
if (red5httpport == null) {
- new Exception("red5httpport is empty: " + red5httpport);
- return null;
+ throw new Exception("red5httpport is empty: " + red5httpport);
}
String record = httpServletRequest.getParameter("record");
if (record == null) {
- new Exception("recorder is empty: ");
- record = "no";
+ throw new Exception("recorder is empty: ");
}
String mode = httpServletRequest.getParameter("mode");
if (mode == null) {
- new Exception("mode is empty: ");
- mode = "sharer";
+ throw new Exception("mode is empty: ");
}
String httpRootKey = httpServletRequest.getParameter("httpRootKey");
if (httpRootKey == null) {
- new Exception("httpRootKey is empty could not start sharer");
- return null;
+ throw new Exception("httpRootKey is empty could not start sharer");
}
// make a complete name out of domain(organisation) + roomname
@@ -308,22 +305,30 @@ public class ScreenRequestHandler extend
+ red5httpport + httpRootKey
+ "red5-screenshare";
- String connectionType = httpServletRequest
- .getParameter("connectionType");
- if (connectionType == null) {
- new Exception("No connectionType ");
- }
+ ConnectionType conType = ConnectionType.valueOf(httpServletRequest
+ .getParameter("connectionType"));
- String startUpClass = connectionType.equals("rtmpt")
- ? "org.openmeetings.screen.webstart.ScreenShareRTMPT"
- : "org.openmeetings.screen.webstart.ScreenShare";
+ //FIXME http:// need to be removed
+ String startUpClass;
+ switch (conType) {
+ case rtmp:
+ startUpClass = "org.openmeetings.screen.webstart.RTMPScreenShare";
+ break;
+ case rtmps:
+ startUpClass = "org.openmeetings.screen.webstart.RTMPSScreenShare";
+ break;
+ case rtmpt:
+ startUpClass = "org.openmeetings.screen.webstart.RTMPTScreenShare";
+ break;
+ default:
+ throw new Exception("Unknown connection type");
+ }
String orgIdAsString = httpServletRequest
.getParameter("organization_id");
if (orgIdAsString == null) {
- new Exception(
+ throw new Exception(
"orgIdAsString is empty could not start sharer");
- return null;
}
ctx.put("organization_id", orgIdAsString);
@@ -349,16 +354,14 @@ public class ScreenRequestHandler extend
String port = httpServletRequest.getParameter("port");
if (port == null) {
- new Exception("port is empty: ");
- return null;
+ throw new Exception("port is empty: ");
}
ctx.put("port", port);
String allowRecording = httpServletRequest
.getParameter("allowRecording");
if (allowRecording == null) {
- new Exception("allowRecording is empty: ");
- return null;
+ throw new Exception("allowRecording is empty: ");
}
ctx.put("allowRecording", allowRecording);