Author: solomax
Date: Wed Apr 25 09:03:45 2012
New Revision: 1330162

URL: http://svn.apache.org/viewvc?rev=1330162&view=rev
Log:
OPENMEETINGS-226 is fixed

Added:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ProcessHelper.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/.project
    incubator/openmeetings/trunk/singlewebapp/docs/GeneralConfiguration.html
    incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvExplorerConverter.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateImage.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GeneratePDF.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateSWF.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateThumbs.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/xdocs/GeneralConfiguration.xml

Modified: incubator/openmeetings/trunk/singlewebapp/.project
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/.project?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/.project (original)
+++ incubator/openmeetings/trunk/singlewebapp/.project Wed Apr 25 09:03:45 2012
@@ -41,7 +41,7 @@
        </natures>
        <filteredResources>
                <filter>
-                       <id>1333687549649</id>
+                       <id>1335328265197</id>
                        <name></name>
                        <type>26</type>
                        <matcher>
@@ -50,7 +50,7 @@
                        </matcher>
                </filter>
                <filter>
-                       <id>1333687549666</id>
+                       <id>1335328265218</id>
                        <name></name>
                        <type>10</type>
                        <matcher>
@@ -59,7 +59,7 @@
                        </matcher>
                </filter>
                <filter>
-                       <id>1333687549667</id>
+                       <id>1335328265238</id>
                        <name></name>
                        <type>26</type>
                        <matcher>
@@ -68,7 +68,7 @@
                        </matcher>
                </filter>
                <filter>
-                       <id>1333687549702</id>
+                       <id>1335328265260</id>
                        <name></name>
                        <type>26</type>
                        <matcher>
@@ -76,5 +76,14 @@
                                
<arguments>1.0-projectRelativePath-matches-false-false-build/openlaszlo</arguments>
                        </matcher>
                </filter>
+               <filter>
+                       <id>1335328265291</id>
+                       <name></name>
+                       <type>30</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               
<arguments>1.0-projectRelativePath-matches-false-false-build/red5/bin</arguments>
+                       </matcher>
+               </filter>
        </filteredResources>
 </projectDescription>

Modified: 
incubator/openmeetings/trunk/singlewebapp/docs/GeneralConfiguration.html
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/docs/GeneralConfiguration.html?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/docs/GeneralConfiguration.html 
(original)
+++ incubator/openmeetings/trunk/singlewebapp/docs/GeneralConfiguration.html 
Wed Apr 25 09:03:45 2012
@@ -1060,6 +1060,28 @@ limitations under the License.
             </font>
 </td>
             </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" colspan="" rowspan="" 
valign="top" align="left">
+    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+                 office.path 
+            </font>
+</td>
+                                <td bgcolor="#a0ddf0" colspan="" rowspan="" 
valign="top" align="left">
+    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+                 
+            </font>
+</td>
+                                <td bgcolor="#a0ddf0" colspan="" rowspan="" 
valign="top" align="left">
+    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+                 The path to OpenOffice/LibreOffice (optional) please set this 
to the real path in case jodconverter is unable to find OpenOffice/LibreOffice 
installation automatically       
+            </font>
+</td>
+                                <td bgcolor="#a0ddf0" colspan="" rowspan="" 
valign="top" align="left">
+    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
+                 2.0.x 
+            </font>
+</td>
+            </tr>
             </table>
                             </blockquote>
         </p>

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=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/install_step1_EN.vm Wed Apr 
25 09:03:45 2012
@@ -268,35 +268,40 @@ function checkEmail() 
     </fieldset>  
     
     <fieldset id="userConf1">
-    
                <legend>Converters</legend>    
                <li>
-        <label for="swftools_path">SWFTools Path</label>
-       <input name="swftools_path" id="swftools_path" size="27" title="Enter 
the path to swftools for example C:/swftools (Windows) or leave blank if 
swftools is a known to your system path" type="text" />          
-       <p><i>You can test if swftools is installed into system path by opening 
a shell or cmd-prompt and type pdf2swf<br/>
-               If this shows a list of options leave this field blank 
otherwise you have to specify the path to pdf2swf on your system<br/>
-               see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>
+               <label for="swftools_path">SWFTools Path</label>
+               <input name="swftools_path" id="swftools_path" size="27" 
title="Enter the path to swftools for example C:/swftools (Windows) or leave 
blank if swftools is a known to your system path" type="text" />          
+               <p><i>You can test if swftools is installed into system path by 
opening a shell or cmd-prompt and type pdf2swf<br/>
+                       If this shows a list of options leave this field blank 
otherwise you have to specify the path to pdf2swf on your system<br/>
+                       see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>
         </li>
         <li>
