You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by bf...@apache.org on 2012/03/29 00:02:25 UTC

svn commit: r1306618 - in /oodt/trunk/crawler/src: main/java/org/apache/oodt/cas/crawl/ main/java/org/apache/oodt/cas/crawl/typedetection/ main/resources/examples/ test/org/apache/oodt/cas/crawl/typedetection/

Author: bfoster
Date: Wed Mar 28 22:02:24 2012
New Revision: 1306618

URL: http://svn.apache.org/viewvc?rev=1306618&view=rev
Log:
- Switched MimeExtractorRepo to store NamingConvention Bean Ids instead of actual class... this is so that MetExtractorProductCrawler and AutoDetectProductCrawler can use the same NamingConventions (both referencing them from predefined Beans)

-------------
OODT-426

Modified:
    oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/AutoDetectProductCrawler.java
    oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorConfigReader.java
    oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorRepo.java
    oodt/trunk/crawler/src/main/resources/examples/mime-extractor-map.xml
    oodt/trunk/crawler/src/test/org/apache/oodt/cas/crawl/typedetection/TestMimeExtractorConfigReader.java

Modified: oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/AutoDetectProductCrawler.java
URL: http://svn.apache.org/viewvc/oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/AutoDetectProductCrawler.java?rev=1306618&r1=1306617&r2=1306618&view=diff
==============================================================================
--- oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/AutoDetectProductCrawler.java (original)
+++ oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/AutoDetectProductCrawler.java Wed Mar 28 22:02:24 2012
@@ -121,9 +121,11 @@ public class AutoDetectProductCrawler ex
    @Override
    protected File renameProduct(File product, Metadata productMetadata)
          throws Exception {
-      NamingConvention namingConvention = mimeExtractorRepo
-            .getNamingConvention(mimeExtractorRepo.getMimeType(product));
-      if (namingConvention != null) {
+      String namingConventionId = mimeExtractorRepo
+            .getNamingConventionId(mimeExtractorRepo.getMimeType(product));
+      if (namingConventionId != null) {
+         NamingConvention namingConvention = (NamingConvention) getApplicationContext()
+               .getBean(namingConventionId);
          return namingConvention.rename(product, productMetadata);
       } else {
          return product;

Modified: oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorConfigReader.java
URL: http://svn.apache.org/viewvc/oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorConfigReader.java?rev=1306618&r1=1306617&r2=1306618&view=diff
==============================================================================
--- oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorConfigReader.java (original)
+++ oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorConfigReader.java Wed Mar 28 22:02:24 2012
@@ -89,8 +89,8 @@ public final class MimeExtractorConfigRe
                 }
                 extractorRepo
                         .setDefaultMetExtractorSpecs(defaultExtractorSpecs);
-                extractorRepo.setDefaultNamingConvention(
-                      getNamingConvention(defaultExtractorElem));
+                extractorRepo.setDefaultNamingConventionId(
+                      getNamingConventionId(defaultExtractorElem));
             }
 
             NodeList mimeElems = root.getElementsByTagName(MIME_TAG);
@@ -100,8 +100,8 @@ public final class MimeExtractorConfigRe
                 LinkedList<MetExtractorSpec> specs = new LinkedList<MetExtractorSpec>();
 
                 // Load naming convention class.
-                extractorRepo.setNamingConvention(mimeType,
-                      getNamingConvention(mimeElem));
+                extractorRepo.setNamingConventionId(mimeType,
+                      getNamingConventionId(mimeElem));
 
                 NodeList extractorSpecElems = mimeElem
                         .getElementsByTagName(EXTRACTOR_TAG);
@@ -145,8 +145,7 @@ public final class MimeExtractorConfigRe
         }
     }
 
-    private static NamingConvention getNamingConvention(Element parent)
-          throws Exception {
+    private static String getNamingConventionId(Element parent) throws Exception {
        NodeList namingConventions = parent
              .getElementsByTagName(NAMING_CONVENTION_TAG);
        if (namingConventions != null && namingConventions.getLength() > 0) {
@@ -155,8 +154,7 @@ public final class MimeExtractorConfigRe
                    + NAMING_CONVENTION_TAG + "' tag per mimetype");
           }
           Element namingConvention = (Element) namingConventions.item(0);
-          return (NamingConvention) Class.forName(
-                namingConvention.getAttribute(CLASS_ATTR)).newInstance();
+          return namingConvention.getAttribute(ID_ATTR);
        }
        return null;
     }

