You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by ro...@apache.org on 2015/08/10 20:01:06 UTC

oozie git commit: OOZIE-2309 Enable the coord:dateOffset() function in /coordinator-app/datasets/dataset/@initial-instance (kailongs via rohini)

Repository: oozie
Updated Branches:
  refs/heads/master 9e4a26602 -> 2d270148f


OOZIE-2309 Enable the coord:dateOffset() function in /coordinator-app/datasets/dataset/@initial-instance (kailongs via rohini)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/2d270148
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/2d270148
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/2d270148

Branch: refs/heads/master
Commit: 2d270148f949c92a36e971b6b3e706b234e85b35
Parents: 9e4a266
Author: Rohini Palaniswamy <ro...@apache.org>
Authored: Mon Aug 10 11:01:11 2015 -0700
Committer: Rohini Palaniswamy <ro...@apache.org>
Committed: Mon Aug 10 11:01:11 2015 -0700

----------------------------------------------------------------------
 .../apache/oozie/coord/CoordELEvaluator.java    |  9 ++++----
 core/src/main/resources/oozie-default.xml       |  1 +
 .../oozie/coord/TestCoordELEvaluator.java       | 23 +++++++++++++++-----
 release-log.txt                                 |  1 +
 4 files changed, 25 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/2d270148/core/src/main/java/org/apache/oozie/coord/CoordELEvaluator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/coord/CoordELEvaluator.java b/core/src/main/java/org/apache/oozie/coord/CoordELEvaluator.java
index 8b2f456..d495dfa 100644
--- a/core/src/main/java/org/apache/oozie/coord/CoordELEvaluator.java
+++ b/core/src/main/java/org/apache/oozie/coord/CoordELEvaluator.java
@@ -73,7 +73,7 @@ public class CoordELEvaluator {
                                                          Configuration conf) throws Exception {
         ELEvaluator eval = Services.get().get(ELService.class).createEvaluator(tag);
         setConfigToEval(eval, conf);
-        SyncCoordDataset ds = getDSObject(event);
+        SyncCoordDataset ds = getDSObject(eval, event);
         CoordELFunctions.configureEvaluator(eval, ds, appInst);
         return eval;
     }