-        <label for="imagemagick_path">ImageMagick Path</label>
-       <input name="imagemagick_path" id="imagemagick_path" size="27" 
title="Enter the path to ImageMagick, leave blank if ImageMagick is 
successfully installed to system-path" type="text" />        
-       <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>   
+               <label for="imagemagick_path">ImageMagick Path</label>
+               <input name="imagemagick_path" id="imagemagick_path" size="27" 
title="Enter the path to ImageMagick, leave blank if ImageMagick is 
successfully installed to system-path" type="text" />        
+               <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>   
        </li>
        <li>
-        <label for="ffmpeg_path">FFMPEG Path</label>
-        <input name="ffmpeg_path" id="ffmpeg_path" size="27" title="Enter the 
path to FFMPEG, leave blank if FFMPEG is successfully installed to system-path" 
type="text" />    
-        <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>  
+               <label for="ffmpeg_path">FFMPEG Path</label>
+               <input name="ffmpeg_path" id="ffmpeg_path" size="27" 
title="Enter the path to FFMPEG, leave blank if FFMPEG is successfully 
installed to system-path" type="text" />    
+               <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>  
         </li>
         <li>
         <label for="sox_path">SoX Path</label>
-        <input name="sox_path" id="sox_path" size="27" title="Enter the path 
to SoX, leave blank if SoX is successfully installed to system-path" 
type="text" />    
-        <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>  
+               <input name="sox_path" id="sox_path" size="27" title="Enter the 
path to SoX, leave blank if SoX is successfully installed to system-path" 
type="text" />    
+               <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>  
+        </li>
+               <li>
+               <label for="jod_path">JOD Path</label>
+               <input name="jod_path" id="jod_path" size="27" 
value="./jodconverter-core-3.0-beta-4/lib" 
+                       title="The path to JOD library 
(http://code.google.com/p/jodconverter), configure the path to point to the lib 
directory of JOD that contains also the jodconverter-core-version.jar" 
type="text" />    
+               <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>  
         </li>
-       <li>
-        <label for="jod_path">JOD Path</label>
-        <input name="jod_path" id="jod_path" size="27" 
value="./jodconverter-core-3.0-beta-4/lib" 
-               title="The path to JOD library 
(http://code.google.com/p/jodconverter), configure the path to point to the lib 
directory of JOD that contains also the jodconverter-core-version.jar" 
type="text" />    
-        <p><i>see also <a 
href="http://code.google.com/p/openmeetings/wiki/ConvertersInstallation"; 
target="_blank">ConvertersInstallation</a></i></p>  
+               <li>
+               <label for="office_path">OpenOffice/LibreOffice Path for 
jodconverter</label>
+               <input name="office_path" id="office_path" size="27" value="" 
+                       title="The path to OpenOffice/LibreOffice (optional) 
please set this to the real path in case jodconverter is unable to find 
OpenOffice/LibreOffice installation automatically" type="text" />    
+               <p>The path to OpenOffice/LibreOffice (optional) please set 
this to the real path in case jodconverter is unable to find 
OpenOffice/LibreOffice installation</p>  
         </li>
     </fieldset>      
     

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/BaseConverter.java
 Wed Apr 25 09:03:45 2012
@@ -31,6 +31,7 @@ import org.openmeetings.app.persistence.
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaData;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaDelta;
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -203,7 +204,7 @@ public abstract class BaseConverter {
                                        }
                                        log.debug("END stripAudioFromFLVs 
################# ");
        
-                                       
returnLog.add(GenerateSWF.executeScript("generateFFMPEG",
+                                       
returnLog.add(ProcessHelper.executeScript("generateFFMPEG",
                                                        argv));
        
                                        // check if the resulting Audio is valid
@@ -300,7 +301,7 @@ public abstract class BaseConverter {
                                                        log.debug(" 
commandHelper " + commandHelper);
                                                        log.debug("END 
addGapAudioToWaves ################# ");
        
-                                                       
returnLog.add(GenerateSWF.executeScript("fillGap",
+                                                       
returnLog.add(ProcessHelper.executeScript("fillGap",
                                                                        
argv_sox));
        
                                                        
this.flvRecordingMetaDeltaDaoImpl
@@ -345,7 +346,7 @@ public abstract class BaseConverter {
                                        log.debug("padString :: " + padString);
                                        log.debug("END addAudioToWaves 
################# ");
        
-                                       returnLog.add(GenerateSWF.executeScript(
+                                       
returnLog.add(ProcessHelper.executeScript(
                                                        "addStartEndToAudio", 
argv_sox));
        
                                        // Fix for Audio Length - Invalid Audio 
Length in Recorded

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvExplorerConverter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvExplorerConverter.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvExplorerConverter.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvExplorerConverter.java
 Wed Apr 25 09:03:45 2012
@@ -27,8 +27,8 @@ import java.util.regex.Pattern;
 import org.openmeetings.app.OpenmeetingsVariables;
 import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
 import org.openmeetings.app.data.flvrecord.FlvRecordingLogDaoImpl;
-import org.openmeetings.app.documents.GenerateSWF;
 import org.openmeetings.app.persistence.beans.files.FileExplorerItem;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -111,7 +111,7 @@ public class FlvExplorerConverter extend
                        log.debug(tString);
                        log.debug("END generateFullFLV ################# ");
                        
-                       HashMap<String, String> returnMapConvertFLV = 
GenerateSWF.executeScript("uploadFLV ID :: "
+                       HashMap<String, String> returnMapConvertFLV = 
ProcessHelper.executeScript("uploadFLV ID :: "
                                        + 
fileExplorerItem.getFileExplorerItemId(), argv_fullFLV);
                        
                        //Parse the width height from the FFMPEG output
@@ -147,7 +147,7 @@ public class FlvExplorerConverter extend
                        log.debug("END previewFullFLV ################# ");
 
                        returnLog
-                                       
.add(GenerateSWF.executeScript("previewUpload ID :: "
+                                       
.add(ProcessHelper.executeScript("previewUpload ID :: "
                                                        + 
fileExplorerItem.getFileExplorerItemId(),
                                                        argv_previewFLV));
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverter.java
 Wed Apr 25 09:03:45 2012
@@ -32,11 +32,11 @@ import org.openmeetings.app.Openmeetings
 import org.openmeetings.app.data.flvrecord.FlvRecordingDaoImpl;
 import org.openmeetings.app.data.flvrecord.FlvRecordingLogDaoImpl;
 import org.openmeetings.app.data.flvrecord.FlvRecordingMetaDataDaoImpl;
-import org.openmeetings.app.documents.GenerateSWF;
 import org.openmeetings.app.documents.GenerateThumbs;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecording;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaData;
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -177,7 +177,7 @@ public class FlvInterviewConverter exten
                                log.debug(iString);
                                log.debug("END mergeAudioToWaves 
################# ");
 
-                               
returnLog.add(GenerateSWF.executeScript("mergeWave",
+                               
returnLog.add(ProcessHelper.executeScript("mergeWave",
                                                argv_full_sox));
                        } else {
 
@@ -203,7 +203,7 @@ public class FlvInterviewConverter exten
                                log.debug(tString);
                                log.debug("END generateSampleAudio 
################# ");
 
-                               
returnLog.add(GenerateSWF.executeScript("mergeWave",
+                               
returnLog.add(ProcessHelper.executeScript("mergeWave",
                                                argv_full_sox));
 
                        }
@@ -245,7 +245,7 @@ public class FlvInterviewConverter exten
                                        log.debug(iString);
                                        log.debug("END generateImageSequence 
################# ");
 
-                                       returnLog.add(GenerateSWF.executeScript(
+                                       
returnLog.add(ProcessHelper.executeScript(
                                                        
"generateImageSequence", argv_imageSeq));
 
                                }
@@ -394,7 +394,7 @@ public class FlvInterviewConverter exten
                                                                
this.getPathToImageMagick(), "+append",
                                                                
interviewPod1Images[i], interviewPod2Images[i],
                                                                outputImageName 
};
-                                               
returnLog.add(GenerateSWF.executeScript(
+                                               
returnLog.add(ProcessHelper.executeScript(
                                                                
"generateImageSequence", argv_imageMagick));
                                        } else {
                                                
returnLog.add(processImageWindows(
@@ -449,7 +449,7 @@ public class FlvInterviewConverter exten
                        log.debug(tString2);
                        log.debug("END generateFullBySequenceFLV 
################# ");
 
-                       returnLog.add(GenerateSWF.executeScript(
+                       returnLog.add(ProcessHelper.executeScript(
                                        "generateFullBySequenceFLV", 
argv_generatedMoview));
 
                        String hashFileFullNameFlv = "flvRecording_"
@@ -493,7 +493,7 @@ public class FlvInterviewConverter exten
                        log.debug(tString);
                        log.debug("END generateFullFLV ################# ");
 
-                       
returnLog.add(GenerateSWF.executeScript("generateFullFLV",
+                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV",
                                        argv_fullFLV));
 
                        flvRecording.setFileHash(hashFileFullNameFlv);
@@ -527,7 +527,7 @@ public class FlvInterviewConverter exten
                        log.debug(kString);
                        log.debug("END previewFullFLV ################# ");
 
-                       
returnLog.add(GenerateSWF.executeScript("generateFullFLV",
+                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV",
                                        argv_previewFLV));
 
                        String alternateDownloadName = "flvRecording_"
@@ -549,7 +549,7 @@ public class FlvInterviewConverter exten
                        log.debug(sString);
                        log.debug("END alternateDownLoad ################# ");
 
-                       
returnLog.add(GenerateSWF.executeScript("alternateDownload",
+                       
returnLog.add(ProcessHelper.executeScript("alternateDownload",
                                        argv_alternateDownload));
 
                        
flvRecording.setAlternateDownload(alternateDownloadName);

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverter.java
 Wed Apr 25 09:03:45 2012
@@ -27,9 +27,9 @@ import org.openmeetings.app.Openmeetings
 import org.openmeetings.app.data.flvrecord.FlvRecordingDaoImpl;
 import org.openmeetings.app.data.flvrecord.FlvRecordingLogDaoImpl;
 import org.openmeetings.app.data.flvrecord.FlvRecordingMetaDataDaoImpl;
-import org.openmeetings.app.documents.GenerateSWF;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecording;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaData;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -137,7 +137,7 @@ public class FlvRecorderConverter extend
                                this.flvRecordingMetaDataDaoImpl
                                                
.updateFlvRecordingMetaData(flvRecordingMetaDataOfScreen);
 
-                               
returnLog.add(GenerateSWF.executeScript("mergeWave",
+                               
returnLog.add(ProcessHelper.executeScript("mergeWave",
                                                argv_full_sox));
                        } else {
 
@@ -169,7 +169,7 @@ public class FlvRecorderConverter extend
                                this.flvRecordingMetaDataDaoImpl
                                                
.updateFlvRecordingMetaData(flvRecordingMetaDataOfScreen);
 
-                               
returnLog.add(GenerateSWF.executeScript("mergeWave",
+                               
returnLog.add(ProcessHelper.executeScript("mergeWave",
                                                argv_full_sox));
 
                        }
@@ -228,7 +228,7 @@ public class FlvRecorderConverter extend
                        log.debug(tString);
                        log.debug("END generateFullFLV ################# ");
 
-                       
returnLog.add(GenerateSWF.executeScript("generateFullFLV",
+                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV",
                                        argv_fullFLV));
 
                        flvRecording.setFileHash(hashFileFullNameFlv);
@@ -261,7 +261,7 @@ public class FlvRecorderConverter extend
                        log.debug(kString);
                        log.debug("END previewFullFLV ################# ");
 
-                       
returnLog.add(GenerateSWF.executeScript("generateFullFLV",
+                       
returnLog.add(ProcessHelper.executeScript("generateFullFLV",
                                        argv_previewFLV));
 
                        String alternateDownloadName = "flvRecording_"
@@ -283,7 +283,7 @@ public class FlvRecorderConverter extend
                        log.debug(sString);
                        log.debug("END alternateDownLoad ################# ");
 
-                       
returnLog.add(GenerateSWF.executeScript("alternateDownload",
+                       
returnLog.add(ProcessHelper.executeScript("alternateDownload",
                                        argv_alternateDownload));
 
                        
flvRecording.setAlternateDownload(alternateDownloadName);

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateImage.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateImage.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateImage.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateImage.java
 Wed Apr 25 09:03:45 2012
@@ -26,6 +26,7 @@ import org.openmeetings.app.data.basic.C
 import org.openmeetings.app.data.user.dao.UsersDaoImpl;
 import org.openmeetings.app.persistence.beans.user.Users;
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -172,7 +173,7 @@ public class GenerateImage {
                // return GenerateSWF.executeScript("convertSingleJpg", argv);
 
                if 
(System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1) {
-                       return 
GenerateSWF.executeScript("generateBatchThumbByWidth", argv);
+                       return 
ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
                } else {
                        return generateThumbs.processImageWindows(argv);
                }
@@ -183,7 +184,7 @@ public class GenerateImage {
                        String outputfile, int width, int height) {
                String[] argv = new String[] { getPathToImageMagic(), "-size",
                                width + "x" + height, inputFile, outputfile };
-               return 
GenerateSWF.executeScript("convertImageByTypeAndSizeAndDepth",
+               return 
ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth",
                                argv);
        }
 
@@ -193,7 +194,7 @@ public class GenerateImage {
                String[] argv = new String[] { getPathToImageMagic(), "-size",
                                width + "x" + height, "-depth", 
Integer.toString(depth),
                                inputFile, outputfile };
-               return 
GenerateSWF.executeScript("convertImageByTypeAndSizeAndDepth",
+               return 
ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth",
                                argv);
        }
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GeneratePDF.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GeneratePDF.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GeneratePDF.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GeneratePDF.java
 Wed Apr 25 09:03:45 2012
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import org.apache.commons.transaction.util.FileHelper;
 import org.openmeetings.app.OpenmeetingsVariables;
 import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -146,8 +147,8 @@ public class GeneratePDF {
                        String fileFullPath, String destinationFolder, String 
outputfile) {
                try {
 
-                       String jodPath = cfgManagement.getConfValue("jod.path",
-                                       String.class, "./jod");
+                       String jodPath = cfgManagement.getConfValue("jod.path", 
String.class, "./jod");
+                       String officePath = 
cfgManagement.getConfValue("office.path", String.class, "");
 
                        File jodFolder = new File(jodPath);
                        if (!jodFolder.exists() || !jodFolder.isDirectory()) {
@@ -157,6 +158,9 @@ public class GeneratePDF {
                        ArrayList<String> argv = new ArrayList<String>();
                        argv.add("java");
 
+                       if (officePath.trim().length() > 0) {
+                               argv.add("-Doffice.home=" + officePath);
+                       }
                        String jodConverterJar = "";
 
                        for (String jarFiles : jodFolder.list(new 
FilenameFilter() {
@@ -182,7 +186,7 @@ public class GeneratePDF {
                        argv.add(fileFullPath);
                        argv.add(destinationFolder + outputfile + ".pdf");
 
-                       return GenerateSWF.executeScript("doJodConvert",
+                       return ProcessHelper.executeScript("doJodConvert",
                                        argv.toArray(new String[argv.size()]));
 
                } catch (Exception ex) {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateSWF.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateSWF.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateSWF.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateSWF.java
 Wed Apr 25 09:03:45 2012
@@ -18,25 +18,20 @@
  */
 package org.openmeetings.app.documents;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
-import java.util.concurrent.TimeoutException;
 
 import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class GenerateSWF {
 
-       private static final Logger log = Red5LoggerFactory
+       public static final Logger log = Red5LoggerFactory
                        .getLogger(GenerateSWF.class);
 
        @Autowired
@@ -47,160 +42,8 @@ public class GenerateSWF {
 
        public final static String execExt = isPosix ? "" : ".exe";
 
-       public static HashMap<String, String> executeScript(String process,
-                       String[] argv) {
-               HashMap<String, String> returnMap = new HashMap<String, 
String>();
-               returnMap.put("process", process);
-               log.debug("process: " + process);
-               log.debug("args: " + Arrays.toString(argv));
-
-               try {
-                       returnMap.put("command", Arrays.toString(argv));
-                       returnMap.put("out","");
-
-                       // By using the process Builder we have access to 
modify the
-                       // environment variables
-                       // that is handy to set variables to run it inside 
eclipse
-                       ProcessBuilder pb = new ProcessBuilder(argv);
-
-                       Process proc = pb.start();
-
-                       // 20-minute timeout for command execution
-                       // FFMPEG conversion of Recordings may take a real long 
time until
-                       // its finished
-                       long timeout = 60000 * 20;
-
-                       ErrorStreamWatcher errorWatcher = new 
ErrorStreamWatcher(proc);
-                       Worker worker = new Worker(proc);
-                       InputStreamWatcher inputWatcher = new 
InputStreamWatcher(proc);
-                       errorWatcher.start();
-                       inputWatcher.start();
-                       worker.start();
-                       
-                       
-                       try {
-                               worker.join(timeout);
-                               if (worker.exit != null) {
-                                       returnMap.put("exitValue", "" + 
worker.exit);
-                                       log.debug("exitVal: " + worker.exit);
-                                       returnMap.put("error", 
errorWatcher.error);
-                               } else {
-                                       returnMap.put("exception", "timeOut");
-                                       returnMap.put("error", 
errorWatcher.error);
-                                       returnMap.put("exitValue", "-1");
-
-                                       throw new TimeoutException();
-                               }
-                       } catch (InterruptedException ex) {
-                               worker.interrupt();
-                               errorWatcher.interrupt();
-                               inputWatcher.interrupt();
-                               Thread.currentThread().interrupt();
-
-                               returnMap.put("error", ex.getMessage());
-                               returnMap.put("exitValue", "-1");
-
-                               throw ex;
-                       } finally {
-                               proc.destroy();
-                       }
-                       
-               } catch (TimeoutException e) {
-                       // Timeout exception is processed above
-                       log.error("executeScript",e);
-                       e.printStackTrace();
-                       returnMap.put("error", e.getMessage());
-                       returnMap.put("exception", e.toString());
-                       returnMap.put("exitValue", "-1");
-               } catch (Throwable t) {
-                       // Any other exception is shown in debug window
-                       log.error("executeScript",t);
-                       t.printStackTrace();
-                       returnMap.put("error", t.getMessage());
-                       returnMap.put("exception", t.toString());
-                       returnMap.put("exitValue", "-1");
-               }
-               
-               return returnMap;
-       }
-
-       private static class Worker extends Thread {
-               private final Process process;
-               private Integer exit;
-
-               private Worker(Process process) {
-                       this.process = process;
-               }
-
-               @Override
-               public void run() {
-                       try {
-                               exit = process.waitFor();
-                       } catch (InterruptedException ignore) {
-                               return;
-                       }
-               }
-       }
-
-       // This one collects errors coming from script execution
-       private static class ErrorStreamWatcher extends Thread {
-               private String error;
-               private final InputStream stderr;
-               private final InputStreamReader isr;
-               private final BufferedReader br;
-
-               private ErrorStreamWatcher(Process process) throws 
UnsupportedEncodingException {
-                       error = "";
-                       stderr = process.getErrorStream();
-                       isr = new InputStreamReader(stderr, "UTF-8");
-                       br = new BufferedReader(isr);
-               }
-
-               @Override
-               public void run() {
-                       try {
-                               String line = br.readLine();
-                               while (line != null) {
-                                       error += line;
-                                       line = br.readLine();
-                               }
-                       } catch (IOException ioexception) {
-                               return;
-                       }
-               }
-       }
-
-       // This one just reads script's output stream so it can
-       // finish normally, see issue 801 
http://code.google.com/p/openmeetings/issues/detail?id=801
-       // needs verification, swagner 21.02.2012
-       private static class InputStreamWatcher extends Thread {
-               
-               private final InputStream stderr;
-               private final InputStreamReader isr;
-               private final BufferedReader br;
-
-               private InputStreamWatcher(Process process) {
-                       stderr = process.getInputStream();
-                       isr = new InputStreamReader(stderr);
-                       br = new BufferedReader(isr);
-               }
-
-               @Override
-               public void run() {
-                       try {
-                               String line = br.readLine();
-                               while (line != null) {
-                                       line = br.readLine();
-                               }
-                       } catch (IOException ioexception) {
-                               return;
-                       }
-               }
-       }
-
        private String getPathToSwfTools() {
-               String pathToSWFTools = cfgManagement.getConfKey(3, 
"swftools_path")
-                               .getConf_value();
+               String pathToSWFTools = 
cfgManagement.getConfValue("swftools_path", String.class, "");
                // If SWFTools Path is not blank a File.separator at the end of 
the path
                // is needed
                if (!pathToSWFTools.equals("")
@@ -222,7 +65,7 @@ public class GenerateSWF {
                                originalFolder + fileNamePure + ".pdf",
                                destinationFolder + fileNamePure + ".swf" };
 
-               return executeScript("generateSwf", argv);
+               return ProcessHelper.executeScript("generateSwf", argv);
        }
 
        /**
@@ -240,7 +83,7 @@ public class GenerateSWF {
                                "-o", outputfile, "-r", Integer.toString(fps), 
"-z" });
 
                argvList.addAll(images);
-               return executeScript("generateSwfByImages",
+               return ProcessHelper.executeScript("generateSwfByImages",
                                argvList.toArray(new String[0]));
        }
 
@@ -255,7 +98,7 @@ public class GenerateSWF {
                                "-o", outputswf, "-r", Integer.toString(fps), 
"-z", "-a" });
 
                argvList.addAll(swfs);
-               return executeScript("generateSwfByImages",
+               return ProcessHelper.executeScript("generateSwfByImages",
                                argvList.toArray(new String[0]));
        }
 
@@ -267,7 +110,7 @@ public class GenerateSWF {
                                width + "x" + height, "-b", "750k", "-ar", 
"44100", "-y",
                                outputswf };
 
-               return executeScript("generateSWFByFFMpeg", argv);
+               return ProcessHelper.executeScript("generateSWFByFFMpeg", argv);
        }
 
 }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateThumbs.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateThumbs.java?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateThumbs.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/documents/GenerateThumbs.java
 Wed Apr 25 09:03:45 2012
@@ -26,6 +26,7 @@ import java.io.InputStreamReader;
 import java.util.HashMap;
 
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.ProcessHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -59,7 +60,7 @@ public class GenerateThumbs {
                log.debug("END generateThumb ################# ");
 
                if 
(System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1) {
-                       return 
GenerateSWF.executeScript("generateBatchThumbByWidth", argv);
+                       return 
ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
                } else {
                        return this.processImageWindows(argv);
                }
@@ -71,7 +72,7 @@ public class GenerateThumbs {
                                inputfile, outputfile };
 
                if 
(System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1) {
-                       return 
GenerateSWF.executeScript("generateBatchThumbByWidth", argv);
+                       return 
ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
                } else {
                        return this.processImageWindows(argv);
                }
@@ -88,7 +89,7 @@ public class GenerateThumbs {
                                        Integer.toString(thumbSize), inputfile,
                                        outputpath + "_" + pre + 
"_page-%04d.jpg" };
 
-                       return 
GenerateSWF.executeScript("generateBatchThumbByWidth", argv);
+                       return 
ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
                } else {
 
                        String[] argv = new String[] {
@@ -112,7 +113,7 @@ public class GenerateThumbs {
                                outputpath + "_" + pre + "_page.png" };
 
                if 
(System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1) {
-                       return 
GenerateSWF.executeScript("generateBatchThumbByWidth", argv);
+                       return 
ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
                } else {
                        return this.processImageWindows(argv);
                }

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=1330162&r1=1330161&r2=1330162&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
 Wed Apr 25 09:03:45 2012
@@ -303,7 +303,17 @@ public class ImportInitvalues {
 
                cfgManagement.addConfByKey(3, "ffmpeg_path", cfg.ffmpegPath, 
null,
                                "Path To FFMPEG");
+               cfgManagement.addConfByKey(3, "office.path", cfg.officePath, 
null,
+                               "The path to OpenOffice/LibreOffice (optional) 
please set this to the real path in case jodconverter is unable to find 
OpenOffice/LibreOffice installation automatically");
+               cfgManagement
+                       .addConfByKey(
+                                       3,
+                                       "jod.path",
+                                       cfg.jodPath,
+                                       null,
+                                       "The path to JOD library 
(http://code.google.com/p/jodconverter), configure the path to point to the lib 
directory of JOD that contains also the jodconverter-core-version.jar");
 
+               
                cfgManagement.addConfByKey(3, "rss_feed1", cfg.urlFeed, null, 
"Feed URL");
 
                cfgManagement.addConfByKey(3, "rss_feed2", cfg.urlFeed2, null,
@@ -530,14 +540,6 @@ public class ImportInitvalues {
                                                null,
                                                "A hot key code for the 'give 
exclusive audio' functionality. Keycode 123 is F12");
 
-               cfgManagement
-                               .addConfByKey(
-                                               3,
-                                               "jod.path",
-                                               cfg.jodPath,
-                                               null,
-                                               "The path to JOD library 
(http://code.google.com/p/jodconverter), configure the path to point to the lib 
directory of JOD that contains also the jodconverter-core-version.jar");
-
                // system-wide ldap params
                cfgManagement.addConfByKey(
                                                3, 

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=1330162&r1=1330161&r2=1330162&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
 Wed Apr 25 09:03:45 2012
@@ -22,6 +22,7 @@ public class InstallationConfig {
        public String ffmpegPath = "";
        public String soxPath = "";
        public String jodPath = "./jod/lib";
+       public String officePath = "";
        
        public String defaultLangId = "1";
        public String sendEmailAtRegister = "0";

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ProcessHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ProcessHelper.java?rev=1330162&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ProcessHelper.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ProcessHelper.java
 Wed Apr 25 09:03:45 2012
@@ -0,0 +1,143 @@
+package org.openmeetings.utils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeoutException;
+
+import org.openmeetings.app.documents.GenerateSWF;
+
+public class ProcessHelper {
+
+       private static class Worker extends Thread {
+               private final Process process;
+               private Integer exitCode;
+       
+               private Worker(Process process) {
+                       this.process = process;
+               }
+       
+               @Override
+               public void run() {
+                       try {
+                               exitCode = process.waitFor();
+                       } catch (InterruptedException ignore) {
+                               return;
+                       }
+               }
+       }
+
+       private static class StreamWatcher extends Thread {
+               public StringBuilder output;
+               private final InputStream is;
+               private final BufferedReader br;
+       
+               private StreamWatcher(Process process, boolean isError) throws 
UnsupportedEncodingException {
+                       output = new StringBuilder();
+                       is = isError ? process.getErrorStream() : 
process.getInputStream();
+                       br = new BufferedReader(new InputStreamReader(is, 
"UTF-8"));
+               }
+       
+               @Override
+               public void run() {
+                       try {
+                               String line = br.readLine();
+                               while (line != null) {
+                                       output.append(line).append('\n');
+                                       line = br.readLine();
+                               }
+                       } catch (IOException ioexception) {
+                               return;
+                       }
+               }
+       }
+
+       public static HashMap<String, String> executeScript(String process, 
String[] argv) {
+               Map<String, String> env = new HashMap<String, String>();
+               return executeScript(process, argv, env);
+       }
+       
+       public static HashMap<String, String> executeScript(String process,
+                       String[] argv, Map<? extends String, ? extends String> 
env) {
+               HashMap<String, String> returnMap = new HashMap<String, 
String>();
+               returnMap.put("process", process);
+               GenerateSWF.log.debug("process: " + process);
+               GenerateSWF.log.debug("args: " + Arrays.toString(argv));
+       
+               try {
+                       returnMap.put("command", Arrays.toString(argv));
+                       returnMap.put("out","");
+       
+                       // By using the process Builder we have access to 
modify the
+                       // environment variables
+                       // that is handy to set variables to run it inside 
eclipse
+                       ProcessBuilder pb = new ProcessBuilder(argv);
+                       pb.environment().putAll(env);
+       
+                       Process proc = pb.start();
+       
+                       // 20-minute timeout for command execution
+                       // FFMPEG conversion of Recordings may take a real long 
time until
+                       // its finished
+                       long timeout = 60000 * 20;
+       
+                       StreamWatcher errorWatcher = new StreamWatcher(proc, 
true);
+                       Worker worker = new Worker(proc);
+                       StreamWatcher inputWatcher = new StreamWatcher(proc, 
false);
+                       errorWatcher.start();
+                       inputWatcher.start();
+                       worker.start();
+                       
+                       
+                       try {
+                               worker.join(timeout);
+                               if (worker.exitCode != null) {
+                                       returnMap.put("exitValue", "" + 
worker.exitCode);
+                                       GenerateSWF.log.debug("exitVal: " + 
worker.exitCode);
+                                       returnMap.put("error", 
errorWatcher.output.toString());
+                               } else {
+                                       returnMap.put("exception", "timeOut");
+                                       returnMap.put("error", 
errorWatcher.output.toString());
+                                       returnMap.put("exitValue", "-1");
+       
+                                       throw new TimeoutException();
+                               }
+                       } catch (InterruptedException ex) {
+                               worker.interrupt();
+                               errorWatcher.interrupt();
+                               inputWatcher.interrupt();
+                               Thread.currentThread().interrupt();
+       
+                               returnMap.put("error", ex.getMessage());
+                               returnMap.put("exitValue", "-1");
+       
+                               throw ex;
+                       } finally {
+                               proc.destroy();
+                       }
+                       
+               } catch (TimeoutException e) {
+                       // Timeout exception is processed above
+                       GenerateSWF.log.error("executeScript",e);
+                       e.printStackTrace();
+                       returnMap.put("error", e.getMessage());
+                       returnMap.put("exception", e.toString());
+                       returnMap.put("exitValue", "-1");
+               } catch (Throwable t) {
+                       // Any other exception is shown in debug window
+                       GenerateSWF.log.error("executeScript",t);
+                       t.printStackTrace();
+                       returnMap.put("error", t.getMessage());
+                       returnMap.put("exception", t.toString());
+                       returnMap.put("exitValue", "-1");
+               }
+               
+               return returnMap;
+       }
+
+}

Modified: 
incubator/openmeetings/trunk/singlewebapp/xdocs/GeneralConfiguration.xml
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/xdocs/GeneralConfiguration.xml?rev=1330162&r1=1330161&r2=1330162&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/xdocs/GeneralConfiguration.xml 
(original)
+++ incubator/openmeetings/trunk/singlewebapp/xdocs/GeneralConfiguration.xml 
Wed Apr 25 09:03:45 2012
@@ -84,7 +84,12 @@
                                        <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> 1 </td>
                                        <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> Set inviter's email address as ReplyTo in email 
invitations (1 == set, 0 == NOT set)   </td>
                                        <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> 2.0.x </td>
-
+                               </tr>
+                               <tr>
+                                       <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> office.path </td>
+                                       <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> </td>
+                                       <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> The path to OpenOffice/LibreOffice (optional) please 
set this to the real path in case jodconverter is unable to find 
OpenOffice/LibreOffice installation automatically        </td>
+                                       <td style="border: 1px solid rgb(204, 
204, 204); padding: 5px;"> 2.0.x </td>
                                </tr>
                        </table>
                </section>


Reply via email to