Fix for OODT-931 CAS Crawler and metadata preconditions should say what preconditions failed.
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/fa825105 Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/fa825105 Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/fa825105 Branch: refs/heads/development Commit: fa8251058b55b5703eda622d6bc64df2c89c8e52 Parents: fcb214f Author: Chris Mattmann <[email protected]> Authored: Wed Jul 6 16:08:04 2016 -0700 Committer: Lewis John McGibbney <[email protected]> Committed: Thu Mar 9 21:12:41 2017 -0800 ---------------------------------------------------------------------- CHANGES.txt | 3 ++ .../cas/crawl/MetExtractorProductCrawler.java | 37 ++++++++++++++++---- .../oodt/cas/crawl/StdProductCrawler.java | 16 +++++++-- 3 files changed, 47 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oodt/blob/fa825105/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 22147f5..e779398 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,6 +3,9 @@ Apache OODT Change Log Release 1.1 - Current Development +* OODT-931 CAS Crawler and metadata preconditions should say what preconditions + failed (mattmann) + * OODT-932 OODT-Core forces javadoc to run and fails on linting - it shouldn't do that (mattmann) http://git-wip-us.apache.org/repos/asf/oodt/blob/fa825105/crawler/src/main/java/org/apache/oodt/cas/crawl/MetExtractorProductCrawler.java ---------------------------------------------------------------------- diff --git a/crawler/src/main/java/org/apache/oodt/cas/crawl/MetExtractorProductCrawler.java b/crawler/src/main/java/org/apache/oodt/cas/crawl/MetExtractorProductCrawler.java index d663e84..978798a 100644 --- a/crawler/src/main/java/org/apache/oodt/cas/crawl/MetExtractorProductCrawler.java +++ b/crawler/src/main/java/org/apache/oodt/cas/crawl/MetExtractorProductCrawler.java @@ -22,12 +22,14 @@ import org.apache.oodt.cas.metadata.Metadata; import org.apache.oodt.cas.metadata.exceptions.MetExtractionException; import org.apache.oodt.cas.metadata.exceptions.NamingConventionException; import org.apache.oodt.cas.metadata.filenaming.NamingConvention; +import org.apache.oodt.cas.metadata.preconditions.PreCondEvalUtils; import org.apache.oodt.cas.metadata.preconditions.PreConditionComparator; import org.springframework.beans.factory.annotation.Required; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; /** @@ -58,14 +60,29 @@ public class MetExtractorProductCrawler extends ProductCrawler { @Override protected boolean passesPreconditions(File product) { if (this.getPreCondIds() != null) { - for (String preCondId : this.getPreCondIds()) { - if (!((PreConditionComparator<?>) this.getApplicationContext() - .getBean(preCondId)).passes(product)) { - return false; - } - } + PreCondEvalUtils evalUtils = new PreCondEvalUtils( + this.getApplicationContext()); + if (!evalUtils.eval(this.getPreCondIds(), product)) { + return false; + } } - return product.exists() && product.length() > 0; + + String preCondComparatorId = "ProductFileExistsCheck"; + String preCondComparatorIdLength = "ProductLengthGreaterZeroCheck"; + + boolean existsFlag = true, lengthFlag = true; + + if (!product.exists()){ + existsFlag = false; + logConditionMessage(existsFlag, preCondComparatorId, product); + } + + if (product.length() == 0){ + lengthFlag = false; + logConditionMessage(lengthFlag, preCondComparatorIdLength, product); + } + + return existsFlag && lengthFlag; } @Override @@ -120,4 +137,10 @@ public class MetExtractorProductCrawler extends ProductCrawler { public String getNamingConventionId() { return namingConventionId; } + + private void logConditionMessage(boolean flag, String preCondComparatorId, File product){ + String startMsg = flag ? "Passed":"Failed"; + LOG.log(Level.INFO, startMsg + " precondition comparator id " + + preCondComparatorId+" file: "+product); + } } http://git-wip-us.apache.org/repos/asf/oodt/blob/fa825105/crawler/src/main/java/org/apache/oodt/cas/crawl/StdProductCrawler.java ---------------------------------------------------------------------- diff --git a/crawler/src/main/java/org/apache/oodt/cas/crawl/StdProductCrawler.java b/crawler/src/main/java/org/apache/oodt/cas/crawl/StdProductCrawler.java index 00e0c91..dcc5b68 100644 --- a/crawler/src/main/java/org/apache/oodt/cas/crawl/StdProductCrawler.java +++ b/crawler/src/main/java/org/apache/oodt/cas/crawl/StdProductCrawler.java @@ -23,6 +23,7 @@ import org.apache.oodt.cas.metadata.extractors.MetReaderExtractor; //JDK imports import java.io.File; +import java.util.logging.Level; /** * A generic Product Crawler for Products. The Crawler is given a root Product @@ -58,8 +59,19 @@ public class StdProductCrawler extends ProductCrawler { @Override protected boolean passesPreconditions(File product) { - return new File(product.getAbsolutePath() + "." + this.metFileExtension) - .exists(); + String metFilePath = product.getAbsolutePath() + "." + this.metFileExtension; + boolean flag = new File(metFilePath).exists(); + String preCondComparatorId = "MetFileExistsCheck"; + + if (!flag){ + LOG.log(Level.INFO, "Failed precondition comparator id " + + preCondComparatorId+" file: "+metFilePath+" does not exist."); + } + else{ + LOG.log(Level.INFO, "Passed precondition comparator id " + + preCondComparatorId+" file: "+metFilePath+" exists."); + } + return flag; } @Override
