1.0
if the mimetype is supported, otherwise 0.0
*
* @see #isSupported(String)
@@ -209,10 +210,11 @@ abstract public class AbstractMappingMetadataExtracter implements MetadataExtrac
}
/**
- * Set the policy to use when existing values are encountered. Depending on how the extracer
+ * Set the policy to use when existing values are encountered. Depending on how the extractor
* is called, this may not be relevant, i.e an empty map of existing properties may be passed
* in by the client code, which may follow its own overwrite strategy.
*
+ * TODO - This doesn't appear to be used, so should be removed / deprecated / replaced
* @param overwritePolicy the policy to apply when there are existing system properties
*/
public void setOverwritePolicy(OverwritePolicy overwritePolicy)
@@ -221,10 +223,11 @@ abstract public class AbstractMappingMetadataExtracter implements MetadataExtrac
}
/**
- * Set the policy to use when existing values are encountered. Depending on how the extracer
+ * Set the policy to use when existing values are encountered. Depending on how the extractor
* is called, this may not be relevant, i.e an empty map of existing properties may be passed
* in by the client code, which may follow its own overwrite strategy.
*
+ * TODO - This doesn't appear to be used, so should be removed / deprecated / replaced
* @param overwritePolicyStr the policy to apply when there are existing system properties
*/
public void setOverwritePolicy(String overwritePolicyStr)
diff --git a/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracter.java b/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracter.java
index 3e6708252c..b9921e6244 100644
--- a/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracter.java
+++ b/source/java/org/alfresco/repo/content/metadata/MP3MetadataExtracter.java
@@ -18,23 +18,15 @@
*/
package org.alfresco.repo.content.metadata;
-import java.io.File;
import java.io.Serializable;
-import java.util.Arrays;
-import java.util.HashSet;
+import java.util.ArrayList;
import java.util.Map;
import org.alfresco.repo.content.MimetypeMap;
-import org.alfresco.service.cmr.repository.ContentReader;
-import org.alfresco.util.TempFileProvider;
-import org.farng.mp3.AbstractMP3FragmentBody;
-import org.farng.mp3.MP3File;
-import org.farng.mp3.id3.AbstractID3v2;
-import org.farng.mp3.id3.AbstractID3v2Frame;
-import org.farng.mp3.id3.ID3v1;
-import org.farng.mp3.lyrics3.AbstractLyrics3;
-import org.farng.mp3.lyrics3.Lyrics3v2;
-import org.farng.mp3.lyrics3.Lyrics3v2Field;
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.XMPDM;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.parser.mp3.Mp3Parser;
/**
* Extracts the following values from MP3 files:
@@ -51,13 +43,15 @@ import org.farng.mp3.lyrics3.Lyrics3v2Field;
* lyrics: -- {music}lyrics
*
*
- * TIKA Note - title and author go in metadata, but much of the
- * rest is only in the text. Some of the ID3v2 parts
- * (composer, lyrics) are not yet implemented.
+ * TODO Get hold of a mp3 file with some lyrics in it, so we
+ * can contribute the patch to Tika
*
+ * Uses Apache Tika
+ *
+ * @author Nick Burch
* @author Roy Wetherall
*/
-public class MP3MetadataExtracter extends AbstractMappingMetadataExtracter
+public class MP3MetadataExtracter extends TikaPoweredMetadataExtracter
{
private static final String KEY_SONG_TITLE = "songTitle";
private static final String KEY_ALBUM_TITLE = "albumTitle";
@@ -70,173 +64,67 @@ public class MP3MetadataExtracter extends AbstractMappingMetadataExtracter
private static final String KEY_COMPOSER = "composer";
private static final String KEY_LYRICS = "lyrics";
- public static String[] SUPPORTED_MIMETYPES = new String[] {MimetypeMap.MIMETYPE_MP3 };
+ public static ArrayList+ * author: -- cm:author + * title: -- cm:title + * subject: -- cm:description + * created: -- cm:created + * comments: + *+ * + * @author Nick Burch + */ +public class TikaAutoMetadataExtracter extends TikaPoweredMetadataExtracter +{ + protected static Log logger = LogFactory.getLog(TikaAutoMetadataExtracter.class); + + public static ArrayList