@@ -104,7 +104,7 @@ public class CoordELEvaluator {
             throws Exception {
         ELEvaluator eval = Services.get().get(ELService.class).createEvaluator("coord-action-start");
         setConfigToEval(eval, conf);
-        SyncCoordDataset ds = getDSObject(dEvent);
+        SyncCoordDataset ds = getDSObject(eval, dEvent);
         SyncCoordAction appInst = new SyncCoordAction();
         appInst.setNominalTime(nominalTime);
         appInst.setActualTime(actualTime);
@@ -254,11 +254,12 @@ public class CoordELEvaluator {
      * @return
      * @throws Exception
      */
-    private static SyncCoordDataset getDSObject(Element eData) throws Exception {
+    private static SyncCoordDataset getDSObject(ELEvaluator eval, Element eData) throws Exception {
         SyncCoordDataset ds = new SyncCoordDataset();
         Element eDataset = eData.getChild("dataset", eData.getNamespace());
         // System.out.println("eDATA :"+ XmlUtils.prettyPrint(eData));
-        Date initInstance = DateUtils.parseDateOozieTZ(eDataset.getAttributeValue("initial-instance"));
+        String expr = eDataset.getAttributeValue("initial-instance");
+        Date initInstance = DateUtils.parseDateOozieTZ(eval.evaluate(expr, String.class));
         ds.setInitInstance(initInstance);
         if (eDataset.getAttributeValue("frequency") != null) {
             int frequency = Integer.parseInt(eDataset.getAttributeValue("frequency"));

http://git-wip-us.apache.org/repos/asf/oozie/blob/2d270148/core/src/main/resources/oozie-default.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/oozie-default.xml b/core/src/main/resources/oozie-default.xml
index 12c5aa0..0a7e250 100644
--- a/core/src/main/resources/oozie-default.xml
+++ b/core/src/main/resources/oozie-default.xml
@@ -1070,6 +1070,7 @@
             coord:current=org.apache.oozie.coord.CoordELFunctions#ph2_coord_current,
             coord:currentRange=org.apache.oozie.coord.CoordELFunctions#ph2_coord_currentRange,
             coord:offset=org.apache.oozie.coord.CoordELFunctions#ph2_coord_offset,
+            coord:dateOffset=org.apache.oozie.coord.CoordELFunctions#ph2_coord_dateOffset,
             coord:latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
             coord:latestRange=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latestRange_echo,
             coord:future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo,

http://git-wip-us.apache.org/repos/asf/oozie/blob/2d270148/core/src/test/java/org/apache/oozie/coord/TestCoordELEvaluator.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/coord/TestCoordELEvaluator.java b/core/src/test/java/org/apache/oozie/coord/TestCoordELEvaluator.java
index a8542dd..b67e77e 100644
--- a/core/src/test/java/org/apache/oozie/coord/TestCoordELEvaluator.java
+++ b/core/src/test/java/org/apache/oozie/coord/TestCoordELEvaluator.java
@@ -18,17 +18,13 @@
 
 package org.apache.oozie.coord;
 
-import java.io.File;
-import java.io.IOException;
+import java.io.StringReader;
 import java.util.Date;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.oozie.service.Services;
 import org.apache.oozie.test.XTestCase;
 import org.apache.oozie.util.DateUtils;
-
-import java.io.StringReader;
-
 import org.apache.oozie.util.ELEvaluator;
 import org.apache.oozie.util.XConfiguration;
 import org.apache.oozie.util.XmlUtils;
@@ -175,6 +171,23 @@ public class TestCoordELEvaluator extends XTestCase {
         assertEquals("2009-09-08T00:00Z", eval.evaluate(expr, String.class));
     }
 
+    public void testCreateInstancesELEvaluatorWithDateOffset() throws Exception {
+        SyncCoordAction appInst = new SyncCoordAction();
+        appInst.setNominalTime(DateUtils.parseDateOozieTZ("2009-09-08T01:00Z"));
+        appInst.setActualTime(DateUtils.parseDateOozieTZ("2010-10-01T00:00Z"));
+        appInst.setTimeUnit(TimeUnit.MINUTE);
+        String dataEvntXML = "<data-in name=\"A\" dataset=\"a\"><uris>file:///tmp/coord/US/2009/1/30|file:///tmp/coord/"
+                + "US/2009/1/31</uris>";
+        dataEvntXML += "<dataset name=\"a\" frequency=\"1440\" initial-instance=\"${coord:dateOffset('2009-09-08T23:59Z'"
+                + ", 2, 'MINUTE')}\" freq_timeunit=\"MINUTE\" timezone=\"UTC\" end_of_duration=\"NONE\">";
+        dataEvntXML += "<uri-template>file:///tmp/coord/US/${YEAR}/${MONTH}/${DAY}</uri-template></dataset></data-in>";
+        Element event = XmlUtils.parseXml(dataEvntXML);
+        Configuration conf = new XConfiguration(new StringReader(getConfString()));
+        ELEvaluator eval = CoordELEvaluator.createInstancesELEvaluator(event, appInst, conf);
+        SyncCoordDataset ds = (SyncCoordDataset) eval.getVariable(CoordELFunctions.DATASET);
+        assertEquals("2009-09-09T00:01Z", DateUtils.formatDateOozieTZ(ds.getInitInstance()));
+    }
+
     public void testCreateLazyEvaluator() throws Exception {
         // Configuration conf = new
         // XConfiguration(IOUtils.getResourceAsReader("org/apache/oozie/coord/conf.xml",

http://git-wip-us.apache.org/repos/asf/oozie/blob/2d270148/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index b409cdb..0339017 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.3.0 release (trunk - unreleased)
 
+OOZIE-2309 Enable the coord:dateOffset() function in /coordinator-app/datasets/dataset/@initial-instance (kailongs via rohini)
 OOZIE-2305 Compile Oozie with Hive-1.2.0 (raviprak via shwethags)
 OOZIE-2320 TestZKXLogStreamingService.testStreamingWithMultipleOozieServers_coordActionList is failing (rkanter)
 OOZIE-2293 Oozie 4.0.1 build failed while building Catalog (raviprak via shwethags)