aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2010-06-08 09:01:43 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2010-06-08 09:01:43 +0200
commitd1fa08fdc9cb11dccee76d668ff85df30458c295 (patch)
tree1d19df6405103577d872902486792e8c23bce711 /trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala
parentd7c5ad7d6263fd1baf9bfdbaa4c50b70ef2fbdb2 (diff)
parent70d1f9d6fcaefe611e778b8dbf3bafea8934aa08 (diff)
downloadetherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.tar.gz
etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.tar.xz
etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.zip
Merge remote branch 'upstream/master'
Conflicts: etherpad/src/etherpad/control/pro/admin/pro_admin_control.js etherpad/src/etherpad/control/pro/pro_main_control.js etherpad/src/etherpad/control/pro_help_control.js etherpad/src/etherpad/globals.js etherpad/src/etherpad/legacy_urls.js etherpad/src/etherpad/pne/pne_utils.js etherpad/src/etherpad/pro/pro_utils.js etherpad/src/main.js etherpad/src/plugins/fileUpload/templates/fileUpload.ejs etherpad/src/plugins/testplugin/templates/page.ejs etherpad/src/static/css/pad2_ejs.css etherpad/src/static/css/pro-help.css etherpad/src/static/img/jun09/pad/protop.gif etherpad/src/static/js/store.js etherpad/src/themes/default/templates/framed/framedheader-pro.ejs etherpad/src/themes/default/templates/main/home.ejs etherpad/src/themes/default/templates/pro-help/main.ejs etherpad/src/themes/default/templates/pro-help/pro-help-template.ejs infrastructure/com.etherpad/licensing.scala trunk/etherpad/src/etherpad/collab/ace/contentcollector.js trunk/etherpad/src/etherpad/collab/ace/linestylefilter.js trunk/etherpad/src/static/css/home-opensource.css trunk/etherpad/src/static/js/ace.js trunk/etherpad/src/static/js/linestylefilter_client.js trunk/etherpad/src/templates/email/eepnet_license_info.ejs trunk/etherpad/src/templates/pad/pad_body2.ejs trunk/etherpad/src/templates/pad/pad_content.ejs trunk/etherpad/src/templates/pad/padfull_body.ejs trunk/etherpad/src/templates/pro/admin/pne-license-manager.ejs
Diffstat (limited to 'trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala')
-rw-r--r--trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala189
1 files changed, 0 insertions, 189 deletions
diff --git a/trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala b/trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala
deleted file mode 100644
index f5150ad..0000000
--- a/trunk/infrastructure/com.etherpad.openofficeservice/importexport.scala
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS-IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.etherpad.openofficeservice;
-
-import net.appjet.common.sars.{SarsServer,SarsMessageHandler};
-
-import java.io.{DataInputStream,DataOutputStream};
-import java.io.{File,FileOutputStream,ByteArrayInputStream,ByteArrayOutputStream};
-
-class OOSException(m: String) extends RuntimeException(m);
-class UnsupportedFormatException(format: String) extends OOSException("Unsupported format: "+format);
-object TemporaryFailure extends OOSException("Temporary failure");
-
-// stub object here. Please replace if you'd like to use openoffice!
-object OpenOfficeServerUtility {
- def checkServerAvailability(host: String, port: Int): Boolean = {
- return false;
- }
- def runOpenOfficeServer(path: String, host: String, port: Int, timeout: Int, wait: Boolean) {
- // nothing
- }
-}
-
-class OpenOfficeFileConverter {
- def setOpenOfficeServerDetails(host: String, port: Int) {
- // nothing
- }
-
- def convertFile(src: File, dst: File, converter: String, extension: String): Boolean = {
- return false;
- }
-}
-
-object OpenOfficeService {
- val formats = Map(
- "pdf" -> "writer_pdf_Export",
- "doc" -> "MS Word 97",
- "html" -> "HTML (StarWriter)",
- "odt" -> "writer8",
- //"html" -> "XHTML Writer File",
- "txt" -> "Text"
- );
-
- def createTempFile(bytes: Array[byte], suffix: String) = {
- var f = File.createTempFile("ooconvert-", if (suffix == null) { null } else if (suffix == "") { "" } else { "."+suffix });
- if (bytes != null) {
- val fos = new FileOutputStream(f);
- fos.write(bytes);
- }
- f;
- }
-
- var soffice = "soffice";
- def setExecutable(exec: String) {
- soffice = exec;
- }
-
- def convertFile(from: String, to: String, bytes: Array[byte]): Array[byte] = {
- if (from == to) {
- return bytes;
- }
-
- val tempFile = createTempFile(bytes, from);
- val outFile = createTempFile(null, to);
-
- val openOfficeServerHost = "localhost";
- val openOfficeServerPort = 8100;
- if (! OpenOfficeServerUtility.checkServerAvailability(openOfficeServerHost, openOfficeServerPort)) {
- try {
- OpenOfficeServerUtility.runOpenOfficeServer(soffice, openOfficeServerHost, openOfficeServerPort, 20000, true);
- } catch {
- case e: java.io.IOException => {
- e.printStackTrace();
- throw TemporaryFailure;
- }
- }
- }
- var converter = new OpenOfficeFileConverter();
- converter.setOpenOfficeServerDetails(openOfficeServerHost, openOfficeServerPort);
- var status = false;
- try {
- status = converter.convertFile(tempFile, outFile, formats(to), to);
- } catch {
- case e => {
- e.printStackTrace();
- throw new OOSException("Unknown exception occurred: "+e.getMessage());
- }
- }
- if (status == false) {
- throw new UnsupportedFormatException(from);
- }
- net.appjet.common.util.BetterFile.getFileBytes(outFile);
- }
-
- def main(args: Array[String]) {
- if (args.length > 0) {
- soffice = args(0);
- if (soffice.length == 0) {
- exit(1);
- }
- }
-
- // Query format:
- // from: String, to: String, count: Int, bytes: Array[byte]
- // Response format:
- // status: Int, <data>
- // status 0 (success) - <data>: count: Int, bytes: Array[byte]
- // status 1 (temporary failure) - <data>: <none>
- // status 2 (permanent failure) - <data>: type: Int
- // type - 0: unknown failure.
- // - 1: unsupported format
- val handler = new SarsMessageHandler {
- override def handle(b: Array[byte]): Option[Array[byte]] = {
- val is = new DataInputStream(new ByteArrayInputStream(b));
- val from = is.readUTF;
- val to = is.readUTF;
- val len = is.readInt;
- val bytes = new Array[byte](len);
- is.readFully(bytes);
- var status = 0;
- var permfailuretype = 0;
-
- println("Converting "+from+" -> "+to+" ("+len+" bytes)");
-
- val output = try {
- convertFile(from, to, bytes);
- } catch {
- case TemporaryFailure => {
- status = 1;
- null;
- }
- case e: UnsupportedFormatException => {
- status = 2;
- permfailuretype = 1;
- null;
- }
- case e => {
- status = 2;
- permfailuretype = 0;
- e.printStackTrace();
- null;
- }
- }
-
- val retBytes = new ByteArrayOutputStream();
- val ret = new DataOutputStream(retBytes);
- if (status != 0) {
- ret.writeInt(status); // error
- status match {
- case 2 => {
- ret.writeInt(permfailuretype);
- }
- case _ => { }
- }
- } else {
- ret.writeInt(0); // success
- ret.writeInt(output.length);
- ret.write(output, 0, output.length);
- }
- Some(retBytes.toByteArray());
- }
- }
-
- val server = new SarsServer("ooffice-password", handler, None, 8101);
- server.start();
- println("Server running...");
- server.join();
- println("Server quitting...");
- }
-}
-
-
-
-
-