diff --git a/source/java/org/alfresco/repo/content/metadata/AbstractMappingMetadataExtracter.java b/source/java/org/alfresco/repo/content/metadata/AbstractMappingMetadataExtracter.java
index 5c9eca043a..d8a3f75a57 100644
--- a/source/java/org/alfresco/repo/content/metadata/AbstractMappingMetadataExtracter.java
+++ b/source/java/org/alfresco/repo/content/metadata/AbstractMappingMetadataExtracter.java
@@ -33,6 +33,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer;
@@ -55,6 +56,8 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.xmlbeans.impl.xb.xsdschema.All;
import org.springframework.beans.factory.BeanNameAware;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
import org.springframework.extensions.surf.util.ISO8601DateFormat;
/**
@@ -97,10 +100,13 @@ import org.springframework.extensions.surf.util.ISO8601DateFormat;
* @author Jesper Steen Møller
* @author Derek Hulley
*/
-abstract public class AbstractMappingMetadataExtracter implements MetadataExtracter, MetadataEmbedder, BeanNameAware
+abstract public class AbstractMappingMetadataExtracter implements MetadataExtracter, MetadataEmbedder, BeanNameAware, ApplicationContextAware
{
public static final String NAMESPACE_PROPERTY_PREFIX = "namespace.prefix.";
private static final String ERR_TYPE_CONVERSION = "metadata.extraction.err.type_conversion";
+ public static final String PROPERTY_PREFIX_METADATA = "metadata.";
+ public static final String PROPERTY_COMPONENT_EXTRACT = ".extract.";
+ public static final String PROPERTY_COMPONENT_EMBED = ".extract.";
protected static Log logger = LogFactory.getLog(AbstractMappingMetadataExtracter.class);
@@ -120,6 +126,7 @@ abstract public class AbstractMappingMetadataExtracter implements MetadataExtrac
private boolean inheritDefaultEmbedMapping;
private boolean enableStringTagging;
private String beanName;
+ private ApplicationContext applicationContext;
private Properties properties;
/**
@@ -390,6 +397,11 @@ abstract public class AbstractMappingMetadataExtracter implements MetadataExtrac
return beanName;
}
+ public void setApplicationContext(ApplicationContext applicationContext)
+ {
+ this.applicationContext = applicationContext;
+ }
+
/**
* The Alfresco global properties.
*/
@@ -601,16 +613,92 @@ abstract public class AbstractMappingMetadataExtracter implements MetadataExtrac
}
}
+ /**
+ * A utility method to convert global properties to the Map form for the given
+ * propertyComponent.
+ *
+ * Mappings can be specified using the same method defined for
+ * normal mapping properties files but with a prefix of
+ * metadata.extracter, the extracter bean name, and the propertyComponent.
+ * For example:
+ *
+ * metadata.extracter.TikaAuto.extract.namespace.prefix.my=http://DummyMappingMetadataExtracter
+ * metadata.extracter.TikaAuto.extract.namespace.prefix.cm=http://www.alfresco.org/model/content/1.0
+ * metadata.extracter.TikaAuto.extract.dc\:description=cm:description, my:customDescription
+ *
+ */
+ private Map