From 45c757fee834a27829afb33f66781354b96eb743 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Wed, 21 Apr 2010 10:17:11 +0000 Subject: [PATCH] Add metadata extractor support for .dwg files (ALF-2262) The code for extracting .dwg files has been contributed to Apache tika, and the Alfresco metadata extractor deep calls into Tika to have the work done. We retain our own tests of this however. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19927 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/content-services-context.xml | 1 + config/alfresco/mimetype/mimetype-map.xml | 3 + .../ContentMinimalContextTestSuite.java | 2 + .../alfresco/repo/content/MimetypeMap.java | 2 + .../AbstractMetadataExtracterTest.java | 7 +- .../metadata/DWGMetadataExtracter.java | 110 ++++++++++++++++++ .../metadata/DWGMetadataExtracter.properties | 12 ++ .../metadata/DWGMetadataExtracterTest.java | 110 ++++++++++++++++++ source/test-resources/quick/quick2004.dwg | Bin 0 -> 39335 bytes source/test-resources/quick/quick2007.dwg | Bin 0 -> 73088 bytes source/test-resources/quick/quick2010.dwg | Bin 0 -> 59562 bytes 11 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.java create mode 100644 source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.properties create mode 100644 source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracterTest.java create mode 100644 source/test-resources/quick/quick2004.dwg create mode 100644 source/test-resources/quick/quick2007.dwg create mode 100644 source/test-resources/quick/quick2010.dwg diff --git a/config/alfresco/content-services-context.xml b/config/alfresco/content-services-context.xml index 0ac102679f..8d87603842 100644 --- a/config/alfresco/content-services-context.xml +++ b/config/alfresco/content-services-context.xml @@ -217,6 +217,7 @@ + diff --git a/config/alfresco/mimetype/mimetype-map.xml b/config/alfresco/mimetype/mimetype-map.xml index cd6fc2debb..e8179c7db1 100644 --- a/config/alfresco/mimetype/mimetype-map.xml +++ b/config/alfresco/mimetype/mimetype-map.xml @@ -356,6 +356,9 @@ jar ear + + dwg + dwg diff --git a/source/java/org/alfresco/repo/content/ContentMinimalContextTestSuite.java b/source/java/org/alfresco/repo/content/ContentMinimalContextTestSuite.java index a209110ab1..bdcfce573d 100644 --- a/source/java/org/alfresco/repo/content/ContentMinimalContextTestSuite.java +++ b/source/java/org/alfresco/repo/content/ContentMinimalContextTestSuite.java @@ -18,6 +18,7 @@ */ package org.alfresco.repo.content; +import org.alfresco.repo.content.metadata.DWGMetadataExtracterTest; import org.alfresco.repo.content.metadata.HtmlMetadataExtracterTest; import org.alfresco.repo.content.metadata.MP3MetadataExtracterTest; import org.alfresco.repo.content.metadata.MailMetadataExtracterTest; @@ -80,6 +81,7 @@ public class ContentMinimalContextTestSuite extends TestSuite TestSuite suite = new TestSuite(); // Metadata tests + suite.addTestSuite( DWGMetadataExtracterTest.class ); suite.addTestSuite( HtmlMetadataExtracterTest.class ); suite.addTestSuite( MailMetadataExtracterTest.class ); suite.addTestSuite( MP3MetadataExtracterTest.class ); diff --git a/source/java/org/alfresco/repo/content/MimetypeMap.java b/source/java/org/alfresco/repo/content/MimetypeMap.java index 89594ab2a1..e8af326694 100644 --- a/source/java/org/alfresco/repo/content/MimetypeMap.java +++ b/source/java/org/alfresco/repo/content/MimetypeMap.java @@ -62,6 +62,8 @@ public class MimetypeMap implements MimetypeService public static final String MIMETYPE_EXCEL = "application/vnd.excel"; public static final String MIMETYPE_BINARY = "application/octet-stream"; public static final String MIMETYPE_PPT = "application/vnd.powerpoint"; + public static final String MIMETYPE_APP_DWG = "application/dwg"; + public static final String MIMETYPE_IMG_DWG = "image/x-dwg"; public static final String MIMETYPE_FLASH = "application/x-shockwave-flash"; public static final String MIMETYPE_IMAGE_GIF = "image/gif"; public static final String MIMETYPE_IMAGE_JPEG = "image/jpeg"; diff --git a/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java b/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java index ca7969855c..f9a2a2dcfc 100644 --- a/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java +++ b/source/java/org/alfresco/repo/content/metadata/AbstractMetadataExtracterTest.java @@ -122,8 +122,6 @@ public abstract class AbstractMetadataExtracterTest extends TestCase protected Map extractFromMimetype(String mimetype) throws Exception { - Map properties = new HashMap(); - // get the extension for the mimetype String ext = mimetypeMap.getExtension(mimetype); @@ -133,7 +131,12 @@ public abstract class AbstractMetadataExtracterTest extends TestCase { throw new FileNotFoundException("No quick." + ext + " file found for test"); } + return extractFromFile(sourceFile, mimetype); + } + protected Map extractFromFile(File sourceFile, String mimetype) throws Exception + { + Map properties = new HashMap(); // construct a reader onto the source file ContentReader sourceReader = new FileContentReader(sourceFile); sourceReader.setMimetype(mimetype); diff --git a/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.java b/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.java new file mode 100644 index 0000000000..8b78062d54 --- /dev/null +++ b/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2005 Antti Jokipii + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.repo.content.metadata; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; + +import org.alfresco.repo.content.MimetypeMap; +import org.alfresco.service.cmr.repository.ContentReader; +import org.apache.tika.metadata.Metadata; +import org.apache.tika.parser.ParseContext; +import org.apache.tika.parser.dwg.DWGParser; +import org.apache.tika.sax.BodyContentHandler; +import org.xml.sax.ContentHandler; + + +/** + * Metadata extractor for the + * {@link org.alfresco.repo.content.MimetypeMap#MIMETYPE_DWG MIMETYPE_DWG} + * mimetype. + *
+ *   title:           --      cm:title
+ *   description:     --      cm:description
+ *   author:          --      cm:author
+ *   keywords:
+ *   comments:
+ *   lastauthor:
+ * 
+ * + * TIKA Note - this has been converted to deep-call into Tika. + * This will be replaced with proper calls to Tika at a later date. + * Everything except some Print info has been ported to Tika. + * + * @author Nick Burch + */ +public class DWGMetadataExtracter extends AbstractMappingMetadataExtracter +{ + private static final String KEY_AUTHOR = "author"; + private static final String KEY_COMMENT = "comment"; + private static final String KEY_DESCRIPTION = "description"; + private static final String KEY_KEYWORD = "keyword"; + private static final String KEY_LAST_AUTHOR = "lastAuthor"; + private static final String KEY_TITLE = "title"; + + public static String[] SUPPORTED_MIMETYPES = new String[] { + MimetypeMap.MIMETYPE_APP_DWG, + MimetypeMap.MIMETYPE_IMG_DWG, + }; + + public DWGMetadataExtracter() + { + super(new HashSet(Arrays.asList(SUPPORTED_MIMETYPES))); + } + + @Override + public Map extractRaw(ContentReader reader) throws Throwable + { + Map rawProperties = newRawMap(); + + InputStream is = null; + try + { + is = reader.getContentInputStream(); + + DWGParser dwgParser = new DWGParser(); + ContentHandler handler = new BodyContentHandler() ; + Metadata metadata = new Metadata(); + ParseContext context = new ParseContext(); + + dwgParser.parse(is, handler, metadata, context); + + putRawValue(KEY_AUTHOR, metadata.get(Metadata.AUTHOR), rawProperties); + putRawValue(KEY_COMMENT, metadata.get(Metadata.COMMENTS), rawProperties); + putRawValue(KEY_DESCRIPTION, metadata.get(Metadata.DESCRIPTION), rawProperties); + putRawValue(KEY_KEYWORD, metadata.get(Metadata.KEYWORDS), rawProperties); + putRawValue(KEY_LAST_AUTHOR, metadata.get(Metadata.LAST_AUTHOR), rawProperties); + putRawValue(KEY_DESCRIPTION, metadata.get(Metadata.SUBJECT), rawProperties); + putRawValue(KEY_TITLE, metadata.get(Metadata.TITLE), rawProperties); + } + finally + { + if (is != null) + { + try { is.close(); } catch (IOException e) {} + } + } + // Done + return rawProperties; + } +} diff --git a/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.properties b/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.properties new file mode 100644 index 0000000000..6c28f6920a --- /dev/null +++ b/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracter.properties @@ -0,0 +1,12 @@ +# +# DWGMetadataExtracter - default mapping +# +# author: Nick Burch + +# Namespaces +namespace.prefix.cm=http://www.alfresco.org/model/content/1.0 + +# Mappings +author=cm:author +title=cm:title +description=cm:description diff --git a/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracterTest.java b/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracterTest.java new file mode 100644 index 0000000000..e505a1fd4b --- /dev/null +++ b/source/java/org/alfresco/repo/content/metadata/DWGMetadataExtracterTest.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2005-2010 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.repo.content.metadata; + +import java.io.File; +import java.io.Serializable; +import java.net.URL; +import java.util.Map; + +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; + + +/** + * @see DWGMetadataExtracter + * + * @author Nick Burch + */ +public class DWGMetadataExtracterTest extends AbstractMetadataExtracterTest +{ + private DWGMetadataExtracter extracter; + + @Override + public void setUp() throws Exception + { + super.setUp(); + extracter = new DWGMetadataExtracter(); + extracter.setDictionaryService(dictionaryService); + extracter.register(); + } + + /** + * @return Returns the same transformer regardless - it is allowed + */ + protected MetadataExtracter getExtracter() + { + return extracter; + } + + public void testSupports() throws Exception + { + for (String mimetype : DWGMetadataExtracter.SUPPORTED_MIMETYPES) + { + boolean supports = extracter.isSupported(mimetype); + assertTrue("Mimetype should be supported: " + mimetype, supports); + } + } + + /** + * Test all the supported files. + * Note - doesn't use extractFromMimetype + */ + public void testSupportedMimetypes() throws Exception + { + String mimetype = MimetypeMap.MIMETYPE_APP_DWG; + + for (String version : new String[] {"2004","2007","2010"}) + { + String filename = "quick" + version + ".dwg"; + URL url = AbstractContentTransformerTest.class.getClassLoader().getResource("quick/" + filename); + File file = new File(url.getFile()); + + Map properties = extractFromFile(file, mimetype); + + // check we got something + assertFalse("extractFromMimetype should return at least some properties, none found for " + mimetype, + properties.isEmpty()); + + // check common metadata + testCommonMetadata(mimetype, properties); + // check file-type specific metadata + testFileSpecificMetadata(mimetype, properties); + } + } + + @Override + protected boolean skipAuthorCheck(String mimetype) { return true; } + + /** + * We also provide the creation date - check that + */ + protected void testFileSpecificMetadata(String mimetype, + Map 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))); + } + +} diff --git a/source/test-resources/quick/quick2004.dwg b/source/test-resources/quick/quick2004.dwg new file mode 100644 index 0000000000000000000000000000000000000000..6d2a8126ace18f5f12ce46d11dc018e206a28e15 GIT binary patch literal 39335 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 U5#JTB+x_O&zOVGTXG+2U13zhpsQ>@~ literal 0 HcmV?d00001