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 <[email protected]> Authored: Mon Aug 10 11:01:11 2015 -0700 Committer: Rohini Palaniswamy <[email protected]> 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)
