Package com.day.cq.dam.commons.metadata
Class XmpFilterBlackWhite
java.lang.Object
com.day.cq.dam.commons.metadata.XmpFilterBlackWhite
- All Implemented Interfaces:
XmpFilter
The
XmpFilter class is used to reduce Extensible Metadata Platform (XMP) properties to a desired subset using various
configuration options such as white- and blacklists.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringCQ-4326783: two more default xmpfilter (xmpMM:Pantry and xmpMM:History) were added to avoid the following two issues 1.static final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfilter(InputStream xmpIS) Filter XMP properties from an XML inputstream and return the filtered XML in a new inputstream.booleanisActive()voidsetConfig(Dictionary cfg) sieve(InputStream xmpIS) Sieve XMP properties from an XML inputstream and return the properties hold back during filtering in a new XMP document.
-
Field Details
-
APPLY_ALLOWLIST
@Property(boolValue=false, label="Apply AllowList to XMP Properties", description="Only let the allowed xmp properties through, applied before any blocklist") public static final String APPLY_ALLOWLIST- See Also:
-
ApplyWhiteList
- See Also:
-
ALLOWLIST
@Property(value="", label="Allowed XML Names for XMP filtering", description="XML Names, such as \'{namespace-uri}name\', \'{namespace-uri}*\', \'prefix:name\' and \'prefix:*\', passed on during XMP filtering. Use \'[>n]\' or \'[<n]\' to limit the values accepted for multi-valued XMP properties. Example: \'history[<100]\' will only let the first 99 values through", cardinality=2147483647) public static final String ALLOWLIST- See Also:
-
WhiteList
- See Also:
-
APPLY_BLOCKLIST
@Property(boolValue=true, label="Apply Blocklist to XMP Properties", description="Filter out the blocked xmp properties, applied after any allowlisting") public static final String APPLY_BLOCKLIST- See Also:
-
ApplyBlackList
- See Also:
-
BLOCKLIST
@Property(value={"{http://ns.adobe.com/photoshop/1.0/}DocumentAncestors[>100]","xmpMM:Pantry","xmpMM:History"}, label="Blocklisted XML Names for XMP filtering", description="XML Names, such as \'{namespace-uri}name\', \'{namespace-uri}*\', \'prefix:name\' and \'prefix:*\', filtered out during XMP processing. Use \'[>n]\' or \'[<n]\' to limit the values removed for multi-valued XMP properties. Example: \'history[>100]\' discards the 101st and following values.", cardinality=2147483647) public static final String BLOCKLISTCQ-4326783: two more default xmpfilter (xmpMM:Pantry and xmpMM:History) were added to avoid the following two issues 1. a slow UI performance 2. a customer's environment crashed during metadata extraction- See Also:
-
BlackList
- See Also:
-
-
Constructor Details
-
XmpFilterBlackWhite
public XmpFilterBlackWhite()
-
-
Method Details
-
setConfig
-
isActive
public boolean isActive() -
filter
Description copied from interface:XmpFilterFilter XMP properties from an XML inputstream and return the filtered XML in a new inputstream.- Specified by:
filterin interfaceXmpFilter- Parameters:
xmpIS- the XML for filtering- Returns:
- the filtered XML in utf-8 encoding
- Throws:
IOException
-
sieve
Description copied from interface:XmpFilterSieve XMP properties from an XML inputstream and return the properties hold back during filtering in a new XMP document. Sieving is the opposite of filtering in regard to XMP XMP elements with one exception: sieve will never return partial properties. This means,XmpFilter.filter(InputStream)may return the partial contents of an array XMP property (e.g. the first 10 entries).XmpFilter.sieve(InputStream)will either report the complete array or ignore the property. Example: during ingestion, all but the first entry in xmpMM:History is filtered. The reported metadata contains just this one entry. If this metadata was written back to the document, all existing subsequent xmpMM:History entries would be overwritten and lost. TheXmpFilter.sieve(InputStream), called on the original data, will return such a property in full, e.g. the complete xmpMM:History. This allows the caller to merge changes as it desires.- Specified by:
sievein interfaceXmpFilter- Parameters:
xmpIS- the XML for sieving- Returns:
- the filtered XML in utf-8 encoding
- Throws:
IOException
-