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/07/17 21:33:47 UTC

svn commit: r1362619 - in /incubator/openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ WebContent/src/base/ WebContent/src/base/hibernate/ WebContent/src/modules/admin/backup/ WebContent/src/modules/admin/languageseditor/ WebContent/src/modules/chat...

Author: solomax
Date: Tue Jul 17 19:33:45 2012
New Revision: 1362619

URL: http://svn.apache.org/viewvc?rev=1362619&view=rev
Log:
OPENMEETINGS-266 almost fixed (audio should be implemented)

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenController.java
      - copied, changed from r1362555, incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java
Removed:
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/chatParticipants.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/emotIconsSelector.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/roomListDetails.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/moderation/moderationPanel.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabBottomRoomList.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx
    incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx
    incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/rooms/RoomClient.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ClientListManager.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPClientPublish.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/AbstractUploadController.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java
    incubator/openmeetings/trunk/singlewebapp/src/screenshare.vm

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml Tue Jul 17 19:33:45 2012
@@ -98,10 +98,6 @@
         <servlet-class>org.openmeetings.servlet.outputhandler.Install</servlet-class>
     </servlet>
     <servlet>
-        <servlet-name>ScreenRequestHandler</servlet-name>
-        <servlet-class>org.openmeetings.servlet.outputhandler.ScreenRequestHandler</servlet-class>
-    </servlet>
-    <servlet>
         <servlet-name>LangExport</servlet-name>
         <servlet-class>org.openmeetings.servlet.outputhandler.LangExport</servlet-class>
     </servlet>
@@ -161,10 +157,6 @@
         <url-pattern>/install</url-pattern>
     </servlet-mapping>
     <servlet-mapping>
-        <servlet-name>ScreenRequestHandler</servlet-name>
-        <url-pattern>/ScreenRequestHandler</url-pattern>
-    </servlet-mapping>
-    <servlet-mapping>
         <servlet-name>LangExport</servlet-name>
         <url-pattern>/LangExport</url-pattern>
     </servlet-mapping>

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.lzx Tue Jul 17 19:33:45 2012
@@ -106,6 +106,7 @@
     <attribute name="showFullMessage" value="false" type="boolean"/>
          
     <method name="getUrl">
+    	//canvas.getUrl() can not be reused since it has different protocol
         return this.protocollName+'://'+canvas.rtmphostlocal+':'+this.protocollPort+'/'+canvas.webAppRootKey+'/'+this.userScope;
     </method>
              

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/base/mainMethods.lzx Tue Jul 17 19:33:45 2012
@@ -115,12 +115,18 @@
     	]]>
     </method>
         
