mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Make all Tika metadata properties available, as well as existing specific ones
Following discussions with Neil, make all the Tika supplied properties available after the extraction, in case users wish to map them in a standard way onto their content model. Per-extractor specific names are still retained too git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@20649 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -21,13 +21,17 @@ package org.alfresco.repo.content.metadata;
|
||||
import java.io.File;
|
||||
import java.io.Serializable;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.content.MimetypeMap;
|
||||
import org.alfresco.repo.content.transform.AbstractContentTransformerTest;
|
||||
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.apache.tika.metadata.Metadata;
|
||||
|
||||
|
||||
/**
|
||||
@@ -38,6 +42,8 @@ import org.alfresco.service.namespace.QName;
|
||||
public class DWGMetadataExtracterTest extends AbstractMetadataExtracterTest
|
||||
{
|
||||
private DWGMetadataExtracter extracter;
|
||||
private static final QName TIKA_LAST_AUTHOR_TEST_PROPERTY =
|
||||
QName.createQName("TikaLastAuthorTestProp");
|
||||
|
||||
@Override
|
||||
public void setUp() throws Exception
|
||||
@@ -46,6 +52,19 @@ public class DWGMetadataExtracterTest extends AbstractMetadataExtracterTest
|
||||
extracter = new DWGMetadataExtracter();
|
||||
extracter.setDictionaryService(dictionaryService);
|
||||
extracter.register();
|
||||
|
||||
// Attach some extra mappings, using the Tika
|
||||
// metadata keys namespace
|
||||
// These will be tested later
|
||||
HashMap<String, Set<QName>> newMap = new HashMap<String, Set<QName>>(
|
||||
extracter.getMapping()
|
||||
);
|
||||
|
||||
Set<QName> tlaSet = new HashSet<QName>();
|
||||
tlaSet.add(TIKA_LAST_AUTHOR_TEST_PROPERTY);
|
||||
newMap.put( Metadata.LAST_AUTHOR, tlaSet );
|
||||
|
||||
extracter.setMapping(newMap);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -100,11 +119,23 @@ public class DWGMetadataExtracterTest extends AbstractMetadataExtracterTest
|
||||
*/
|
||||
protected void testFileSpecificMetadata(String mimetype,
|
||||
Map<QName, Serializable> properties) {
|
||||
|
||||
// Check for extra fields
|
||||
assertEquals(
|
||||
"Property " + ContentModel.PROP_AUTHOR + " not found for mimetype " + mimetype,
|
||||
"Nevin Nollop",
|
||||
DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(ContentModel.PROP_AUTHOR)));
|
||||
|
||||
// Ensure that we can also get things which are standard
|
||||
// Tika metadata properties, if we so choose to
|
||||
assertTrue(
|
||||
"Test Property " + TIKA_LAST_AUTHOR_TEST_PROPERTY + " not found for mimetype " + mimetype,
|
||||
properties.containsKey(TIKA_LAST_AUTHOR_TEST_PROPERTY)
|
||||
);
|
||||
assertEquals(
|
||||
"Test Property " + TIKA_LAST_AUTHOR_TEST_PROPERTY + " incorrect for mimetype " + mimetype,
|
||||
"paolon",
|
||||
DefaultTypeConverter.INSTANCE.convert(String.class, properties.get(TIKA_LAST_AUTHOR_TEST_PROPERTY)));
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user