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) {