This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new 9d45b69da TIKA-4223 -- add detection of stl (#1691)
9d45b69da is described below

commit 9d45b69dab2016342e44ee2b8bf5ed508676b38b
Author: Tim Allison <talli...@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
---
 .../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 8368b7b68..a1e9de0fd 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
@@ -2075,7 +2075,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"/>
 
@@ -7147,7 +7150,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 215865886..f52482c8d 100644
--- a/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
+++ b/tika-core/src/test/java/org/apache/tika/TikaDetectionTest.java
@@ -355,7 +355,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 1b66a7efe..cd6705b69 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

Reply via email to