You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2024/03/26 12:37:37 UTC
(tika) 04/06: TIKA-4223 -- add detection of stl (#1691)
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch branch_2x
in repository https://gitbox.apache.org/repos/asf/tika.git
commit de408df0212ee3a5a3e6f6a5467940f3957be25f
Author: Tim Allison <ta...@apache.org>
AuthorDate: Tue Mar 26 08:28:50 2024 -0400
TIKA-4223 -- add detection of stl (#1691)
* TIKA-4223 -- add detection for binary and text based stl
(cherry picked from commit 9d45b69dab2016342e44ee2b8bf5ed508676b38b)
---
.../resources/org/apache/tika/mime/tika-mimetypes.xml | 17 +++++++++++++++--
.../test/java/org/apache/tika/TikaDetectionTest.java | 2 +-
.../test/java/org/apache/tika/mime/TestMimeTypes.java | 6 ++++++
.../test/resources/test-documents/testSTL-ascii.stl | 16 ++++++++++++++++
.../test/resources/test-documents/testSTL-binary.stl | Bin 0 -> 160 bytes
5 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml b/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
index 09b8e3821..54f4b2051 100644
--- a/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
+++ b/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
@@ -2072,7 +2072,10 @@
<glob pattern="*.cat"/>
</mime-type>
<mime-type type="application/vnd.ms-pki.stl">
- <glob pattern="*.stl"/>
+ <!-- on TIKA-4223, we moved this glob to model/x.stl-binary.
+ We think this pki.stl is a subtype of pkcs7-signature?!
+ -->
+ <!--<glob pattern="*.stl"/> -->
</mime-type>
<mime-type type="application/vnd.ms-playready.initiator+xml"/>
@@ -7041,7 +7044,17 @@
<glob pattern="*.mesh"/>
<glob pattern="*.silo"/>
</mime-type>
-
+ <mime-type type="model/x.stl-ascii">
+ <magic priority="60">
+ <match value="solid " offset="0" type="string">
+ <match value="facet " offset="7:256" type="string"/>
+ </match>
+ </magic>
+ </mime-type>
+ <mime-type type="model/x.stl-binary">
+ <_comment>no magic available</_comment>
+ <glob pattern="*.stl"/>
+ </mime-type>
<mime-type type="model/vnd.dwf">
<acronym>DWF</acronym>
<_comment>AutoCAD Design Web Format</_comment>
diff --git a/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java b/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
index 1cd0f40a2..79fd61f34 100644
--- a/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
+++ b/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
@@ -354,7 +354,7 @@ public class TikaDetectionTest {
assertEquals("application/vnd.ms-ims", tika.detect("x.ims"));
assertEquals("application/vnd.ms-lrm", tika.detect("x.lrm"));
assertEquals("application/vnd.ms-pki.seccat", tika.detect("x.cat"));
- assertEquals("application/vnd.ms-pki.stl", tika.detect("x.stl"));
+ assertEquals("model/x.stl-binary", tika.detect("x.stl"));
assertEquals("application/vnd.ms-powerpoint", tika.detect("x.ppt"));
assertEquals("application/vnd.ms-powerpoint", tika.detect("x.pps"));
assertEquals("application/vnd.ms-powerpoint", tika.detect("x.pot"));
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/mime/TestMimeTypes.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/mime/TestMimeTypes.java
index 3dad7d6af..886fe4ad6 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/mime/TestMimeTypes.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/mime/TestMimeTypes.java
@@ -212,6 +212,12 @@ public class TestMimeTypes {
assertTypeByNameAndData("application/x-subrip", "test_subrip.srt");
}
+ @Test
+ public void testSTL() throws Exception {
+ assertTypeByNameAndData("model/x.stl-binary", "testSTL-binary.stl");
+ assertTypeByNameAndData("model/x.stl-ascii", "testSTL-ascii.stl");
+ }
+
@Test
public void testTTML() throws Exception {
assertTypeByData("application/ttml+xml", "test_ttml.ttml");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/test-documents/testSTL-ascii.stl b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/test-documents/testSTL-ascii.stl
new file mode 100644
index 000000000..9d5bfe085
--- /dev/null
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/test-documents/testSTL-ascii.stl
@@ -0,0 +1,16 @@
+solid OpenSCAD_Model
+ facet normal 0 0 -1
+ outer loop
+ vertex -10 -35 0
+ vertex 10 -25 0
+ vertex 10 -35 0
+ endloop
+ endfacet
+ facet normal -0 0 -1
+ outer loop
+ vertex 10 -25 0
+ vertex -10 -35 0
+ vertex -10 -25 0
+ endloop
+ endfacet
+endsolid OpenSCAD_Model
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/test-documents/testSTL-binary.stl b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/test-documents/testSTL-binary.stl
new file mode 100644
index 000000000..e76f48fd1
Binary files /dev/null and b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/test-documents/testSTL-binary.stl differ