diff --git a/config/alfresco/content-services-context.xml b/config/alfresco/content-services-context.xml
index 2ce23d8ae0..2b7595f4ca 100644
--- a/config/alfresco/content-services-context.xml
+++ b/config/alfresco/content-services-context.xml
@@ -34,9 +34,22 @@
+
+
+
+
+
+ alfresco/mimetype/mimetype-map.xml
+ alfresco/mimetype/mimetype-map-openoffice.xml
+
+
+
+
+
+
-
+
diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml
index 35571c25a1..9e405227f8 100644
--- a/config/alfresco/core-services-context.xml
+++ b/config/alfresco/core-services-context.xml
@@ -118,22 +118,6 @@
-
-
-
-
-
-
-
-
-
- alfresco/mimetype-map.xml
-
-
-
-
-
-
diff --git a/config/alfresco/mimetype/mimetype-map-openoffice.xml b/config/alfresco/mimetype/mimetype-map-openoffice.xml
new file mode 100644
index 0000000000..7fa57b8ec8
--- /dev/null
+++ b/config/alfresco/mimetype/mimetype-map-openoffice.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+ odt
+
+
+ ott
+
+
+ oth
+
+
+ odm
+
+
+ odg
+
+
+ otg
+
+
+ odp
+
+
+ otp
+
+
+ ods
+
+
+ ots
+
+
+ odc
+
+
+ odf
+
+
+ odb
+
+
+ odi
+
+
+
+
+ sxc
+
+
+ sxd
+
+
+ sxw
+
+
+
+
+ sda
+
+
+ sdc
+
+
+ sdd
+
+
+ sdp
+
+
+ sds
+
+
+ sdw
+
+
+ sgl
+
+
+ smf
+
+
+
+
+
diff --git a/config/alfresco/mimetype-map.xml b/config/alfresco/mimetype/mimetype-map.xml
similarity index 80%
rename from config/alfresco/mimetype-map.xml
rename to config/alfresco/mimetype/mimetype-map.xml
index be73b29e78..c2c9311823 100644
--- a/config/alfresco/mimetype-map.xml
+++ b/config/alfresco/mimetype/mimetype-map.xml
@@ -284,57 +284,6 @@
zip
-
- odt
-
-
- ott
-
-
- oth
-
-
- odm
-
-
- odg
-
-
- otg
-
-
- odp
-
-
- otp
-
-
- ods
-
-
- ots
-
-
- odc
-
-
- odf
-
-
- odb
-
-
- odi
-
-
- sxw
-
-
- sxc
-
-
- sdc
-
dwg
diff --git a/source/java/org/alfresco/repo/content/MimetypeMap.java b/source/java/org/alfresco/repo/content/MimetypeMap.java
index 2c1b443462..4530fe3341 100644
--- a/source/java/org/alfresco/repo/content/MimetypeMap.java
+++ b/source/java/org/alfresco/repo/content/MimetypeMap.java
@@ -73,10 +73,18 @@ public class MimetypeMap implements MimetypeService
public static final String MIMETYPE_OPENDOCUMENT_TEXT_WEB= "application/vnd.oasis.opendocument.text-web";
public static final String MIMETYPE_OPENDOCUMENT_DATABASE= "application/vnd.oasis.opendocument.database";
// Open Office
- public static final String MIMETYPE_OPENOFFICE_WRITER = "application/vnd.sun.xml.writer";
- public static final String MIMETYPE_OPENOFFICE_CALC = "application/vnd.sun.xml.calc";
+ public static final String MIMETYPE_OPENOFFICE1_WRITER = "application/vnd.sun.xml.writer";
+ public static final String MIMETYPE_OPENOFFICE1_CALC = "application/vnd.sun.xml.calc";
+ public static final String MIMETYPE_OPENOFFICE1_DRAW = "application/vnd.sun.xml.draw";
// Star Office
- public static final String MIMETYPE_STAROFFICE5_SPREADSHEET = "application/vnd.stardivision.calc";
+ public static final String MIMETYPE_STAROFFICE5_DRAW = "application/vnd.stardivision.draw";
+ public static final String MIMETYPE_STAROFFICE5_CALC = "application/vnd.stardivision.calc";
+ public static final String MIMETYPE_STAROFFICE5_IMPRESS = "application/vnd.stardivision.impress";
+ public static final String MIMETYPE_STAROFFICE5_IMPRESS_PACKED = "application/vnd.stardivision.impress-packed";
+ public static final String MIMETYPE_STAROFFICE5_CHART = "application/vnd.stardivision.chart";
+ public static final String MIMETYPE_STAROFFICE5_WRITER = "application/vnd.stardivision.writer";
+ public static final String MIMETYPE_STAROFFICE5_WRITER_GLOBAL = "application/vnd.stardivision.writer-global";
+ public static final String MIMETYPE_STAROFFICE5_MATH = "application/vnd.stardivision.math";
// Audio
public static final String MIMETYPE_MP3 = "audio/x-mpeg";
// Alfresco
diff --git a/source/java/org/alfresco/repo/content/MimetypeMapTest.java b/source/java/org/alfresco/repo/content/MimetypeMapTest.java
index ec722faf47..6c9f30f1c8 100644
--- a/source/java/org/alfresco/repo/content/MimetypeMapTest.java
+++ b/source/java/org/alfresco/repo/content/MimetypeMapTest.java
@@ -54,5 +54,8 @@ public class MimetypeMapTest extends BaseSpringTest
// MS Word
assertEquals("doc", extensionsByMimetype.get("application/msword"));
assertEquals("application/msword", mimetypesByExtension.get("doc"));
+
+ // Star Office
+ assertEquals("sds", extensionsByMimetype.get("application/vnd.stardivision.chart"));
}
}
diff --git a/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracter.java b/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracter.java
index 53e0754d03..4bdc69ddd0 100644
--- a/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracter.java
+++ b/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracter.java
@@ -54,7 +54,7 @@ public class UnoMetadataExtracter extends AbstractMetadataExtracter
private static String[] mimeTypes = new String[] {
MimetypeMap.MIMETYPE_OPENDOCUMENT_TEXT,
- MimetypeMap.MIMETYPE_OPENOFFICE_WRITER,
+ MimetypeMap.MIMETYPE_OPENOFFICE1_WRITER,
// Add the other OpenOffice.org stuff here
// In fact, other types may apply as well, but should be counted as lower
// quality since they involve conversion.
diff --git a/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracterTest.java b/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracterTest.java
index b6f9d5f67b..3676728cc9 100644
--- a/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracterTest.java
+++ b/source/java/org/alfresco/repo/content/metadata/UnoMetadataExtracterTest.java
@@ -53,7 +53,7 @@ public class UnoMetadataExtracterTest extends AbstractMetadataExtracterTest
reliability = extracter.getReliability(MimetypeMap.MIMETYPE_OPENDOCUMENT_TEXT);
assertEquals("OpenOffice 2.0 Writer (OpenDoc) should be supported", 1.0, reliability);
- reliability = extracter.getReliability(MimetypeMap.MIMETYPE_OPENOFFICE_WRITER);
+ reliability = extracter.getReliability(MimetypeMap.MIMETYPE_OPENOFFICE1_WRITER);
assertEquals("OpenOffice 1.0 Writer should be supported", 1.0, reliability);
}
@@ -74,6 +74,6 @@ public class UnoMetadataExtracterTest extends AbstractMetadataExtracterTest
return;
}
- testCommonMetadata(extractFromExtension("sxw", MimetypeMap.MIMETYPE_OPENOFFICE_WRITER));
+ testCommonMetadata(extractFromExtension("sxw", MimetypeMap.MIMETYPE_OPENOFFICE1_WRITER));
}
}
diff --git a/source/java/org/alfresco/repo/content/transform/UnoContentTransformer.java b/source/java/org/alfresco/repo/content/transform/UnoContentTransformer.java
index c86408a920..76dfad5952 100644
--- a/source/java/org/alfresco/repo/content/transform/UnoContentTransformer.java
+++ b/source/java/org/alfresco/repo/content/transform/UnoContentTransformer.java
@@ -53,9 +53,7 @@ public class UnoContentTransformer extends AbstractContentTransformer
// Build the map of known Uno document formats and store by conversion key
formatsByConversion = new HashMap(17);
- formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENDOCUMENT_SPREADSHEET, MimetypeMap.MIMETYPE_PDF),
- new DocumentFormatWrapper(DocumentFormat.PDF_CALC, 1.0));
+ // Open Office 2.0 / Open Document
formatsByConversion.put(
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENDOCUMENT_TEXT, MimetypeMap.MIMETYPE_TEXT_PLAIN),
new DocumentFormatWrapper(DocumentFormat.TEXT, 1.0));
@@ -63,26 +61,47 @@ public class UnoContentTransformer extends AbstractContentTransformer
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENDOCUMENT_TEXT, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE_WRITER, MimetypeMap.MIMETYPE_TEXT_PLAIN),
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENDOCUMENT_SPREADSHEET, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_CALC, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENDOCUMENT_PRESENTATION, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
+ // Open Office
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE1_WRITER, MimetypeMap.MIMETYPE_TEXT_PLAIN),
new DocumentFormatWrapper(DocumentFormat.TEXT, 1.0));
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE_WRITER, MimetypeMap.MIMETYPE_PDF),
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE1_WRITER, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE_CALC, MimetypeMap.MIMETYPE_PDF),
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE1_CALC, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_SPREADSHEET, MimetypeMap.MIMETYPE_PDF),
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_OPENOFFICE1_DRAW, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_IMPRESS, 1.0));
+ // Star Office 5.x
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_DRAW, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_IMPRESS, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_CALC, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_CALC, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_CHART, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_TEXT_PLAIN, MimetypeMap.MIMETYPE_HTML),
- new DocumentFormatWrapper(DocumentFormat.HTML_WRITER, 1.0));
- formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_TEXT_PLAIN, MimetypeMap.MIMETYPE_PDF),
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_IMPRESS, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_TEXT_PLAIN, MimetypeMap.MIMETYPE_WORD),
- new DocumentFormatWrapper(DocumentFormat.TEXT, 1.0));
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_IMPRESS_PACKED, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_IMPRESS, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_WRITER, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_STAROFFICE5_WRITER_GLOBAL, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
+ // MS Office
formatsByConversion.put(
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_WORD, MimetypeMap.MIMETYPE_TEXT_PLAIN),
new DocumentFormatWrapper(DocumentFormat.TEXT, 1.0));
@@ -92,15 +111,25 @@ public class UnoContentTransformer extends AbstractContentTransformer
formatsByConversion.put(
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_EXCEL, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_CALC, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_WORD, MimetypeMap.MIMETYPE_HTML),
+ new DocumentFormatWrapper(DocumentFormat.HTML_WRITER, 1.0));
formatsByConversion.put(
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_PPT, MimetypeMap.MIMETYPE_FLASH),
new DocumentFormatWrapper(DocumentFormat.FLASH_IMPRESS, 1.0));
formatsByConversion.put(
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_PPT, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_IMPRESS, 1.0));
+ // Other
formatsByConversion.put(
- new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_WORD, MimetypeMap.MIMETYPE_HTML),
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_TEXT_PLAIN, MimetypeMap.MIMETYPE_HTML),
new DocumentFormatWrapper(DocumentFormat.HTML_WRITER, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_TEXT_PLAIN, MimetypeMap.MIMETYPE_PDF),
+ new DocumentFormatWrapper(DocumentFormat.PDF_WRITER, 1.0));
+ formatsByConversion.put(
+ new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_TEXT_PLAIN, MimetypeMap.MIMETYPE_WORD),
+ new DocumentFormatWrapper(DocumentFormat.TEXT, 1.0));
formatsByConversion.put(
new ContentTransformerRegistry.TransformationKey(MimetypeMap.MIMETYPE_HTML, MimetypeMap.MIMETYPE_PDF),
new DocumentFormatWrapper(DocumentFormat.PDF_WRITER_WEB, 1.0));
diff --git a/source/test-resources/quick/quick.odf b/source/test-resources/quick/quick.odf
new file mode 100644
index 0000000000..963f9f77c6
Binary files /dev/null and b/source/test-resources/quick/quick.odf differ
diff --git a/source/test-resources/quick/quick.odg b/source/test-resources/quick/quick.odg
new file mode 100644
index 0000000000..a383a283aa
Binary files /dev/null and b/source/test-resources/quick/quick.odg differ
diff --git a/source/test-resources/quick/quick.odp b/source/test-resources/quick/quick.odp
new file mode 100644
index 0000000000..061430e7a2
Binary files /dev/null and b/source/test-resources/quick/quick.odp differ
diff --git a/source/test-resources/quick/quick.ods b/source/test-resources/quick/quick.ods
index ccb7abaf25..2e33e82693 100644
Binary files a/source/test-resources/quick/quick.ods and b/source/test-resources/quick/quick.ods differ
diff --git a/source/test-resources/quick/quick.sda b/source/test-resources/quick/quick.sda
new file mode 100644
index 0000000000..8f127a9fa1
Binary files /dev/null and b/source/test-resources/quick/quick.sda differ
diff --git a/source/test-resources/quick/quick.sdc b/source/test-resources/quick/quick.sdc
index e40a82a3b1..dd42d64acf 100644
Binary files a/source/test-resources/quick/quick.sdc and b/source/test-resources/quick/quick.sdc differ
diff --git a/source/test-resources/quick/quick.sdd b/source/test-resources/quick/quick.sdd
new file mode 100644
index 0000000000..39e07a4957
Binary files /dev/null and b/source/test-resources/quick/quick.sdd differ
diff --git a/source/test-resources/quick/quick.sdw b/source/test-resources/quick/quick.sdw
new file mode 100644
index 0000000000..9a4de7c9d6
Binary files /dev/null and b/source/test-resources/quick/quick.sdw differ
diff --git a/source/test-resources/quick/quick.smf b/source/test-resources/quick/quick.smf
new file mode 100644
index 0000000000..905965ee35
Binary files /dev/null and b/source/test-resources/quick/quick.smf differ
diff --git a/source/test-resources/quick/quick.sxc b/source/test-resources/quick/quick.sxc
index a7373d2b5a..f2bcabc085 100644
Binary files a/source/test-resources/quick/quick.sxc and b/source/test-resources/quick/quick.sxc differ
diff --git a/source/test-resources/quick/quick.sxd b/source/test-resources/quick/quick.sxd
new file mode 100644
index 0000000000..df235a5bdd
Binary files /dev/null and b/source/test-resources/quick/quick.sxd differ
diff --git a/source/test-resources/quick/quick.sxi b/source/test-resources/quick/quick.sxi
new file mode 100644
index 0000000000..daae7d5b3f
Binary files /dev/null and b/source/test-resources/quick/quick.sxi differ
diff --git a/source/test-resources/quick/quick.sxm b/source/test-resources/quick/quick.sxm
new file mode 100644
index 0000000000..11fbd6a1d3
Binary files /dev/null and b/source/test-resources/quick/quick.sxm differ