-    <method name="getServicesUrl">
-    	<![CDATA[
-    	   return canvas.protocol + '://' + canvas.rtmphostlocal
-    	   	+ ':' + canvas.red5httpport + canvas.httpRootKey + 'services/';
-    	]]>
-    </method>
+	<method name="getUrl">
+	<![CDATA[
+		return canvas.protocol + '://' + canvas.rtmphostlocal
+			+ ':' + canvas.red5httpport + canvas.httpRootKey;
+	]]>
+	</method>
+        
+	<method name="getServicesUrl">
+	<![CDATA[
+		return getUrl() + 'services/';
+	]]>
+	</method>
         
     <dataset type="http" name="languageData" request="false" 
         src="${ canvas.currentlanguage+'.xml' }" proxied="false">

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/backup/backupContent.lzx Tue Jul 17 19:33:45 2012
@@ -57,8 +57,7 @@
     <simpleLabelButton text="System Backup" x="232" y="220" width="200">
         <handler name="onclick">
             <![CDATA[
-                var exporturl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                        +canvas.httpRootKey+'BackupExport?moduleName=backup'
+                var exporturl = canvas.getUrl() + 'BackupExport?moduleName=backup'
                         +'&sid='+canvas.sessionId;
                 
                 if (parent._includeFileOption.getValue()) {

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/admin/languageseditor/languagesEditor.lzx Tue Jul 17 19:33:45 2012
@@ -96,8 +96,7 @@
     <simpleLabelButton name="b2" labelid="360" width="75" x="300" y="32">
     	<handler name="onclick">
     		<![CDATA[
-	    		var exporturl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-	    				+canvas.httpRootKey+'LangExport?language='+parent.languages.getValue()
+	    		var exporturl = canvas.getUrl() + 'LangExport?language='+parent.languages.getValue()
 	    				+'&sid='+canvas.sessionId;
 	            lz.Browser.loadURL(exporturl,"_parent");
             ]]>

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/chatParticipants.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/chatParticipants.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/chatParticipants.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/chatParticipants.lzx Tue Jul 17 19:33:45 2012
@@ -41,8 +41,7 @@
 				
 			} else {
 				
-				var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                        +canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
+				var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
                         +'&moduleName=chat&parentPath=&room_id='
                         +'&remoteUserid='+this.user_id
                         +'&sid='+canvas.sessionId;

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/emotIconsSelector.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/emotIconsSelector.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/emotIconsSelector.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/chat/emotIconsSelector.lzx Tue Jul 17 19:33:45 2012
@@ -59,7 +59,7 @@
                 	//The onResult-Handler will be called be the rtmpconnection
 					if($debug) Debug.write("emotIconsSelector/getAllPublicEmoticons : ",value);
 					for (var i=0;i<value.length;i++){
-						var swfurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport+canvas.httpRootKey+'public/emoticons/'+value[i][0];
+						var swfurl = canvas.getUrl() + 'public/emoticons/'+value[i][0];
 						iconlabel = value[i][1];
 						if (value[i].length>4){
 							iconlabel += ", "+value[i][2];							

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/roomListDetails.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/roomListDetails.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/roomListDetails.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/conference/roomListDetails.lzx Tue Jul 17 19:33:45 2012
@@ -30,8 +30,7 @@
 	
 	<handler name="oninit">
 		<![CDATA[
-	        var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-	        		+canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
+	        var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
 	        		+'&moduleName=chat&parentPath=&room_id='
 	        		+'&remoteUserid='+this.user_id
 	        		+'&sid='+canvas.sessionId;

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx Tue Jul 17 19:33:45 2012
@@ -89,8 +89,7 @@
                 
             } else {
         
-                var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                                    +canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
+                var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
                                     +'&moduleName=chat&parentPath=&room_id='
                                     +'&remoteUserid='+this.user_id
                                     +'&sid='+canvas.sessionId;

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/moderation/moderationPanel.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/moderation/moderationPanel.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/moderation/moderationPanel.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/moderation/moderationPanel.lzx Tue Jul 17 19:33:45 2012
@@ -100,21 +100,17 @@
                 organisation_id = hib.currentdomainObj.organisation_id
             }
         
-            var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                +canvas.httpRootKey+'ScreenRequestHandler?'
+            var downloadurl = canvas.getUrl() + 'screen.upload?'
                 +'rtmphostlocal='+canvas.rtmphostlocal
-                +'&room='+hib.currentroomid
                 +'&domain='+hib.conferencedomain
                 +'&organization_id='+organisation_id
                 +'&sid='+canvas.sessionId
                 +'&red5httpport='+canvas.red5httpport
                 +'&connectionType='+canvas.thishib.protocollName
-                +'&allowRecording='+canvas.allowRecording
                 +'&port='+canvas.thishib.protocollPort
                 +'&publicSID='+canvas.publicSID
                 +'&httpRootKey='+canvas.httpRootKey
-                +'&languageAsString='+hib.userlang
-                +'&record='+record;
+                +'&languageAsString='+hib.userlang;
 
             if ($debug) Debug.write(downloadurl); 
             lz.Browser.loadURL(downloadurl,'_blank');  

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/participants/participantListItem.lzx Tue Jul 17 19:33:45 2012
@@ -38,14 +38,6 @@
     <attribute name="isSuperModerator" value="false" type="boolean"/>
     <attribute name="refObj" value="null" />
     
-    <!--
-    var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                    +canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
-                    +'&moduleName=chat&parentPath=&room_id='
-                    +'&remoteUserid='+this.user_id
-                    +'&sid='+canvas.sessionId;
-     -->
-     
     <handler name="oninit">
         <![CDATA[
             //this._userpic.setAttribute('src',downloadurl); 
@@ -81,8 +73,7 @@
                 
             } else {
         
-                var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                        +canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
+                var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
                         +'&moduleName=chat&parentPath=&room_id='
                         +'&remoteUserid='+this.user_id
                         +'&sid='+canvas.sessionId;

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx Tue Jul 17 19:33:45 2012
@@ -45,8 +45,7 @@
     
     <method name="generateFileLink">
         <![CDATA[
-            return canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport+
-                    +canvas.httpRootKey+'RtpSharerServlet?publicSID='+this.messageObj.publicSID +
+            return canvas.getUrl() + 'RtpSharerServlet?publicSID='+this.messageObj.publicSID +
                     '&room='+this.messageObj.room +
                     '&room_id='+hib.currentroomid +
                     '&sid='+canvas.sessionId;  

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabBottomRoomList.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabBottomRoomList.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabBottomRoomList.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabBottomRoomList.lzx Tue Jul 17 19:33:45 2012
@@ -107,7 +107,7 @@
             </handler>
             <view x="2" y="1">
                 <handler name="oninit">
-                    var swfurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport+canvas.httpRootKey+'public/emoticons/smile_btn.swf';
+                    var swfurl = canvas.getUrl() + 'public/emoticons/smile_btn.swf';
                     this.setSource(swfurl);
                     //if ($debug) Debug.write("CHAT SWFURL",swfurl);
                 </handler>
@@ -148,88 +148,4 @@
     </view>
 
 </class>
-
-<!--
-<view x="0" y="0" height="20" width="140" name="message" 
-              bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
-            <method name="getText">
-                return this._ctext.getText();
-            </method>
-            <method name="setText" args="txt">
-                this._ctext.setAttribute('text',txt);
-            </method>
-            <inputtext name="_ctext" width="$once{ parent.width-2 }" height="$once{ parent.height-2 }"
-                x="1" y="1" bgcolor="white" >
-                <handler name="onkeyup" args="key">
-                    <![CDATA[
-                    // 13 is return
-                    if ((key==27) || (key==13)) {
-                        this.parent.parent._button.onclick.sendEvent();
-                    }
-                    ]]>
-                </handler>
-            </inputtext>        
-        </view>
-
-        <attribute name="objMessage" value="null" />
-        <simpleLabelButton align="right" y="0" labelid="220" name="_button"> 
-            <handler name="onclick">
-                parent.objMessage = new Array ();
-                parent.objMessage[0] = 'chat';
-                //The server side will put time here
-                parent.objMessage[1] = "";
-                //Debug.write("Setting Message");
-                parent.objMessage[2] = 'newtextmessage';
-                parent.objMessage[3] = hib.userobject.login;
-                var message = this.parent.message.getText();
-                if (canvas.isrtl) message = canvas.reverseWords(message)
-                parent.objMessage[4] = message;
-                parent.objMessage[5] = 0xCCCCCC;
-                parent.objMessage[6] = 0;
-                parent.objMessage[7] = canvas.isrtl;
-                parent.objMessage[8] = hib.userobject.user_id;
-                if (this.parent.message.getText().length!=0){
-                    //Debug.write("send: ",this.parent.objMessage);
-                    parent.sendMessageWithClient.doCall();
-                    this.parent.message.setText('');
-                }
-            </handler>
-        </simpleLabelButton>
-        
-        <simpleLabelButton name="_show_emots">
-            <handler name="onclick">
-                //parent.clearOverallChat.doCall();
-                var pick = new lz.emotIconsSelector(canvas,{btnRef:this.parent,x:(this.getAttributeRelative('x',canvas)-140),y:(this.getAttributeRelative('y',canvas)-140)});
-                lz.ModeManager.makeModal( pick );
-            </handler>
-            <view x="2" y="1">
-                <handler name="oninit">
-                    var swfurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport+canvas.httpRootKey+'public/emoticons/smile_btn.swf';
-                    this.setSource(swfurl);
-                </handler>
-            </view>
-            <labelTooltip labelid="445" />
-        </simpleLabelButton>    
-                
-        <simpleLabelButton x="240" y="0" name="_delete_chat_log">
-            <handler name="onclick">
-                parent.clearChat.doCall();
-            </handler>
-            <view x="3" y="1" resource="delete_chat_log_rsc" />
-            <labelTooltip labelid="442" />
-        </simpleLabelButton>        
-        
-        <netRemoteCallHib name="sendMessageWithClient" funcname="chatservice.sendMessageWithClient" 
-            remotecontext="$once{ canvas.thishib }" > 
-            <netparam><method name="getValue"> return parent.parent.objMessage; </method></netparam>
-            
-            <handler name="ondata" args="value">
-                <![CDATA[
-                    //The onResult-Handler will be called be the rtmpconnection
-                    Debug.write("chatservice.sendMessageWithClient getValue : ",value);
-                ]]>
-            </handler>   
-        </netRemoteCallHib>
-        -->
-
 </library>

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx Tue Jul 17 19:33:45 2012
@@ -34,8 +34,7 @@
 		<![CDATA[
 			if($debug) Debug.write("chatTabItem/WIDTH: "+this.width);
 			if($debug) Debug.write("chatTab Item on init");
-	        var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-	        		+canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
+	        var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
 	        		+'&moduleName=chat&parentPath=&room_id='
 	        		+'&remoteUserid='+this.user_id
 	        		+'&sid='+canvas.sessionId;

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx Tue Jul 17 19:33:45 2012
@@ -44,8 +44,7 @@
                 
             } else {
             	if($debug) Debug.write("chatTabItemEmoticons/WIDTH: "+this.width);
-                var downloadurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                        +canvas.httpRootKey+'DownloadHandler?fileName=CHAT'
+                var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
                         +'&moduleName=chat&parentPath=&room_id='
                         +'&remoteUserid='+this.user_id
                         +'&sid='+canvas.sessionId;
@@ -175,8 +174,7 @@
 							}
 							t += items[i][2];
 							
-							var swfurl = canvas.protocol+'://'+canvas.rtmphostlocal+':'+canvas.red5httpport+
-											canvas.httpRootKey + 'public/emoticons/'+items[i][1];
+							var swfurl = canvas.getUrl() + 'public/emoticons/'+items[i][1];
 							var m = new lz.chatInnerSmily(parent,{x:x+this.x,y:y+this.y,iconlabel:items[i][3]});
 							
 							//if ($debug) Debug.write("Smily :2: ",swfurl);

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx Tue Jul 17 19:33:45 2012
@@ -148,20 +148,17 @@
             }
         
             var downloadurl = canvas.protocol + '://'+canvas.rtmphostlocal+':'+canvas.red5httpport
-                +canvas.httpRootKey+'ScreenRequestHandler?'
+                +canvas.httpRootKey+'screen.upload?'
                 +'rtmphostlocal='+canvas.rtmphostlocal
-                +'&room='+hib.currentroomid
                 +'&domain='+hib.conferencedomain
                 +'&organization_id='+organisation_id
                 +'&sid='+canvas.sessionId
                 +'&red5httpport='+canvas.red5httpport
                 +'&connectionType='+canvas.thishib.protocollName
-                +'&allowRecording='+canvas.allowRecording
                 +'&port='+canvas.thishib.protocollPort
                 +'&publicSID='+canvas.publicSID
                 +'&httpRootKey='+canvas.httpRootKey
-                +'&languageAsString='+hib.userlang
-                +'&record='+record;
+                +'&languageAsString='+hib.userlang;
 
             if ($debug) Debug.write(downloadurl); 
             lz.Browser.loadURL(downloadurl,'_blank');  

Modified: incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm Tue Jul 17 19:33:45 2012
@@ -343,26 +343,6 @@ function checkEmail() 
         
     </fieldset>
     
-    <fieldset id="ScreenViewer">
-    
-		<legend>Screen Viewer</legend>    
-		<li>
-        <label for="screen_viewer">Screenviewer Config</label>
-    	<select name="screen_viewer" id="screen_viewer" size="1">
-    		<option value="4" selected>Rtmp Viewer (Standard)</option>
-	    </select><br />	
-		</li>
-    	<p><i>
-	    	The standard Screenviewer is optimized for low-bandwidth areas - You have the possibility of<BR/>
-	    	altering the quality of the screencapture,ie.<BR/>
-	    	The jrDesktop alternative starts immediately without GUI, just stoppable via SysTray Icon, but offers<BR/>
-	    	a higher speed tranferring the screencaptures to the whiteboard<BR/>
-	    	The RTP Sharer transfers Desktop Data as RTP Stream to Server. Best performance and quality is reached using 1024x768 as Screen Resolution<BR/>
-	    	
-    	</i></p>
-        
-    </fieldset>
-
     <fieldset id="red5sip">
         <legend>red5SIP Configuration</legend>
 

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Fieldmanagment.java Tue Jul 17 19:33:45 2012
@@ -205,7 +205,7 @@ public class Fieldmanagment {
 			for (Object fl : query.getResultList()) {
 				Map<String, Object> map = new HashMap<String, Object>();
 				Object[] row = (Object[])fl;
-				map.put("id", (Long)row[0]);
+				map.put("id", row[0]);
 				map.put("value", performReplace((String)row[1], appName));
 				returnList.add(map);
 			}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java Tue Jul 17 19:33:45 2012
@@ -264,9 +264,6 @@ public class ImportInitvalues {
 								+ "running previous Pass of users will not be workign anymore! "
 								+ "for more Information see http://code.google.com/p/openmeetings/wiki/CustomCryptMechanism");
 
-		cfgManagement.addConfByKey(3, "screen_viewer", cfg.screenViewer, null,
-				"ScreenViewer Type(0==standard, 1== jrdesktop)");
-
 		cfgManagement.addConfByKey(3, "allow_frontend_register",
 				cfg.allowFrontendRegister, null, "");
 

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java Tue Jul 17 19:33:45 2012
@@ -51,7 +51,6 @@ public class InstallationConfig {
 	public String urlFeed2 = "http://mail-archives.apache.org/mod_mbox/incubator-openmeetings-dev/?format=atom";
 	public String sendEmailWithVerficationCode = "0";
 	public String defaultExportFont = "TimesNewRoman";
-	public String screenViewer = "4";
 	public String sipEnable = "0";
 	public String sipProxyName = "";
 	public String sipPort = "";
@@ -91,7 +90,7 @@ public class InstallationConfig {
 				+ sendEmailAtRegister + ", urlFeed=" + urlFeed + ", urlFeed2="
 				+ urlFeed2 + ", sendEmailWithVerficationCode="
 				+ sendEmailWithVerficationCode + ", defaultExportFont="
-				+ defaultExportFont + ", screenViewer=" + screenViewer
+				+ defaultExportFont
 				+ ", sipEnable=" + sipEnable + ", sipProxyName=" + sipProxyName
 				+ ", sipPort=" + sipPort + ", sipTunnel=" + sipTunnel
 				+ ", sipRealm=" + sipRealm + ", sipOpenxgEnable="

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/rooms/RoomClient.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/rooms/RoomClient.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/rooms/RoomClient.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/rooms/RoomClient.java Tue Jul 17 19:33:45 2012
@@ -48,6 +48,8 @@ import javax.persistence.Transient;
 	, @NamedQuery(name="getByRoomIdMod", query="SELECT rc FROM RoomClient rc WHERE rc.room_id = :room_id AND rc.isMod = true")
 	, @NamedQuery(name="deleteByStreamId", query="DELETE FROM RoomClient rc WHERE rc.streamid = :streamid")
 	, @NamedQuery(name="deleteAll", query="DELETE FROM RoomClient rc")
+	, @NamedQuery(name="getRecordingCountByRoomId", query="SELECT COUNT(rc) FROM RoomClient rc WHERE rc.room_id = :room_id AND rc.startRecording = true")
+	, @NamedQuery(name="getPublisingCountByRoomId", query="SELECT COUNT(rc) FROM RoomClient rc WHERE rc.room_id = :room_id AND rc.streamPublishStarted = true")
 })
 public class RoomClient implements Serializable {
 	private static final long serialVersionUID = 1831858089607111565L;

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ClientListManager.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ClientListManager.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ClientListManager.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ClientListManager.java Tue Jul 17 19:33:45 2012
@@ -283,7 +283,7 @@ public class ClientListManager {
 			TypedQuery<RoomClient> q = em.createNamedQuery("getByRoomIdMod", RoomClient.class);
 			q.setParameter("room_id", room_id);
 			return q.getResultList();
-			}
+		}
 		return new ArrayList<RoomClient>();
 	}
 
@@ -311,4 +311,16 @@ public class ClientListManager {
 			log.error("[removeAllClients]", err);
 		}
 	}
+	
+	public long getRecordingCount(long roomId) {
+		TypedQuery<Long> q = em.createNamedQuery("getRecordingCountByRoomId", Long.class);
+		q.setParameter("room_id", roomId);
+		return q.getSingleResult();
+	}
+
+	public long getPublisingCount(long roomId) {
+		TypedQuery<Long> q = em.createNamedQuery("getPublisingCountByRoomId", Long.class);
+		q.setParameter("room_id", roomId);
+		return q.getSingleResult();
+	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/red5/ScopeApplicationAdapter.java Tue Jul 17 19:33:45 2012
@@ -304,10 +304,12 @@ public class ScopeApplicationAdapter ext
 
 			if (currentClient != null) {
 
-				boolean startRecording = Boolean.valueOf(map.get(
-						"startRecording").toString());
-				boolean startStreaming = Boolean.valueOf(map.get(
-						"startStreaming").toString());
+				boolean startRecording = Boolean.valueOf("" + map.get(
+						"startRecording"));
+				boolean startStreaming = Boolean.valueOf("" + map.get(
+						"startStreaming"));
+				boolean startPublishing = Boolean.valueOf("" + map.get(
+						"startPublishing"));
 
 				currentClient.setRoom_id(Long.parseLong(current.getScope()
 						.getName()));
@@ -320,10 +322,12 @@ public class ScopeApplicationAdapter ext
 				if (startStreaming) {
 					currentClient.setStartStreaming(true);
 				}
-
 				if (startRecording) {
 					currentClient.setStartRecording(true);
 				}
+				if (startPublishing) {
+					currentClient.setStreamPublishStarted(true);
+				}
 
 				currentClient.setOrganization_id(Long.parseLong(map.get(
 						"organization_id").toString()));
@@ -386,7 +390,7 @@ public class ScopeApplicationAdapter ext
 									.getDateWithTimeByMiliSeconds(new Date());
 
 					flvRecorderService.recordMeetingStream(recordingName, "", false);
-				} else if (Boolean.valueOf(map.get("startPublishing").toString())) {
+				} else if (startPublishing) {
 					syncMessageToCurrentScope("startedPublishing", new Object[]{currentClient, "rtmp://" + map.get("publishingHost") + ":1935/"
 							+ map.get("publishingApp") + "/" + map.get("publishingId")}, false, true);
 					returnMap.put("modus", "startPublishing");

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/CoreScreenShare.java Tue Jul 17 19:33:45 2012
@@ -66,7 +66,8 @@ public class CoreScreenShare implements 
 
 	public Long organization_id = 0L;
 	public Long user_id = null;
-	public boolean allowRecording = true;
+	private boolean allowRecording = true;
+	private boolean allowPublishing = true;
 
 	private boolean startStreaming = false;
 	private boolean startRecording = false;
@@ -103,6 +104,7 @@ public class CoreScreenShare implements 
 				defaultQuality = Integer.parseInt(args[6]);
 				user_id = Long.parseLong(args[7]);
 				allowRecording = Boolean.valueOf(args[8]);
+				allowPublishing = Boolean.valueOf(args[9]);
 
 				if (labelTexts.length() > 0) {
 					textArray = labelTexts.split(";");
@@ -139,7 +141,7 @@ public class CoreScreenShare implements 
 			frame = new ScreenSharerFrame(this, textArray);
 			frame.setVisible(true);
 			frame.setRecordingTabEnabled(allowRecording);
-			frame.setPublishingTabEnabled(allowRecording);
+			frame.setPublishingTabEnabled(allowPublishing);
 			logger.debug("initialized");
 		} catch (Exception err) {
 			logger.error("createWindow Exception: ", err);

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPClientPublish.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPClientPublish.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPClientPublish.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPClientPublish.java Tue Jul 17 19:33:45 2012
@@ -17,9 +17,11 @@ class RTMPClientPublish extends RTMPClie
 	private static final Logger logger = LoggerFactory.getLogger(RTMPClientPublish.class);
 	private final CaptureScreen publishScreen;
 	private String id;
+	private CoreScreenShare core;
 	
 	RTMPClientPublish(CoreScreenShare core, String host, String app, String id) {
 		this.id = id;
+		this.core = core;
 		publishScreen = new CaptureScreen(core, this, host, app, 1935);
 	}
 
@@ -41,8 +43,13 @@ class RTMPClientPublish extends RTMPClie
 	@Override
 	public void connectionClosed(RTMPConnection conn, RTMP state) {
 		super.connectionClosed(conn, state);
+		connectionClosed();
+	}
+	
+	private void connectionClosed() {
 		publishScreen.setStartPublish(false);
 		publishScreen.release();
+		core.sendStopPublishing();
 	}
 	
 	@Override
@@ -58,12 +65,15 @@ class RTMPClientPublish extends RTMPClie
 		if ("connect".equals(method)) {
 			//setConnectionAsSharingClient(); //FIXME
 		} else if ("createStream".equals(method)) {
-			publishScreen.setStreamId((Integer)call.getResult());
-			publish(publishScreen.getStreamId(), id, "live", this);
-			publishScreen.setStartPublish(true);
-			publishScreen.start();
+			if (call.getResult() != null) {
+				publishScreen.setStreamId((Integer)call.getResult());
+				publish(publishScreen.getStreamId(), id, "live", this);
+				publishScreen.setStartPublish(true);
+				publishScreen.start();
+			} else {
+				connectionClosed();
+			}
 		}
-		resultReceived(call);
 	}
 
 	public void onStreamEvent(Notify notify) {

Modified: 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=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java Tue Jul 17 19:33:45 2012
@@ -47,8 +47,8 @@ public class RTMPSScreenShare extends RT
 		if (args.length < 11) {
 			System.exit(0);
 		}
-		client.setKeystoreBytes(Hex.decodeHex(args[9].toCharArray()));
-		client.setKeyStorePassword(args[10]);
+		client.setKeystoreBytes(Hex.decodeHex(args[10].toCharArray()));
+		client.setKeyStorePassword(args[11]);
 	}
 	
 	@Override

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/AbstractUploadController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/AbstractUploadController.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/AbstractUploadController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/AbstractUploadController.java Tue Jul 17 19:33:45 2012
@@ -18,7 +18,6 @@
  */
 package org.openmeetings.servlet.outputhandler;
 
-import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 
@@ -31,14 +30,12 @@ import org.openmeetings.utils.ImportHelp
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.context.ServletContextAware;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 
-public abstract class AbstractUploadController implements ServletContextAware {
+public abstract class AbstractUploadController {
 	private static final Logger log = Red5LoggerFactory.getLogger(
 			AbstractUploadController.class, OpenmeetingsVariables.webAppRootKey);
-	protected ServletContext context;
 	@Autowired
 	protected Sessionmanagement sessionManagement;
 	@Autowired
@@ -48,10 +45,6 @@ public abstract class AbstractUploadCont
 	@Autowired
 	protected Configurationmanagement cfgManagement;
 	
-	public void setServletContext(ServletContext arg0) {
-		context = arg0;
-	}
-	
 	protected class UploadInfo {
 		MultipartFile file;
 		Long userId;

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java Tue Jul 17 19:33:45 2012
@@ -241,8 +241,6 @@ public class Install extends VelocityVie
 
 					cfg.soxPath = httpServletRequest.getParameter("sox_path");
 
-					cfg.screenViewer = httpServletRequest.getParameter("screen_viewer");
-
                     // red5sip integration config
                     cfg.red5SipEnable = httpServletRequest.getParameter("red5sip_enable");
                     cfg.red5SipRoomPrefix = httpServletRequest.getParameter("red5sip_room_prefix");

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenController.java (from r1362555, 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/ScreenController.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenController.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java&r1=1362555&r2=1362619&rev=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenController.java Tue Jul 17 19:33:45 2012
@@ -29,63 +29,37 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.lang.StringUtils;
-import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.view.VelocityViewServlet;
+import org.apache.velocity.runtime.RuntimeConstants;
+import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
 import org.openmeetings.app.OpenmeetingsVariables;
 import org.openmeetings.app.data.basic.Configurationmanagement;
 import org.openmeetings.app.data.basic.Fieldmanagment;
 import org.openmeetings.app.data.basic.Sessionmanagement;
-import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.app.persistence.beans.rooms.RoomClient;
+import org.openmeetings.app.remote.red5.ClientListManager;
 import org.openmeetings.utils.OmFileHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
-import org.springframework.context.ApplicationContext;
-import org.springframework.web.context.support.WebApplicationContextUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
 
-public class ScreenRequestHandler extends VelocityViewServlet {
-	private static final long serialVersionUID = 2381722235536488913L;
+@Controller
+public class ScreenController {
 	private static final Logger log = Red5LoggerFactory.getLogger(
-			ScreenRequestHandler.class, OpenmeetingsVariables.webAppRootKey);
+			ScreenController.class, OpenmeetingsVariables.webAppRootKey);
 
-	public Sessionmanagement getSessionManagement() {
-		try {
-			if (ScopeApplicationAdapter.initComplete) {
-				ApplicationContext context = WebApplicationContextUtils
-						.getWebApplicationContext(getServletContext());
-				return context.getBean(Sessionmanagement.class);
-			}
-		} catch (Exception err) {
-			log.error("[getSessionManagement]", err);
-		}
-		return null;
-	}
-
-	public Configurationmanagement getCfgManagement() {
-		try {
-			if (ScopeApplicationAdapter.initComplete) {
-				ApplicationContext context = WebApplicationContextUtils
-						.getWebApplicationContext(getServletContext());
-				return context.getBean(Configurationmanagement.class);
-			}
-		} catch (Exception err) {
-			log.error("[getCfgManagement]", err);
-		}
-		return null;
-	}
-
-	public Fieldmanagment getFieldmanagment() {
-		try {
-			if (ScopeApplicationAdapter.initComplete) {
-				ApplicationContext context = WebApplicationContextUtils
-						.getWebApplicationContext(getServletContext());
-				return context.getBean(Fieldmanagment.class);
-			}
-		} catch (Exception err) {
-			log.error("[getFieldmanagment]", err);
-		}
-		return null;
-	}
+	@Autowired
+	private ClientListManager clientListManager;
+	@Autowired
+	public Sessionmanagement sessionManagement;
+	@Autowired
+	public Configurationmanagement cfgManagement;
+	@Autowired
+	public Fieldmanagment fieldmanagment;
 
 	private enum ConnectionType {
 		rtmp
@@ -94,7 +68,6 @@ public class ScreenRequestHandler extend
 	}
 	
 	private String getLabels(Long language_id, int ... ids) {
-		Fieldmanagment fieldmanagment = getFieldmanagment();
 		StringBuilder result = new StringBuilder();
 		boolean delim = false;
 		for (int id : ids) {
@@ -107,112 +80,55 @@ public class ScreenRequestHandler extend
 		return result.toString();
 	}
 	
-	@Override
-	public Template handleRequest(HttpServletRequest httpServletRequest,
-			HttpServletResponse httpServletResponse, Context ctx) {
-
+    @RequestMapping(value = "/screen.upload")
+	public void handleRequest(HttpServletRequest request,
+			HttpServletResponse response) {
 		try {
-			if (getSessionManagement() == null) {
-				return getVelocityView().getVelocityEngine().getTemplate(
-						"booting.vm");
-			}
-
-			String sid = httpServletRequest.getParameter("sid");
-			if (sid == null) {
-				sid = "default";
+			String sid = request.getParameter("sid");
+			Long users_id = sessionManagement.checkSession(sid);
+			String publicSID = request.getParameter("publicSID");
+			if (publicSID == null) {
+				throw new Exception("publicSID is empty: " + publicSID);
 			}
-			log.debug("sid: " + sid);
-
-			Long users_id = getSessionManagement().checkSession(sid);
 			if (users_id == 0) {
 				//checkSession will return 0 in case of invalid session
 				throw new Exception("Request from invalid user " + users_id);
 			}
-			String publicSID = httpServletRequest.getParameter("publicSID");
-			if (publicSID == null) {
-				throw new Exception("publicSID is empty: " + publicSID);
-			}
 
-			String room = httpServletRequest.getParameter("room");
-			if (room == null)
-				room = "default";
-
-			String domain = httpServletRequest.getParameter("domain");
+			String domain = request.getParameter("domain");
 			if (domain == null) {
 				throw new Exception("domain is empty: " + domain);
 			}
 
-			String languageAsString = httpServletRequest
-					.getParameter("languageAsString");
+			String languageAsString = request.getParameter("languageAsString");
 			if (languageAsString == null) {
-				throw new Exception("languageAsString is empty: " + domain);
+				throw new Exception("languageAsString is empty: " + languageAsString);
 			}
 			Long language_id = Long.parseLong(languageAsString);
 
-			String rtmphostlocal = httpServletRequest
-					.getParameter("rtmphostlocal");
+			String rtmphostlocal = request.getParameter("rtmphostlocal");
 			if (rtmphostlocal == null) {
 				throw new Exception("rtmphostlocal is empty: " + rtmphostlocal);
 			}
 
-			String red5httpport = httpServletRequest
-					.getParameter("red5httpport");
+			String red5httpport = request.getParameter("red5httpport");
 			if (red5httpport == null) {
 				throw new Exception("red5httpport is empty: " + red5httpport);
 			}
 
-			String record = httpServletRequest.getParameter("record");
-			if (record == null) {
-				throw new Exception("recorder is empty: ");
-			}
-
-			String httpRootKey = httpServletRequest.getParameter("httpRootKey");
+			String httpRootKey = request.getParameter("httpRootKey");
 			if (httpRootKey == null) {
 				throw new Exception("httpRootKey is empty could not start sharer");
 			}
 
-			String baseURL = httpServletRequest.getScheme() + "://" + rtmphostlocal + ":" + red5httpport
+			String baseURL = request.getScheme() + "://" + rtmphostlocal + ":" + red5httpport
 					+ httpRootKey;
 
-			// make a complete name out of domain(organisation) + roomname
-			String roomName = domain + "_" + room;
-			// trim whitespaces cause it is a directory name
-			roomName = StringUtils.deleteWhitespace(roomName);
-
-			ctx.put("rtmphostlocal", rtmphostlocal); // rtmphostlocal
-			ctx.put("red5httpport", red5httpport); // red5httpport
-
 			log.debug("httpRootKey " + httpRootKey);
-
-			String codebase = baseURL + "screen";
-
-			ctx.put("codebase", codebase);
-
-			String httpSharerURL = baseURL + "ScreenServlet";
-
-			ctx.put("webAppRootKey", httpRootKey);
-			ctx.put("httpSharerURL", httpSharerURL);
-
-			ctx.put("APP_NAME", getCfgManagement().getAppName());
-			ctx.put("SID", sid);
-			ctx.put("ROOM", room);
-			ctx.put("DOMAIN", domain);
-			ctx.put("PUBLIC_SID", publicSID);
-			ctx.put("RECORDER", record);
-
-			String requestedFile = roomName + ".jnlp";
-			httpServletResponse.setContentType("application/x-java-jnlp-file");
-			httpServletResponse.setHeader("Content-Disposition",
-					"Inline; filename=\"" + requestedFile + "\"");
-
-
 			log.debug("language_id :: " + language_id);
-			String label_viewer = "Viewer";
 			String label_sharer = "Sharer";
 
 			try {
-				label_viewer = getLabels(language_id, 728, 729, 736, 742);
-
 				label_sharer = getLabels(language_id
 					,  730,  731,  732,  733,  734
 					,  735,  737,  738,  739,  740
@@ -225,96 +141,93 @@ public class ScreenRequestHandler extend
 			} catch (Exception e) {
 				log.error("Error resolving Language labels : ", e);
 			}
-
-			ctx.put("LABELVIEWER", label_viewer);
-			ctx.put("LABELSHARER", label_sharer);
-
 			log.debug("Creating JNLP Template for TCP solution");
 
-			try {
-				//libs
-				StringBuilder libs = new StringBuilder();
-				File screenShareDir = OmFileHelper.getScreenSharingDir();
-				for (File jar : screenShareDir.listFiles(new FileFilter() {
-					public boolean accept(File pathname) {
-						return pathname.getName().endsWith(".jar");
-					}
-				})) {
-					libs.append("\t\t<jar href=\"").append(jar.getName()).append("\"/>\n");
-				}
-				addKeystore(ctx);
-				ctx.put("LIBRARIES", libs);
-				log.debug("RTMP Sharer labels :: " + label_sharer);
-
-				codebase = baseURL + OmFileHelper.SCREENSHARING_DIR;
-
-				ConnectionType conType = ConnectionType
-						.valueOf(httpServletRequest
-								.getParameter("connectionType"));
-
-				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) {
-					throw new Exception(
-							"orgIdAsString is empty could not start sharer");
-				}
-
-				ctx.put("organization_id", orgIdAsString);
-
-				ctx.put("startUpClass", startUpClass);
-				ctx.put("codebase", codebase);
-				ctx.put("red5-host", rtmphostlocal);
-				ctx.put("red5-app", OpenmeetingsVariables.webAppRootKey + "/"
-						+ room);
-
-				ctx.put("default_quality_screensharing",
-					getCfgManagement().getConfValue(
-						"default.quality.screensharing", String.class, "1"));
-
-				//invited guest does not have valid user_id (have user_id == -1)
-				ctx.put("user_id", users_id);
-
-				String port = httpServletRequest.getParameter("port");
-				if (port == null) {
-					throw new Exception("port is empty: ");
+			//libs
+			StringBuilder libs = new StringBuilder();
+			File screenShareDir = OmFileHelper.getScreenSharingDir();
+			for (File jar : screenShareDir.listFiles(new FileFilter() {
+				public boolean accept(File pathname) {
+					return pathname.getName().endsWith(".jar");
 				}
-				ctx.put("port", port);
-
-				String allowRecording = httpServletRequest
-						.getParameter("allowRecording");
-				if (allowRecording == null) {
-					throw new Exception("allowRecording is empty: ");
-				}
-				ctx.put("allowRecording", allowRecording);
-
-			} catch (Exception e) {
-				log.error("invalid configuration value for key screen_viewer!");
+			})) {
+				libs.append("\t\t<jar href=\"").append(jar.getName()).append("\"/>\n");
 			}
+			log.debug("RTMP Sharer labels :: " + label_sharer);
 
-			String template = "screenshare.vm";
+			ConnectionType conType
+				= ConnectionType.valueOf(request.getParameter("connectionType"));
 
-			return getVelocityView().getVelocityEngine().getTemplate(template);
+			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 = request.getParameter("organization_id");
+			if (orgIdAsString == null) {
+				throw new Exception("orgIdAsString is empty could not start sharer");
+			}
+
+			String port = request.getParameter("port");
+			if (port == null) {
+				throw new Exception("port is empty: ");
+			}
+			RoomClient rc = clientListManager.getClientByPublicSID(publicSID, false);
+			if (rc == null) {
+				throw new Exception("port is empty: ");
+			}
+			Long roomId = rc.getRoom_id();
+			boolean allowRecording = rc.getAllowRecording()
+				&& (0 == clientListManager.getRecordingCount(roomId));
+			boolean allowPublishing = (0 == clientListManager.getPublisingCount(roomId));
+			
+			Context ctx = new VelocityContext();
+			ctx.put("APP_NAME", cfgManagement.getAppName());
+			ctx.put("PUBLIC_SID", publicSID);
+			ctx.put("LABELSHARER", label_sharer);
+			addKeystore(ctx);
+			ctx.put("LIBRARIES", libs);
+			ctx.put("organization_id", orgIdAsString);
+			ctx.put("startUpClass", startUpClass);
+			ctx.put("codebase", baseURL + OmFileHelper.SCREENSHARING_DIR);
+			ctx.put("red5-host", rtmphostlocal);
+			ctx.put("red5-app", OpenmeetingsVariables.webAppRootKey + "/" + roomId);
+			ctx.put("default_quality_screensharing",
+				cfgManagement.getConfValue(
+					"default.quality.screensharing", String.class, "1"));
+			//invited guest does not have valid user_id (have user_id == -1)
+			ctx.put("user_id", users_id);
+			ctx.put("port", port);
+			ctx.put("allowRecording", allowRecording);
+			ctx.put("allowPublishing", allowPublishing);
+
+			String requestedFile = StringUtils.deleteWhitespace(domain + "_" + roomId) + ".jnlp";
+			response.setContentType("application/x-java-jnlp-file");
+			response.setHeader("Content-Disposition",
+					"Inline; filename=\"" + requestedFile + "\"");
 
+			VelocityEngine ve = new VelocityEngine();
+			ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); 
+			ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
+			
+			ve.mergeTemplate(
+				"screenshare.vm"
+				, "UTF-8"
+				, ctx
+				, response.getWriter());
 		} catch (Exception er) {
-			log.error("[ScreenRequestHandler]", er);
-			System.out.println("Error downloading: " + er);
+			log.error("[ScreenController]", er);
 		}
-		return null;
 	}
 
 	private StringBuilder addArgument(StringBuilder sb, Object arg) {

Modified: incubator/openmeetings/trunk/singlewebapp/src/screenshare.vm
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/screenshare.vm?rev=1362619&r1=1362618&r2=1362619&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/screenshare.vm (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/screenshare.vm Tue Jul 17 19:33:45 2012
@@ -41,6 +41,7 @@ $LIBRARIES
     	<argument>$default_quality_screensharing</argument>
     	<argument>$user_id</argument>   
     	<argument>$allowRecording</argument>
+    	<argument>$allowPublishing</argument>
 $KEYSTORE
     </application-desc> 
 </jnlp>