Repository: oozie
Updated Branches:
  refs/heads/master 38e33811b -> 8ebbc4bdf


OOZIE-2376 Default action configs not honored if no <configuration> section in 
workflow (rkanter)


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

Branch: refs/heads/master
Commit: 8ebbc4bdfa61f1f68bd04df00a9a71d2fe0fc871
Parents: 38e3381
Author: Robert Kanter <[email protected]>
Authored: Tue Sep 29 21:52:05 2015 -0700
Committer: Robert Kanter <[email protected]>
Committed: Tue Sep 29 21:52:05 2015 -0700

----------------------------------------------------------------------
 .../oozie/action/hadoop/JavaActionExecutor.java | 22 ++++-----
 .../action/hadoop/TestJavaActionExecutor.java   | 48 ++++++++++++++++++++
 release-log.txt                                 |  1 +
 3 files changed, 59 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/8ebbc4bd/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java 
b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
index a6e7000..c519cb0 100644
--- a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
+++ b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
@@ -251,24 +251,22 @@ public class JavaActionExecutor extends ActionExecutor {
             throws ActionExecutorException {
         try {
             Namespace ns = actionXml.getNamespace();
+            XConfiguration launcherConf = new XConfiguration();
+            // Inject action defaults for launcher
+            HadoopAccessorService has = 
Services.get().get(HadoopAccessorService.class);
+            XConfiguration actionDefaultConf = 
has.createActionDefaultConf(conf.get(HADOOP_JOB_TRACKER), getType());
+            injectLauncherProperties(actionDefaultConf, launcherConf);
+            // Inject <configuration> for launcher
             Element e = actionXml.getChild("configuration", ns);
             if (e != null) {
                 String strConf = XmlUtils.prettyPrint(e).toString();
                 XConfiguration inlineConf = new XConfiguration(new 
StringReader(strConf));
-
-                XConfiguration launcherConf = new XConfiguration();
-                HadoopAccessorService has = 
Services.get().get(HadoopAccessorService.class);
-                XConfiguration actionDefaultConf = 
has.createActionDefaultConf(conf.get(HADOOP_JOB_TRACKER), getType());
-                injectLauncherProperties(actionDefaultConf, launcherConf);
                 injectLauncherProperties(inlineConf, launcherConf);
-                injectLauncherUseUberMode(launcherConf);
-                checkForDisallowedProps(launcherConf, "launcher 
configuration");
-                XConfiguration.copy(launcherConf, conf);
-            } else {
-                XConfiguration launcherConf = new XConfiguration();
-                injectLauncherUseUberMode(launcherConf);
-                XConfiguration.copy(launcherConf, conf);
             }
+            // Inject use uber mode for launcher
+            injectLauncherUseUberMode(launcherConf);
+            XConfiguration.copy(launcherConf, conf);
+            checkForDisallowedProps(launcherConf, "launcher configuration");
             e = actionXml.getChild("config-class", actionXml.getNamespace());
             if (e != null) {
                 conf.set(LauncherMapper.OOZIE_ACTION_CONFIG_CLASS, 
e.getTextTrim());

http://git-wip-us.apache.org/repos/asf/oozie/blob/8ebbc4bd/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java 
b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
index 9be2c51..70f33ea 100644
--- 
a/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
+++ 
b/core/src/test/java/org/apache/oozie/action/hadoop/TestJavaActionExecutor.java
@@ -2654,4 +2654,52 @@ public class TestJavaActionExecutor extends 
ActionExecutorTestCase {
         });
         assertTrue(runningJob.isSuccessful());
     }
+
+    public void testDefaultConfigurationInLauncher() throws Exception {
+        JavaActionExecutor ae = new JavaActionExecutor();
+        Element actionXmlWithConfiguration = XmlUtils.parseXml(
+                "<java>" + "<job-tracker>" + getJobTrackerUri() 
+"</job-tracker>" +
+                "<name-node>" + getNameNodeUri() + "</name-node>" +
+                "<configuration>" +
+                
"<property><name>oozie.launcher.a</name><value>AA</value></property>" +
+                "<property><name>b</name><value>BB</value></property>" +
+                "</configuration>" +
+                "<main-class>MAIN-CLASS</main-class>" +
+                "</java>");
+        Element actionXmlWithoutConfiguration = XmlUtils.parseXml(
+                "<java>" + "<job-tracker>" + getJobTrackerUri() + 
"</job-tracker>" +
+                "<name-node>" + getNameNodeUri() + "</name-node>" +
+                "<main-class>MAIN-CLASS</main-class>" +
+                "</java>");
+
+        Configuration conf = new Configuration(false);
+        Assert.assertEquals(0, conf.size());
+        conf.set("mapred.job.tracker", getJobTrackerUri());
+        ae.setupLauncherConf(conf, actionXmlWithConfiguration, null, null);
+        assertEquals(getJobTrackerUri(), conf.get("mapred.job.tracker"));
+        assertEquals("AA", conf.get("oozie.launcher.a"));
+        assertEquals("AA", conf.get("a"));
+        assertEquals("action.barbar", 
conf.get("oozie.launcher.action.foofoo"));
+        assertEquals("action.barbar", conf.get("action.foofoo"));
+        assertEquals("true", conf.get("mapreduce.job.ubertask.enable"));
+        if (conf.size() == 7) {
+            assertEquals(getJobTrackerUri(), 
conf.get("mapreduce.jobtracker.address"));
+        } else {
+            assertEquals(6, conf.size());
+        }
+
+        conf = new Configuration(false);
+        Assert.assertEquals(0, conf.size());
+        conf.set("mapred.job.tracker", getJobTrackerUri());
+        ae.setupLauncherConf(conf, actionXmlWithoutConfiguration, null, null);
+        assertEquals(getJobTrackerUri(), conf.get("mapred.job.tracker"));
+        assertEquals("action.barbar", 
conf.get("oozie.launcher.action.foofoo"));
+        assertEquals("action.barbar", conf.get("action.foofoo"));
+        assertEquals("true", conf.get("mapreduce.job.ubertask.enable"));
+        if (conf.size() == 5) {
+            assertEquals(getJobTrackerUri(), 
conf.get("mapreduce.jobtracker.address"));
+        } else {
+            assertEquals(4, conf.size());
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/oozie/blob/8ebbc4bd/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 7cd10d7..d2eee57 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 4.3.0 release (trunk - unreleased)
 
+OOZIE-2376 Default action configs not honored if no <configuration> section in 
workflow (rkanter)
 OOZIE-2365 oozie fail to start when smtp password not set (rohini)
 OOZIE-2360 Spark Action fails due to missing mesos jar (rkanter)
 OOZIE-2345 Parallel job submission for forked actions (puru)

Reply via email to