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 2014/04/19 11:54:37 UTC

svn commit: r1588630 - in /oodt/trunk/pushpull/src: main/java/org/apache/oodt/cas/pushpull/filerestrictions/parsers/ main/resources/ main/resources/policy/ test/org/apache/oodt/cas/pushpull/filerestrictions/parsers/

Author: bfoster
Date: Sat Apr 19 09:54:37 2014
New Revision: 1588630

URL: http://svn.apache.org/r1588630
Log:
- Added new GenericEmailParser 

Modified:
    oodt/trunk/pushpull/src/main/java/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParser.java
    oodt/trunk/pushpull/src/main/resources/policy/ParserToRetrievalMethodMap.xml
    oodt/trunk/pushpull/src/main/resources/push_pull_framework.properties
    oodt/trunk/pushpull/src/test/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParserTest.java

Modified: oodt/trunk/pushpull/src/main/java/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParser.java
URL: http://svn.apache.org/viewvc/oodt/trunk/pushpull/src/main/java/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParser.java?rev=1588630&r1=1588629&r2=1588630&view=diff
==============================================================================
--- oodt/trunk/pushpull/src/main/java/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParser.java (original)
+++ oodt/trunk/pushpull/src/main/java/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParser.java Sat Apr 19 09:54:37 2014
@@ -43,22 +43,31 @@ public class GenericEmailParser implemen
 
   public static final String FILE_PATTERNS_PROPERTY_NAME =
       "org.apache.oodt.cas.pushpull.generic.email.parser.file.pattern";
+  public static final String CHECK_FOR_PATTERN_PROPERTY_NAME =
+      "org.apache.oodt.cas.pushpull.generic.email.parser.check.for.pattern";
 
   private final String filePattern;
+  private final String checkForPattern;
 
   public GenericEmailParser() {
     filePattern = loadFilePattern();
+    checkForPattern = loadCheckForPattern();
   }
  
-  public GenericEmailParser(String filePattern) {
+  public GenericEmailParser(String filePattern, String checkForPattern) {
     this.filePattern = filePattern;
+    this.checkForPattern = checkForPattern;
   }
 
   @Override
   public VirtualFileStructure parse(FileInputStream emailFile) throws ParserException {
     VirtualFile root = VirtualFile.createRootDir();
 
-    List<String> filePaths = generateFilePaths(readEmail(emailFile));
+    String emailText = readEmail(emailFile);
+    if (!isValidEmail(emailText)) {
+      throw new ParserException("Failed to find check for pattern in email: " + checkForPattern);
+    }
+    List<String> filePaths = generateFilePaths(emailText);
 
     for (String filePath : filePaths) {
       new VirtualFile(root, filePath, false);
@@ -90,7 +99,17 @@ public class GenericEmailParser implemen
     return filePaths;
   }
 
+  private boolean isValidEmail(String emailText) {
+    Pattern pattern = Pattern.compile(checkForPattern);
+    Matcher m = pattern.matcher(emailText);
+    return m.find();
+  }
+  
   private String loadFilePattern() {
     return System.getProperty(FILE_PATTERNS_PROPERTY_NAME);
   }
+  
+  private String loadCheckForPattern() {
+    return System.getProperty(CHECK_FOR_PATTERN_PROPERTY_NAME);    
+  }
 }

Modified: oodt/trunk/pushpull/src/main/resources/policy/ParserToRetrievalMethodMap.xml
URL: http://svn.apache.org/viewvc/oodt/trunk/pushpull/src/main/resources/policy/ParserToRetrievalMethodMap.xml?rev=1588630&r1=1588629&r2=1588630&view=diff
==============================================================================
--- oodt/trunk/pushpull/src/main/resources/policy/ParserToRetrievalMethodMap.xml (original)
+++ oodt/trunk/pushpull/src/main/resources/policy/ParserToRetrievalMethodMap.xml Sat Apr 19 09:54:37 2014
@@ -24,6 +24,7 @@
     <rtvlMethod class="org.apache.oodt.cas.pushpull.retrievalmethod.ListRetriever">
         <parser class="org.apache.oodt.cas.pushpull.filerestrictions.parsers.FileListParser"/>
         <parser class="org.apache.oodt.cas.pushpull.filerestrictions.parsers.ClassNoaaEmailParser"/>
+        <parser class="org.apache.oodt.cas.pushpull.filerestrictions.parsers.GenericEmailParser"/>
     </rtvlMethod>
     
 </rtvlMethods>

Modified: oodt/trunk/pushpull/src/main/resources/push_pull_framework.properties
URL: http://svn.apache.org/viewvc/oodt/trunk/pushpull/src/main/resources/push_pull_framework.properties?rev=1588630&r1=1588629&r2=1588630&view=diff
==============================================================================
--- oodt/trunk/pushpull/src/main/resources/push_pull_framework.properties (original)
+++ oodt/trunk/pushpull/src/main/resources/push_pull_framework.properties Sat Apr 19 09:54:37 2014
@@ -98,3 +98,6 @@ org.apache.oodt.cas.pushpull.file.retrie
 org.apache.oodt.cas.pushpull.allow.only.defined.types=true
 
 org.apache.oodt.cas.pushpull.filerestrictions.parsers.class.noaa.email.parser.contains.exprs=CLASS\ has\ processed,anonymous
+
+org.apache.oodt.cas.pushpull.generic.email.parser.file.pattern=Wav File: ([^\\s]+)
+org.apache.oodt.cas.pushpull.generic.email.parser.check.for.pattern=Pattern to valid email has expected text

Modified: oodt/trunk/pushpull/src/test/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParserTest.java
URL: http://svn.apache.org/viewvc/oodt/trunk/pushpull/src/test/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParserTest.java?rev=1588630&r1=1588629&r2=1588630&view=diff
==============================================================================
--- oodt/trunk/pushpull/src/test/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParserTest.java (original)
+++ oodt/trunk/pushpull/src/test/org/apache/oodt/cas/pushpull/filerestrictions/parsers/GenericEmailParserTest.java Sat Apr 19 09:54:37 2014
@@ -55,10 +55,18 @@ public class GenericEmailParserTest {
 
   @Test
   public void testGenericEmailParser() throws ParserException, FileNotFoundException {
-    GenericEmailParser parser = new GenericEmailParser("Wav File: ([^\\s]+)");
+    GenericEmailParser parser = new GenericEmailParser(
+        "Wav File: ([^\\s]+)", "Dear Lousy Customer,");
     VirtualFileStructure vfs = parser.parse(new FileInputStream(emailFile));
     List<String> filePaths = FileRestrictions.toStringList(vfs.getRootVirtualFile());
     assertThat(filePaths.size(), Matchers.is(1));
     assertThat(filePaths.get(0), Matchers.is("/some/path/to/a/wav/file.wav"));
   }
+
+  @Test (expected = ParserException.class)
+  public void testFailedValidEmailCheck() throws ParserException, FileNotFoundException {
+    GenericEmailParser parser = new GenericEmailParser(
+        "Wav File: ([^\\s]+)", "Phrase Not Found");
+    parser.parse(new FileInputStream(emailFile));
+  }
 }