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,


Reply via email to