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)