You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by wk...@apache.org on 2011/06/08 09:17:07 UTC
svn commit: r1133264 - in /incubator/stanbol/trunk/enhancer/engines/metaxa:
./ src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/
src/main/resources/
Author: wkasper
Date: Wed Jun 8 07:17:07 2011
New Revision: 1133264
URL: http://svn.apache.org/viewvc?rev=1133264&view=rev
Log:
Stanbol-210: Removed dependencies on LGPL libs
Replaced MP3 extractor based on jaudiotagger by one based on mp3agic (MIT license)
Updated extractorregistry
Added:
incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/
incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractor.java
incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractorFactory.java
Modified:
incubator/stanbol/trunk/enhancer/engines/metaxa/pom.xml
incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/resources/extractionregistry.xml
Modified: incubator/stanbol/trunk/enhancer/engines/metaxa/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/metaxa/pom.xml?rev=1133264&r1=1133263&r2=1133264&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/metaxa/pom.xml (original)
+++ incubator/stanbol/trunk/enhancer/engines/metaxa/pom.xml Wed Jun 8 07:17:07 2011
@@ -62,7 +62,13 @@
</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Import-Package>
- !com.jacob.test.*,
+ !com.jacob.*,
+ !jcifs.*,
+ !org.bibsonomy.*,
+ !ronaldhttpclient.*,
+ !org.htmlparser.*,
+ !org.jaudiotagger.*,
+ !org.textmining.*,
!com.sun.image.codec.jpeg.*,
!com.sun.javadoc,
!com.sun.msv.*,
@@ -136,6 +142,11 @@
<scope>compile</scope>
</dependency>
<dependency>
+ <groupId>mp3agic</groupId>
+ <artifactId>mp3agic</artifactId>
+ <version>0.6</version>
+ </dependency>
+ <dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<scope>compile</scope>
Added: incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractor.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractor.java?rev=1133264&view=auto
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractor.java (added)
+++ incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractor.java Wed Jun 8 07:17:07 2011
@@ -0,0 +1,107 @@
+package org.apache.stanbol.enhancer.engines.metaxa.core.mp3;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import org.ontoware.rdf2go.model.Model;
+import org.ontoware.rdf2go.model.node.Resource;
+import org.ontoware.rdf2go.model.node.URI;
+import org.ontoware.rdf2go.vocabulary.RDF;
+import org.semanticdesktop.aperture.extractor.AbstractFileExtractor;
+import org.semanticdesktop.aperture.extractor.ExtractorException;
+import org.semanticdesktop.aperture.rdf.RDFContainer;
+import org.semanticdesktop.aperture.rdf.util.ModelUtil;
+import org.semanticdesktop.aperture.vocabulary.NCO;
+import org.semanticdesktop.aperture.vocabulary.NID3;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.mpatric.mp3agic.ID3Wrapper;
+import com.mpatric.mp3agic.ID3v1;
+import com.mpatric.mp3agic.ID3v2;
+import com.mpatric.mp3agic.InvalidDataException;
+import com.mpatric.mp3agic.Mp3File;
+import com.mpatric.mp3agic.UnsupportedTagException;
+
+/**
+ *
+ * @author <a href="mailto:kasper@dfki.de">Walter Kasper</a>
+ *
+ */
+
+public class MP3FileExtractor extends AbstractFileExtractor {
+
+ private Logger logger = LoggerFactory.getLogger(MP3FileExtractor.class);
+
+ @Override
+ protected void performExtraction(URI arg0, File arg1, Charset arg2, String arg3, RDFContainer result) throws ExtractorException {
+ try {
+ Mp3File mp3File = new Mp3File(arg1.toString());
+ ID3v1 id3v1 = mp3File.getId3v1Tag();
+ ID3v2 id3v2 = mp3File.getId3v2Tag();
+ ID3Wrapper wrapper = new ID3Wrapper(id3v1,id3v2);
+ addId3Fields(wrapper,result);
+ result.add(RDF.type, NID3.ID3Audio);
+
+ } catch (UnsupportedTagException e) {
+ throw new ExtractorException(e);
+ } catch (InvalidDataException e) {
+ throw new ExtractorException(e);
+ } catch (IOException e) {
+ throw new ExtractorException(e);
+ }
+ }
+
+ private void addId3Fields(ID3Wrapper wrapper, RDFContainer result) {
+ String value = null;
+ if ((value = wrapper.getAlbum()) != null) {
+ result.add(NID3.albumTitle,value);
+ }
+ if ((value = wrapper.getArtist()) != null) {
+ addSimpleContact(NID3.originalArtist,value,result);
+ }
+ if ((value = wrapper.getComment()) != null) {
+ result.add(NID3.comments,value);
+ }
+ if ((value = wrapper.getComposer())!= null) {
+ addSimpleContact(NID3.composer,value,result);
+ }
+ if ((value = wrapper.getCopyright()) != null) {
+ result.add(NID3.copyrightMessage,value);
+ }
+ if ((value = wrapper.getEncoder()) != null) {
+ addSimpleContact(NID3.encodedBy, value,result);
+ }
+ if ((value = wrapper.getGenreDescription()) != null) {
+ result.add(NID3.contentType,value);
+ }
+ if ((value = wrapper.getTitle()) != null) {
+ result.add(NID3.title,value);
+ }
+ if ((value = wrapper.getOriginalArtist()) != null) {
+ addSimpleContact(NID3.originalArtist,value,result);
+ }
+ if ((value = wrapper.getTrack()) != null) {
+ addSimpleContact(NID3.trackNumber,value,result);
+ }
+ if ((value = wrapper.getYear()) != null) {
+ try {
+ int year = Integer.parseInt(value);
+ result.add(NID3.recordingYear,year);
+ }
+ catch(NumberFormatException e) {}
+ }
+ }
+
+ protected void addSimpleContact(URI property, String fullname, RDFContainer container) {
+ Model model = container.getModel();
+ Resource resource = ModelUtil.generateRandomResource(model);
+ model.addStatement(resource, RDF.type, NCO.Contact);
+ model.addStatement(resource, NCO.fullname, fullname);
+ model.addStatement(container.getDescribedUri(), property, resource);
+}
+
+
+
+}
Added: incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractorFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractorFactory.java?rev=1133264&view=auto
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractorFactory.java (added)
+++ incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/java/org/apache/stanbol/enhancer/engines/metaxa/core/mp3/MP3FileExtractorFactory.java Wed Jun 8 07:17:07 2011
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2006 - 2008 Aduna and Deutsches Forschungszentrum fuer Kuenstliche Intelligenz DFKI GmbH.
+ * All rights reserved.
+ *
+ * Licensed under the Aperture BSD-style license.
+ */
+package org.apache.stanbol.enhancer.engines.metaxa.core.mp3;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.semanticdesktop.aperture.extractor.FileExtractor;
+import org.semanticdesktop.aperture.extractor.FileExtractorFactory;
+
+/**
+ * A FileExtractorFactory implementation for the MP3FileExtractors
+ */
+public class MP3FileExtractorFactory implements FileExtractorFactory {
+
+ private static final Set MIME_TYPES = Collections.singleton("audio/mpeg");
+
+ /**
+ * @see FileExtractorFactory#get()
+ */
+ public FileExtractor get() {
+ return new MP3FileExtractor();
+ }
+
+ /**
+ * @see FileExtractorFactory#getSupportedMimeTypes()
+ */
+ public Set getSupportedMimeTypes() {
+ return MIME_TYPES;
+ }
+
+}
+
Modified: incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/resources/extractionregistry.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/resources/extractionregistry.xml?rev=1133264&r1=1133263&r2=1133264&view=diff
==============================================================================
--- incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/resources/extractionregistry.xml (original)
+++ incubator/stanbol/trunk/enhancer/engines/metaxa/src/main/resources/extractionregistry.xml Wed Jun 8 07:17:07 2011
@@ -71,6 +71,7 @@
<name>org.semanticdesktop.aperture.extractor.xml.XmlExtractorFactory</name>
</extractorFactory>
<extractorFactory>
- <name>org.semanticdesktop.aperture.extractor.mp3.MP3FileExtractorFactory</name>
+ <name>org.apache.stanbol.enhancer.engines.metaxa.core.mp3.MP3FileExtractorFactory</name>
</extractorFactory>
+ -->
</extractorFactories>