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");
}