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 bb775c1a3 TIKA-4365 : feat : Support Detection for AAB Bundle file 
(#2085)
bb775c1a3 is described below

commit bb775c1a32d113d5e45e416347338ad09fde5fe9
Author: subbudvk <[email protected]>
AuthorDate: Fri Jan 24 17:52:21 2025 +0530

    TIKA-4365 : feat : Support Detection for AAB Bundle file (#2085)
    
    * TIKA-4365 : feat : Support Detection for AAB Bundle file
---
 .../java/org/apache/tika/detect/zip/JarDetector.java    | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/JarDetector.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/JarDetector.java
index a0237593c..cd1dc93bf 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/JarDetector.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-zip-commons/src/main/java/org/apache/tika/detect/zip/JarDetector.java
@@ -25,6 +25,10 @@ import org.apache.commons.compress.archivers.zip.ZipFile;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.mime.MediaType;
 
+/**
+ * This detector detects JAR files and file type variants of zip subtypes
+ * that may contain a MANIFEST.MF
+ */
 public class JarDetector implements ZipContainerDetector {
 
     private static SeenManifest SEEN_MANIFEST = new SeenManifest();
@@ -46,6 +50,10 @@ public class JarDetector implements ZipContainerDetector {
             if (zip.getEntry("META-INF/application.xml") != null) {
                 return MediaType.application("x-tika-java-enterprise-archive");
             }
+            // AAB archive
+             if (zip.getEntry("base/manifest/AndroidManifest.xml") != null) {
+                return MediaType.application("x-authorware-bin");
+            }
 
             // Looks like a regular Jar Archive
             return MediaType.application("java-archive");
@@ -69,7 +77,10 @@ public class JarDetector implements ZipContainerDetector {
         } else if (name.equals("META-INF/MANIFEST.MF")) {
             // It's a Jar file, or something based on Jar
             detectContext.set(SeenManifest.class, SEEN_MANIFEST);
-        }
+        } else if (name.equals("base/manifest/AndroidManifest.xml") != null) {
+                return MediaType.application("x-authorware-bin");
+            }
+        
         SeenManifest seenManifest = detectContext.get(SeenManifest.class);
 
         if (seenManifest != null) {
@@ -79,7 +90,11 @@ public class JarDetector implements ZipContainerDetector {
             } else if (name.equals("WEB-INF/")) {
                 // Check for WAR and EAR
                 return MediaType.application("x-tika-java-web-archive");
+            } else if (name.equals("base/manifest/AndroidManifest.xml") != 
null) {
+                // Check for AAB bundle
+                return MediaType.application("x-authorware-bin");
             }
+        
             if (name.equals("META-INF/application.xml")) {
                 return MediaType.application("x-tika-java-enterprise-archive");
             }

Reply via email to