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 e4d774b99 TIKA-4289 -- improve serializability for the metadatafilters 
(#1868)
e4d774b99 is described below

commit e4d774b99a68afc04e81b3a87e80bce0a49466a0
Author: Tim Allison <[email protected]>
AuthorDate: Tue Jul 30 12:50:54 2024 -0400

    TIKA-4289 -- improve serializability for the metadatafilters (#1868)
---
 .../tika/metadata/filter/CaptureGroupMetadataFilter.java | 12 ++++++++++++
 .../filter/ClearByAttachmentTypeMetadataFilter.java      |  5 +++++
 .../tika/metadata/filter/ClearByMimeMetadataFilter.java  |  5 +++++
 .../tika/metadata/filter/CompositeMetadataFilter.java    | 16 +++++++++++++++-
 .../metadata/filter/DateNormalizingMetadataFilter.java   |  4 ++++
 .../tika/metadata/filter/ExcludeFieldMetadataFilter.java |  5 +++++
 .../tika/metadata/filter/FieldNameMappingFilter.java     |  4 ++++
 .../tika/metadata/filter/GeoPointMetadataFilter.java     |  4 ++++
 .../tika/metadata/filter/IncludeFieldMetadataFilter.java |  5 +++++
 .../apache/tika/serialization/TikaJsonSerializer.java    |  6 +-----
 10 files changed, 60 insertions(+), 6 deletions(-)

diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/CaptureGroupMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/CaptureGroupMetadataFilter.java
index ca9b1e6ea..7023c4cb8 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/CaptureGroupMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/CaptureGroupMetadataFilter.java
@@ -87,6 +87,18 @@ public class CaptureGroupMetadataFilter extends 
MetadataFilter implements Initia
         this.targetField = targetField;
     }
 
+    public String getRegex() {
+        return regexString;
+    }
+
+    public String getSourceField() {
+        return sourceField;
+    }
+
+    public String getTargetField() {
+        return targetField;
+    }
+
     @Override
     public void initialize(Map<String, Param> params) throws 
TikaConfigException {
         try {
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByAttachmentTypeMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByAttachmentTypeMetadataFilter.java
index 1d6825674..6157b4e5c 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByAttachmentTypeMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByAttachmentTypeMetadataFilter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.metadata.filter;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -82,4 +83,8 @@ public class ClearByAttachmentTypeMetadataFilter extends 
MetadataFilter {
         }
         this.types.addAll(types);
     }
+
+    public List<String> getTypes() {
+        return new ArrayList<>(types);
+    }
 }
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByMimeMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByMimeMetadataFilter.java
index f196436ca..adcffc5ad 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByMimeMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/ClearByMimeMetadataFilter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.metadata.filter;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -65,4 +66,8 @@ public class ClearByMimeMetadataFilter extends MetadataFilter 
{
     public void setMimes(List<String> mimes) {
         this.mimes.addAll(mimes);
     }
+
+    public List<String> getMimes() {
+        return new ArrayList<>(mimes);
+    }
 }
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/CompositeMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/CompositeMetadataFilter.java
index 95b12d520..8f5907c44 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/CompositeMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/CompositeMetadataFilter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.metadata.filter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.tika.exception.TikaException;
@@ -23,12 +24,25 @@ import org.apache.tika.metadata.Metadata;
 
 public class CompositeMetadataFilter extends MetadataFilter {
 
-    private final List<MetadataFilter> filters;
+    //no longer final to allow for no arg initialization during serialization
+    private List<MetadataFilter> filters;
 
+    public CompositeMetadataFilter() {
+        filters = new ArrayList<>();
+    }
     public CompositeMetadataFilter(List<MetadataFilter> filters) {
         this.filters = filters;
     }
 
+    public void setFilters(List<MetadataFilter> filters) {
+        this.filters.clear();
+        this.filters.addAll(filters);
+    }
+
+    public List<MetadataFilter> getFilters() {
+        return filters;
+    }
+
     @Override
     public void filter(Metadata metadata) throws TikaException {
         for (MetadataFilter filter : filters) {
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/DateNormalizingMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/DateNormalizingMetadataFilter.java
index e09387384..ed8280bcc 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/DateNormalizingMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/DateNormalizingMetadataFilter.java
@@ -87,4 +87,8 @@ public class DateNormalizingMetadataFilter extends 
MetadataFilter {
     public void setDefaultTimeZone(String timeZoneId) {
         this.defaultTimeZone = TimeZone.getTimeZone(ZoneId.of(timeZoneId));
     }
+
+    public String getDefaultTimeZone() {
+        return this.defaultTimeZone.toZoneId().toString();
+    }
 }
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/ExcludeFieldMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/ExcludeFieldMetadataFilter.java
index 59d10d989..e00089910 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/ExcludeFieldMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/ExcludeFieldMetadataFilter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.metadata.filter;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -49,4 +50,8 @@ public class ExcludeFieldMetadataFilter extends 
MetadataFilter {
     public void setExclude(List<String> exclude) {
         this.excludeSet.addAll(exclude);
     }
+
+    public List<String> getExclude() {
+        return new ArrayList<>(excludeSet);
+    }
 }
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/FieldNameMappingFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/FieldNameMappingFilter.java
index 00c60d8f5..fe346e74d 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/FieldNameMappingFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/FieldNameMappingFilter.java
@@ -76,6 +76,10 @@ public class FieldNameMappingFilter extends MetadataFilter {
         }
     }
 
+    public Map<String, String> getMappins() {
+        return mappings;
+    }
+
     @Override
     public String toString() {
         return "FieldNameMappingFilter{" + "mappings=" + mappings + ", 
excludeUnmapped=" + excludeUnmapped + '}';
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/GeoPointMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/GeoPointMetadataFilter.java
index 2b65cb15d..ac48454cf 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/GeoPointMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/GeoPointMetadataFilter.java
@@ -44,6 +44,10 @@ public class GeoPointMetadataFilter extends MetadataFilter {
         this.geoPointFieldName = geoPointFieldName;
     }
 
+    public String getGeoPointFieldName() {
+        return geoPointFieldName;
+    }
+
     @Override
     public void filter(Metadata metadata) throws TikaException {
         String lat = metadata.get(TikaCoreProperties.LATITUDE);
diff --git 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/IncludeFieldMetadataFilter.java
 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/IncludeFieldMetadataFilter.java
index b75de6a9c..3fe2a90fa 100644
--- 
a/tika-core/src/main/java/org/apache/tika/metadata/filter/IncludeFieldMetadataFilter.java
+++ 
b/tika-core/src/main/java/org/apache/tika/metadata/filter/IncludeFieldMetadataFilter.java
@@ -16,6 +16,7 @@
  */
 package org.apache.tika.metadata.filter;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -43,6 +44,10 @@ public class IncludeFieldMetadataFilter extends 
MetadataFilter {
         includeSet.addAll(include);
     }
 
+    public List<String> getInclude() {
+        return new ArrayList<>(includeSet);
+    }
+
     @Override
     public void filter(Metadata metadata) throws TikaException {
 
diff --git 
a/tika-serialization/src/main/java/org/apache/tika/serialization/TikaJsonSerializer.java
 
b/tika-serialization/src/main/java/org/apache/tika/serialization/TikaJsonSerializer.java
index 531406847..71e9c2342 100644
--- 
a/tika-serialization/src/main/java/org/apache/tika/serialization/TikaJsonSerializer.java
+++ 
b/tika-serialization/src/main/java/org/apache/tika/serialization/TikaJsonSerializer.java
@@ -106,7 +106,7 @@ public class TikaJsonSerializer {
                     .getClass()
                     .getConstructor();
         } catch (NoSuchMethodException e) {
-            throw new IllegalArgumentException("class (" + obj.getClass() + ") 
doesn't have a no-arg constructor. Respectfully not seralizing.");
+            throw new IllegalArgumentException("class (" + obj.getClass() + ") 
doesn't have a no-arg constructor. Respectfully not serializing.");
         }
         try {
             if (fieldName != null) {
@@ -221,10 +221,6 @@ public class TikaJsonSerializer {
         }
     }
 
-    private static void serializeItem(String field, Object obj, Class<?> 
generalType, JsonGenerator jsonGenerator) {
-
-    }
-
     private static void serializePrimitiveAndBoxed(String paramName, Object 
obj, JsonGenerator jsonGenerator) throws IOException {
         Class clazz = obj.getClass();
         if (paramName != null) {

Reply via email to