Skip to content

Commit 6d545d4

Browse files
authored
Merge pull request #194 from evolvedbinary/6.x.x/hotfix/opendocument-openxml-media-types
[6.x.x] Fix the storage of OpenDocument files and Office Open XML files
2 parents 8bfbaa4 + d2f565a commit 6d545d4

3 files changed

Lines changed: 23 additions & 13 deletions

File tree

elemental-media-type/elemental-media-type-impl/src/test/java/xyz/elemental/mediatype/impl/MediaTypeResolverImplTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public void allResolveCsvExtension() {
9090

9191
@Test
9292
public void allResolveDocxExtension() {
93-
assertAllResolveFromFileName("something.docx", MediaType.APPLICATION_OPENXML_WORDPROCESSING, new String[] {"docx"}, StorageType.XML);
93+
assertAllResolveFromFileName("something.docx", MediaType.APPLICATION_OPENXML_WORDPROCESSING, new String[] {"docx"}, StorageType.BINARY);
9494
}
9595

9696
@Test
@@ -170,17 +170,17 @@ public void allResolveNcxExtension() {
170170

171171
@Test
172172
public void allResolveOdtExtension() {
173-
assertAllResolveFromFileName("something.odt", MediaType.APPLICATION_OPENDOCUMENT_TEXT, new String[] {"odt"}, StorageType.XML);
173+
assertAllResolveFromFileName("something.odt", MediaType.APPLICATION_OPENDOCUMENT_TEXT, new String[] {"odt"}, StorageType.BINARY);
174174
}
175175

176176
@Test
177177
public void allResolveOdpExtension() {
178-
assertAllResolveFromFileName("something.odp", MediaType.APPLICATION_OPENDOCUMENT_PRESENTATION, new String[] {"odp"}, StorageType.XML);
178+
assertAllResolveFromFileName("something.odp", MediaType.APPLICATION_OPENDOCUMENT_PRESENTATION, new String[] {"odp"}, StorageType.BINARY);
179179
}
180180

181181
@Test
182182
public void allResolveOdsExtension() {
183-
assertAllResolveFromFileName("something.ods", MediaType.APPLICATION_OPENDOCUMENT_SPREADSHEET, new String[] {"ods"}, StorageType.XML);
183+
assertAllResolveFromFileName("something.ods", MediaType.APPLICATION_OPENDOCUMENT_SPREADSHEET, new String[] {"ods"}, StorageType.BINARY);
184184
}
185185

186186
@Test
@@ -195,7 +195,7 @@ public void allResolvePngExtension() {
195195

196196
@Test
197197
public void allResolvePptxExtension() {
198-
assertAllResolveFromFileName("something.pptx", MediaType.APPLICATION_OPENXML_PRESENTATION, new String[] {"pptx"}, StorageType.XML);
198+
assertAllResolveFromFileName("something.pptx", MediaType.APPLICATION_OPENXML_PRESENTATION, new String[] {"pptx"}, StorageType.BINARY);
199199
}
200200

201201
@Test
@@ -240,7 +240,7 @@ public void allResolveXhtmlExtension() {
240240

241241
@Test
242242
public void allResolveXlsxExtension() {
243-
assertAllResolveFromFileName("something.xlsx", MediaType.APPLICATION_OPENXML_SPREADSHEET, new String[] {"xlsx"}, StorageType.XML);
243+
assertAllResolveFromFileName("something.xlsx", MediaType.APPLICATION_OPENXML_SPREADSHEET, new String[] {"xlsx"}, StorageType.BINARY);
244244
}
245245

246246
@Test
@@ -265,7 +265,7 @@ public void allResolveCsvIdentifier() {
265265

266266
@Test
267267
public void allResolveDocxIdentifier() {
268-
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENXML_WORDPROCESSING, new String[] {"docx"}, StorageType.XML);
268+
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENXML_WORDPROCESSING, new String[] {"docx"}, StorageType.BINARY);
269269
}
270270

271271
@Test
@@ -335,17 +335,17 @@ public void allResolveNcxIdentifier() {
335335

336336
@Test
337337
public void allResolveOdtIdentifier() {
338-
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENDOCUMENT_TEXT, new String[] {"odt"}, StorageType.XML);
338+
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENDOCUMENT_TEXT, new String[] {"odt"}, StorageType.BINARY);
339339
}
340340

341341
@Test
342342
public void allResolveOdpIdentifier() {
343-
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENDOCUMENT_PRESENTATION, new String[] {"odp"}, StorageType.XML);
343+
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENDOCUMENT_PRESENTATION, new String[] {"odp"}, StorageType.BINARY);
344344
}
345345

346346
@Test
347347
public void allResolveOdsIdentifier() {
348-
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENDOCUMENT_SPREADSHEET, new String[] {"ods"}, StorageType.XML);
348+
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENDOCUMENT_SPREADSHEET, new String[] {"ods"}, StorageType.BINARY);
349349
}
350350

351351
@Test
@@ -360,7 +360,7 @@ public void allResolvePngIdentifier() {
360360

361361
@Test
362362
public void allResolvePptxIdentifier() {
363-
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENXML_PRESENTATION, new String[] {"pptx"}, StorageType.XML);
363+
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENXML_PRESENTATION, new String[] {"pptx"}, StorageType.BINARY);
364364
}
365365

366366
@Test
@@ -400,7 +400,7 @@ public void allResolveXhtmlIdentifier() {
400400

401401
@Test
402402
public void allResolveXlsxIdentifier() {
403-
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENXML_SPREADSHEET, new String[] {"xlsx"}, StorageType.XML);
403+
assertAllResolveFromIdentifier(MediaType.APPLICATION_OPENXML_SPREADSHEET, new String[] {"xlsx"}, StorageType.BINARY);
404404
}
405405

406406
@Test

elemental-media-type/elemental-media-type-impl/src/test/resources/xyz/elemental/mediatype/impl/media-type-mappings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,13 @@
4242
<storage type="XML">
4343
<media-type match="full">application/xml</media-type>
4444
<media-type match="full">text/xml</media-type>
45+
46+
<!-- NOTE(AR) OpenDocument files, and Office Open XML files are Zip files, and must therefore be stored as binary documents until we add Zip view support. -->
47+
<!--
4548
<media-type match="starts-with">application/vnd.oasis.opendocument.</media-type>
4649
<media-type match="starts-with">application/vnd.openxmlformats-</media-type>
50+
-->
51+
4752
<media-type match="pattern">[^+]+\+xml$</media-type>
4853
</storage>
4954

exist-core/src/main/resources/xyz/elemental/mediatype/media-type-mappings.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,18 @@
4343
<media-type match="full">application/xml</media-type>
4444
<media-type match="full">chemical/x-cml</media-type>
4545
<media-type match="full">text/xml</media-type>
46+
47+
<!-- NOTE(AR) OpenDocument files, and Office Open XML files are Zip files, and must therefore be stored as binary documents until we add Zip view support. -->
48+
<!--
4649
<media-type match="starts-with">application/vnd.oasis.opendocument.</media-type>
4750
<media-type match="starts-with">application/vnd.openxmlformats-</media-type>
51+
-->
52+
4853
<media-type match="pattern">[^+]+\+xml$</media-type>
4954

5055
<!-- NOTE(AR) This is for backwards compatibility with eXist-db, it should likely be removed in future as it is not really correct -->
5156
<media-type match="full">text/html</media-type>
5257

5358
</storage>
5459

55-
</media-type-mappings>
60+
</media-type-mappings>

0 commit comments

Comments
 (0)