Modified: oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorRepo.java
URL: http://svn.apache.org/viewvc/oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorRepo.java?rev=1306618&r1=1306617&r2=1306618&view=diff
==============================================================================
--- oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorRepo.java (original)
+++ oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/typedetection/MimeExtractorRepo.java Wed Mar 28 22:02:24 2012
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Vector;
 
 //OODT imports
-import org.apache.oodt.cas.metadata.filenaming.NamingConvention;
 import org.apache.oodt.cas.metadata.util.MimeTypeUtils;
 
 //Google imports
@@ -42,11 +41,11 @@ import com.google.common.collect.Maps;
 public class MimeExtractorRepo {
 
 	private List<MetExtractorSpec> defaultExtractorSpecs;
-	private NamingConvention defaultNamingConvention;
+	private String defaultNamingConventionId;
 	private MimeTypeUtils mimeRepo;
 	private boolean magic;
 	private Map<String, List<MetExtractorSpec>> mimeTypeToMetExtractorSpecsMap;
-	private Map<String, NamingConvention> mimeTypeToNamingConventionMap;
+	private Map<String, String> mimeTypeToNamingConventionIdMap;
 
 	/**
 	 * Default Constructor
@@ -74,28 +73,28 @@ public class MimeExtractorRepo {
 	 * @throws FileNotFoundException
 	 */
 	public MimeExtractorRepo(List<MetExtractorSpec> defaultExtractorSpecs,
-	      NamingConvention defaultNamingConvention, String mimeRepoFile,
+	      String defaultNamingConventionId, String mimeRepoFile,
 	      boolean magic) throws FileNotFoundException {
 		setDefaultMetExtractorSpecs(defaultExtractorSpecs);
-		setDefaultNamingConvention(defaultNamingConvention);
+		setDefaultNamingConventionId(defaultNamingConventionId);
 		setMimeRepoFile(mimeRepoFile);
 		setMagic(magic);
 		mimeTypeToMetExtractorSpecsMap = Maps.newHashMap();
-		mimeTypeToNamingConventionMap = Maps.newHashMap();
+		mimeTypeToNamingConventionIdMap = Maps.newHashMap();
 	}
 
-	public synchronized void setNamingConvention(String mimeType,
-	      NamingConvention namingConvention) {
-	   mimeTypeToNamingConventionMap.put(mimeType, namingConvention);
+	public synchronized void setNamingConventionId(String mimeType,
+	      String namingConventionId) {
+	   mimeTypeToNamingConventionIdMap.put(mimeType, namingConventionId);
 	}
 
-	public synchronized NamingConvention getNamingConvention(String mimeType) {
-	   NamingConvention namingConvention =  mimeTypeToNamingConventionMap.get(
+	public synchronized String getNamingConventionId(String mimeType) {
+	   String namingConventionId =  mimeTypeToNamingConventionIdMap.get(
 	         mimeType);
-	   if (namingConvention == null) {
-	      return getDefaultNamingConvention();
+	   if (namingConventionId == null) {
+	      return getDefaultNamingConventionId();
 	   }
-	   return namingConvention;
+	   return namingConventionId;
 	}
 
 	public synchronized void addMetExtractorSpec(String mimeType,
@@ -157,13 +156,13 @@ public class MimeExtractorRepo {
 		this.defaultExtractorSpecs = defaultExtractorSpecs;
 	}
 
-	public void setDefaultNamingConvention(
-	      NamingConvention defaultNamingConvention) {
-	   this.defaultNamingConvention = defaultNamingConvention;
+	public void setDefaultNamingConventionId(
+	      String defaultNamingConventionId) {
+	   this.defaultNamingConventionId = defaultNamingConventionId;
 	}
 
-	public NamingConvention getDefaultNamingConvention() {
-	   return defaultNamingConvention;
+	public String getDefaultNamingConventionId() {
+	   return defaultNamingConventionId;
 	}
 
 	/**

Modified: oodt/trunk/crawler/src/main/resources/examples/mime-extractor-map.xml
URL: http://svn.apache.org/viewvc/oodt/trunk/crawler/src/main/resources/examples/mime-extractor-map.xml?rev=1306618&r1=1306617&r2=1306618&view=diff
==============================================================================
--- oodt/trunk/crawler/src/main/resources/examples/mime-extractor-map.xml (original)
+++ oodt/trunk/crawler/src/main/resources/examples/mime-extractor-map.xml Wed Mar 28 22:02:24 2012
@@ -21,7 +21,7 @@ the License.
 	<mime type="some/mime-type">
 
     <!-- naming convention for renaming file (zero or one) -->
-    <namingConvention class="naming.convention.class" />
+    <namingConvention id="id_from_application_context_bean_file" />
 
 		<!-- extractor spec for given mime-type (one or more) -->
 		<extractor class="extractor.class">

Modified: oodt/trunk/crawler/src/test/org/apache/oodt/cas/crawl/typedetection/TestMimeExtractorConfigReader.java
URL: http://svn.apache.org/viewvc/oodt/trunk/crawler/src/test/org/apache/oodt/cas/crawl/typedetection/TestMimeExtractorConfigReader.java?rev=1306618&r1=1306617&r2=1306618&view=diff
==============================================================================
--- oodt/trunk/crawler/src/test/org/apache/oodt/cas/crawl/typedetection/TestMimeExtractorConfigReader.java (original)
+++ oodt/trunk/crawler/src/test/org/apache/oodt/cas/crawl/typedetection/TestMimeExtractorConfigReader.java Wed Mar 28 22:02:24 2012
@@ -66,6 +66,7 @@ public class TestMimeExtractorConfigRead
    }
 
    public void testReadWithDefaults() throws Exception {
+      String namingConvId = "PathUtilsNC";
       String defaultPreconditionId = "TestPrecondition";
       String preconditionId1 = "Precondition1";
       String preconditionId2 = "Precondition2";
@@ -75,8 +76,7 @@ public class TestMimeExtractorConfigRead
                + " magic=\"false\" mimeRepo=\""
                + mimeTypesFile.getAbsolutePath() + "\">\n"
          + "<default>\n"
-         + "   <namingConvention class=\""
-               + PathUtilsNamingConvention.class.getCanonicalName() + "\" />\n"
+         + "   <namingConvention id=\"" + namingConvId + "\" />\n"
          + "   <extractor class=\""
                + CopyAndRewriteExtractor.class.getCanonicalName() + "\">\n"
          + "      <config file=\"" + defaultExtractorConfig.getAbsolutePath()
@@ -103,8 +103,7 @@ public class TestMimeExtractorConfigRead
       assertTrue(xmlMimeRepo.exists());
       MimeExtractorRepo mimeRepo = MimeExtractorConfigReader.read(
             xmlMimeRepo.getAbsolutePath());
-      assertEquals(PathUtilsNamingConvention.class,
-            mimeRepo.getNamingConvention("some/mime-type").getClass());
+      assertEquals(namingConvId, mimeRepo.getNamingConventionId("some/mime-type"));
       List<MetExtractorSpec> specs = mimeRepo.getExtractorSpecsForMimeType("some/mime-type");
       assertEquals(1, specs.size());
       assertEquals(MetReaderExtractor.class,
@@ -120,6 +119,7 @@ public class TestMimeExtractorConfigRead
    }
 
    public void testReadWithoutDefaults() throws Exception {
+      String namingConvId = "PathUtilsNC";
       String preconditionId1 = "Precondition1";
       String preconditionId2 = "Precondition2";
       String xmlFileContents =
@@ -128,8 +128,7 @@ public class TestMimeExtractorConfigRead
                + " magic=\"false\" mimeRepo=\""
                + mimeTypesFile.getAbsolutePath() + "\">\n"
          + "<mime type=\"some/mime-type\">\n"
-         + "   <namingConvention class=\""
-                  + PathUtilsNamingConvention.class.getCanonicalName() + "\" />\n"
+         + "   <namingConvention id=\"" + namingConvId + "\" />\n"
          + "   <extractor class=\""
                + MetReaderExtractor.class.getCanonicalName() + "\">\n"
          + "      <config file=\"" + defaultExtractorConfig.getAbsolutePath()
@@ -146,8 +145,7 @@ public class TestMimeExtractorConfigRead
       assertTrue(xmlMimeRepo.exists());
       MimeExtractorRepo mimeRepo = MimeExtractorConfigReader.read(
             xmlMimeRepo.getAbsolutePath());
-      assertEquals(PathUtilsNamingConvention.class,
-            mimeRepo.getNamingConvention("some/mime-type").getClass());
+      assertEquals(namingConvId, mimeRepo.getNamingConventionId("some/mime-type"));
       List<MetExtractorSpec> specs = mimeRepo.getExtractorSpecsForMimeType("some/mime-type");
       assertEquals(1, specs.size());
       assertEquals(MetReaderExtractor.class,