You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by ge...@apache.org on 2018/03/14 12:18:27 UTC

[2/2] oozie git commit: OOZIE-2814 OYA: Update example workflows to newest schemas (asasvari via gezapeti)

OOZIE-2814 OYA: Update example workflows to newest schemas (asasvari via gezapeti)


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

Branch: refs/heads/master
Commit: da8e5b5184a0afba033ae5358b7ca6a03a38b618
Parents: 09df58f
Author: Gezapeti Cseh <ge...@apache.org>
Authored: Wed Mar 14 13:17:01 2018 +0100
Committer: Gezapeti Cseh <ge...@apache.org>
Committed: Wed Mar 14 13:17:09 2018 +0100

----------------------------------------------------------------------
 client/src/main/resources/distcp-action-1.0.xsd |  39 +++
 .../oozie/action/hadoop/JavaActionExecutor.java |  14 +-
 .../workflow/lite/LiteWorkflowAppParser.java    |  66 +++-
 core/src/main/resources/oozie-default.xml       |  13 +-
 .../action/hadoop/TestJavaActionExecutor.java   |  83 ++++-
 .../lite/TestLiteWorkflowAppParser.java         | 321 ++++++++-----------
 .../apps/aggregator/coordinator-with-offset.xml |   4 +-
 .../src/main/apps/aggregator/coordinator.xml    |   4 +-
 .../apps/aggregator/job-with-offset.properties  |   2 +-
 .../src/main/apps/aggregator/job.properties     |   2 +-
 examples/src/main/apps/aggregator/workflow.xml  |   4 +-
 examples/src/main/apps/bundle/job.properties    |   2 +-
 .../main/apps/coord-input-logic/job.properties  |   2 +-
 .../main/apps/coord-input-logic/workflow.xml    |   4 +-
 .../src/main/apps/cron-schedule/coordinator.xml |   4 +-
 .../src/main/apps/cron-schedule/job.properties  |   2 +-
 .../src/main/apps/cron-schedule/workflow.xml    |   2 +-
 examples/src/main/apps/cron/coordinator.xml     |   4 +-
 examples/src/main/apps/cron/job.properties      |   2 +-
 examples/src/main/apps/cron/workflow.xml        |   2 +-
 .../src/main/apps/custom-main/job.properties    |   2 +-
 examples/src/main/apps/custom-main/workflow.xml |   6 +-
 .../main/apps/datelist-java-main/job.properties |   2 +-
 .../main/apps/datelist-java-main/workflow.xml   |   4 +-
 examples/src/main/apps/demo/job.properties      |   2 +-
 .../src/main/apps/demo/job.windows.properties   |   2 +-
 examples/src/main/apps/demo/workflow.xml        |   8 +-
 examples/src/main/apps/distcp/job.properties    |   2 +-
 examples/src/main/apps/distcp/workflow.xml      |   6 +-
 examples/src/main/apps/hadoop-el/job.properties |   2 +-
 examples/src/main/apps/hadoop-el/workflow.xml   |   4 +-
 examples/src/main/apps/hcatalog/job.properties  |   2 +-
 .../main/apps/hcatalog/job.properties.security  |   2 +-
 examples/src/main/apps/hcatalog/workflow.xml    |   4 +-
 .../main/apps/hcatalog/workflow.xml.security    |   4 +-
 examples/src/main/apps/hive/job.properties      |   2 +-
 examples/src/main/apps/hive/workflow.xml        |   6 +-
 .../src/main/apps/hive/workflow.xml.security    |   6 +-
 examples/src/main/apps/hive2/job.properties     |   2 +-
 .../src/main/apps/hive2/job.properties.security |   2 +-
 examples/src/main/apps/hive2/workflow.xml       |   6 +-
 .../src/main/apps/hive2/workflow.xml.security   |   6 +-
 examples/src/main/apps/java-main/job.properties |   2 +-
 examples/src/main/apps/java-main/workflow.xml   |   4 +-
 .../map-reduce/job-with-config-class.properties |   2 +-
 .../src/main/apps/map-reduce/job.properties     |   2 +-
 .../map-reduce/workflow-with-config-class.xml   |   4 +-
 examples/src/main/apps/map-reduce/workflow.xml  |   4 +-
 examples/src/main/apps/no-op/job.properties     |   2 +-
 examples/src/main/apps/no-op/workflow.xml       |   2 +-
 examples/src/main/apps/pig/job.properties       |   2 +-
 examples/src/main/apps/pig/workflow.xml         |   4 +-
 examples/src/main/apps/pyspark/job.properties   |   2 +-
 examples/src/main/apps/pyspark/workflow.xml     |   4 +-
 examples/src/main/apps/shell/job.properties     |   2 +-
 examples/src/main/apps/shell/workflow.xml       |   6 +-
 examples/src/main/apps/sla/coordinator.xml      |   4 +-
 examples/src/main/apps/sla/job.properties       |   2 +-
 examples/src/main/apps/sla/workflow.xml         |   2 +-
 examples/src/main/apps/spark/job.properties     |   4 +-
 examples/src/main/apps/spark/workflow.xml       |   6 +-
 .../src/main/apps/sqoop-freeform/job.properties |   2 +-
 .../src/main/apps/sqoop-freeform/workflow.xml   |   6 +-
 examples/src/main/apps/sqoop/job.properties     |   2 +-
 examples/src/main/apps/sqoop/workflow.xml       |   6 +-
 examples/src/main/apps/ssh/job.properties       |   2 +-
 examples/src/main/apps/ssh/workflow.xml         |   2 +-
 examples/src/main/apps/streaming/job.properties |   2 +-
 .../main/apps/streaming/job.windows.properties  |   2 +-
 examples/src/main/apps/streaming/workflow.xml   |   4 +-
 examples/src/main/apps/subwf/job.properties     |   2 +-
 examples/src/main/apps/subwf/workflow.xml       |   6 +-
 .../src/test/resources/localoozieexample-wf.xml |   2 +-
 release-log.txt                                 |   1 +
 74 files changed, 422 insertions(+), 335 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/client/src/main/resources/distcp-action-1.0.xsd
----------------------------------------------------------------------
diff --git a/client/src/main/resources/distcp-action-1.0.xsd b/client/src/main/resources/distcp-action-1.0.xsd
new file mode 100644
index 0000000..9592f9e
--- /dev/null
+++ b/client/src/main/resources/distcp-action-1.0.xsd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:distcp="uri:oozie:distcp-action:1.0" elementFormDefault="qualified"
+           targetNamespace="uri:oozie:distcp-action:1.0">
+    <xs:include schemaLocation="oozie-common-1.0.xsd"/>
+    <xs:element name="distcp" type="distcp:ACTION"/>
+
+    <xs:complexType name="ACTION">
+        <xs:sequence>
+            <xs:choice>
+                <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/>
+                <xs:element name="resource-manager" type="xs:string" minOccurs="0" maxOccurs="1"/>
+            </xs:choice>
+            <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="prepare" type="distcp:PREPARE" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="launcher" type="distcp:LAUNCHER" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="configuration" type="distcp:CONFIGURATION" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="java-opts" type="xs:string" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="arg" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/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 bc0f405..122dfd0 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
@@ -261,18 +261,26 @@ public class JavaActionExecutor extends ActionExecutor {
     protected Configuration createBaseHadoopConf(Context context, Element actionXml, boolean loadResources) {
 
         Namespace ns = actionXml.getNamespace();
-        String jobTracker = actionXml.getChild("job-tracker", ns).getTextTrim();
+        String resourceManager;
+        final Element resourceManagerTag = actionXml.getChild("resource-manager", ns);
+        if (resourceManagerTag != null) {
+            resourceManager = resourceManagerTag.getTextTrim();
+        }
+        else {
+            resourceManager = actionXml.getChild("job-tracker", ns).getTextTrim();
+        }
+
         String nameNode = actionXml.getChild("name-node", ns).getTextTrim();
         Configuration conf = null;
         if (loadResources) {
-            conf = Services.get().get(HadoopAccessorService.class).createConfiguration(jobTracker);
+            conf = Services.get().get(HadoopAccessorService.class).createConfiguration(resourceManager);
         }
         else {
             conf = new Configuration(false);
         }
 
         conf.set(HADOOP_USER, context.getProtoActionConf().get(WorkflowAppService.HADOOP_USER));
-        conf.set(HADOOP_YARN_RM, jobTracker);
+        conf.set(HADOOP_YARN_RM, resourceManager);
         conf.set(HADOOP_NAME_NODE, nameNode);
         conf.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "true");
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java b/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
index c236daf..78b0652 100644
--- a/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
+++ b/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
@@ -107,9 +107,12 @@ public class LiteWorkflowAppParser {
 
     public static final String DEFAULT_NAME_NODE = "oozie.actions.default.name-node";
     public static final String DEFAULT_JOB_TRACKER = "oozie.actions.default.job-tracker";
+    public static final String DEFAULT_RESOURCE_MANAGER = "oozie.actions.default.resource-manager";
     public static final String OOZIE_GLOBAL = "oozie.wf.globalconf";
 
     private static final String JOB_TRACKER = "job-tracker";
+    private static final String RESOURCE_MANAGER = "resource-manager";
+
     private static final String NAME_NODE = "name-node";
     private static final String JOB_XML = "job-xml";
     private static final String CONFIGURATION = "configuration";
@@ -120,7 +123,9 @@ public class LiteWorkflowAppParser {
     private Class<? extends ActionNodeHandler> actionHandlerClass;
 
     private String defaultNameNode;
+    private String defaultResourceManager;
     private String defaultJobTracker;
+    private boolean isResourceManagerTagUsed;
 
     public LiteWorkflowAppParser(Schema schema,
                                  Class<? extends ControlNodeHandler> controlNodeHandler,
@@ -131,20 +136,21 @@ public class LiteWorkflowAppParser {
         this.decisionHandlerClass = decisionHandlerClass;
         this.actionHandlerClass = actionHandlerClass;
 
-        defaultNameNode = ConfigurationService.get(DEFAULT_NAME_NODE);
-        if (defaultNameNode != null) {
-            defaultNameNode = defaultNameNode.trim();
-            if (defaultNameNode.isEmpty()) {
-                defaultNameNode = null;
-            }
-        }
-        defaultJobTracker = ConfigurationService.get(DEFAULT_JOB_TRACKER);
-        if (defaultJobTracker != null) {
-            defaultJobTracker = defaultJobTracker.trim();
-            if (defaultJobTracker.isEmpty()) {
-                defaultJobTracker = null;
+        defaultNameNode = getPropertyFromConfig(DEFAULT_NAME_NODE);
+        defaultResourceManager = getPropertyFromConfig(DEFAULT_RESOURCE_MANAGER);
+        defaultJobTracker = getPropertyFromConfig(DEFAULT_JOB_TRACKER);
+    }
+
+    private String getPropertyFromConfig(final String configPropertyKey) {
+        String property = ConfigurationService.get(configPropertyKey);
+        if (property != null) {
+            property = property.trim();
+            if (property.isEmpty()) {
+                property = null;
             }
         }
+
+        return property;
     }
 
     public LiteWorkflowApp validateAndParse(Reader reader, Configuration jobConf) throws WorkflowException {
@@ -421,11 +427,14 @@ public class LiteWorkflowAppParser {
         GlobalSectionData gData = null;
         if (global != null) {
             String globalJobTracker = null;
-            Element globalJobTrackerElement = global.getChild(JOB_TRACKER, ns);
+            Element globalJobTrackerElement = getResourceManager(ns, global);
+            isResourceManagerTagUsed = globalJobTrackerElement != null
+                    && globalJobTrackerElement.getName().equals(RESOURCE_MANAGER);
             if (globalJobTrackerElement != null) {
                 globalJobTracker = globalJobTrackerElement.getValue();
             }
 
+
             String globalNameNode = null;
             Element globalNameNodeElement = global.getChild(NAME_NODE, ns);
             if (globalNameNodeElement != null) {
@@ -462,6 +471,14 @@ public class LiteWorkflowAppParser {
         return gData;
     }
 
+    private Element getResourceManager(final Namespace ns, final Element element) {
+        final Element resourceManager = element.getChild(RESOURCE_MANAGER, ns);
+        if (resourceManager != null) {
+            return resourceManager;
+        }
+        return element.getChild(JOB_TRACKER, ns);
+    }
+
     private void handleDefaultsAndGlobal(GlobalSectionData gData, Configuration configDefault, Element actionElement, Namespace ns)
             throws WorkflowException {
 
@@ -491,15 +508,17 @@ public class LiteWorkflowAppParser {
                     throw new WorkflowException(ErrorCode.E0701, "No " + NAME_NODE + " defined");
                 }
             }
-            if (actionElement.getChild(JOB_TRACKER, actionNs) == null &&
+            if (getResourceManager(actionNs, actionElement) == null &&
                     !FsActionExecutor.ACTION_TYPE.equals(actionElement.getName())) {
                 if (gData != null && gData.jobTracker != null) {
-                    addChildElement(actionElement, actionNs, JOB_TRACKER, gData.jobTracker);
+                    addResourceManagerOrJobTracker(actionElement, actionNs, gData.jobTracker, isResourceManagerTagUsed);
+                } else if (defaultResourceManager != null) {
+                    addResourceManagerOrJobTracker(actionElement, actionNs, defaultResourceManager, true);
                 } else if (defaultJobTracker != null) {
-                    addChildElement(actionElement, actionNs, JOB_TRACKER, defaultJobTracker);
+                    addResourceManagerOrJobTracker(actionElement, actionNs, defaultJobTracker, false);
                 } else if (!(SubWorkflowActionExecutor.ACTION_TYPE.equals(actionElement.getName()) ||
                         GLOBAL.equals(actionElement.getName()))) {
-                    throw new WorkflowException(ErrorCode.E0701, "No " + JOB_TRACKER + " defined");
+                    throw new WorkflowException(ErrorCode.E0701, "No " + JOB_TRACKER + " or " + RESOURCE_MANAGER + " defined");
                 }
             }
         }
@@ -568,4 +587,17 @@ public class LiteWorkflowAppParser {
             }
         }
     }
+
+    private void addResourceManagerOrJobTracker(final Element actionElement, final Namespace actionNs, final String jobTracker,
+                                                boolean isResourceManagerUsed) {
+        if (isResourceManagerUsed) {
+            addChildElement(actionElement, actionNs, RESOURCE_MANAGER, jobTracker);
+        } else {
+            addChildElement(actionElement, actionNs, JOB_TRACKER, jobTracker);
+        }
+    }
+
+    private void addResourceManager(final Element actionElement, final Namespace actionNs, final String jobTracker) {
+            addChildElement(actionElement, actionNs, RESOURCE_MANAGER, jobTracker);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/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 e53b17b..966dd29 100644
--- a/core/src/main/resources/oozie-default.xml
+++ b/core/src/main/resources/oozie-default.xml
@@ -1624,7 +1624,7 @@ will be the requeue interval for the actions which are waiting for a long time w
             hive-action-0.2.xsd,hive-action-0.3.xsd,hive-action-0.4.xsd,hive-action-0.5.xsd,hive-action-0.6.xsd,hive-action-1.0.xsd,
             sqoop-action-0.2.xsd,sqoop-action-0.3.xsd,sqoop-action-0.4.xsd,sqoop-action-1.0.xsd,
             ssh-action-0.1.xsd,ssh-action-0.2.xsd,
-            distcp-action-0.1.xsd,distcp-action-0.2.xsd,
+            distcp-action-0.1.xsd,distcp-action-0.2.xsd,distcp-action-1.0.xsd,
             oozie-sla-0.1.xsd,oozie-sla-0.2.xsd,
             hive2-action-0.1.xsd,hive2-action-0.2.xsd,hive2-action-1.0.xsd,
             spark-action-0.1.xsd,spark-action-0.2.xsd,spark-action-1.0.xsd
@@ -3042,6 +3042,17 @@ will be the requeue interval for the actions which are waiting for a long time w
     </property>
 
     <property>
+        <name>oozie.actions.default.resource-manager</name>
+        <value> </value>
+        <description>
+            The default value to use for the &lt;resource-manager&gt; element in applicable action types.  This value will be used
+            when neither the action itself nor the global section specifies a &lt;resource-managerr&gt;.  As expected, it should
+            be of the form "HOST:PORT". If both oozie.actions.default.job-tracker and oozie.actions.default.resource-manager are
+            specified, oozie.actions.default.resource-manager takes precedence.
+        </description>
+    </property>
+
+    <property>
         <name>oozie.service.SchemaCheckerService.check.interval</name>
         <value>168</value>
         <description>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/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 1cc569d..b55a3cd 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
@@ -386,6 +386,25 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase {
         assertEquals(WorkflowAction.Status.OK, context.getAction().getStatus());
     }
 
+
+    public void testSimplestSubmitWithResourceManagerOK() throws Exception {
+        final String actionXml = "<java>" +
+                "<resource-manager>" + getJobTrackerUri() + "</resource-manager>" +
+                "<name-node>" + getNameNodeUri() + "</name-node>" +
+                "<main-class>" + LauncherMainTester.class.getName() + "</main-class>" +
+                "</java>";
+        final Context context = createContext(actionXml, null);
+        submitAction(context);
+        waitUntilYarnAppDoneAndAssertSuccess(context.getAction().getExternalId());
+        final ActionExecutor ae = new JavaActionExecutor();
+        ae.check(context, context.getAction());
+        assertEquals("SUCCEEDED", context.getAction().getExternalStatus());
+        assertNull(context.getAction().getData());
+
+        ae.end(context, context.getAction());
+        assertEquals(WorkflowAction.Status.OK, context.getAction().getStatus());
+    }
+
     public void testOutputSubmitOK() throws Exception {
         String actionXml = "<java>" +
                 "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
@@ -2246,27 +2265,21 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase {
         String config = addConfig ? "<configuration>" +
                 "<property><name>action.foo</name><value>AA</value></property>" +
                 "</configuration>" : "";
-        return "<java>" + "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
+        return "<java>" +
+                "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
                 "<name-node>" + getNameNodeUri() + "</name-node>" +
                 config +
                 "<main-class>MAIN-CLASS</main-class>" +
                 "</java>";
     }
 
-    private String createTestWorkflowXml() throws IOException {
+    private String createTestWorkflowXml(final String globalXml, final String actionXml) throws IOException {
         String workflowUri = getTestCaseFileUri("workflow.xml");
-        String appXml = "<workflow-app xmlns=\"uri:oozie:workflow:0.4\" name=\"workflow\">" +
-                "<global>" +
-                "   <configuration>" +
-                "        <property>" +
-                "            <name>action.foo</name>" +
-                "            <value>foo2</value>" +
-                "        </property>" +
-                "    </configuration>" +
-                "</global>" +
+        String appXml = "<workflow-app xmlns=\"uri:oozie:workflow:1.0\" name=\"workflow\">" +
+                globalXml +
                 "<start to=\"java\"/>" +
                 "<action name=\"java\">" +
-                getJavaActionXml(false)+
+                  actionXml +
                 "     <ok to=\"end\"/>" +
                 "     <error to=\"fail\"/>" +
                 "</action>" +
@@ -2284,7 +2297,7 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase {
 
     public void testGlobalConfigurationWithActionDefaults() throws Exception {
         try {
-            String workflowUri = createTestWorkflowXml();
+            String workflowUri = createTestWorkflowXml(getWorkflowGlobalXml(), getJavaActionXml(false));
             LocalOozie.start();
             final OozieClient wfClient = LocalOozie.getClient();
             Properties conf = wfClient.createConfiguration();
@@ -2313,6 +2326,39 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase {
         }
     }
 
+    public void testResourceManagerInGlobalConfigurationCanBeOverridenWithJobTrackerInAction() throws Exception {
+        try {
+            final String global = "<global>" +
+                    "<resource-manager>RM</resource-manager>"+
+                    "</global>";
+
+            final String workflowUri = createTestWorkflowXml(global, getJavaActionXml(false));
+            LocalOozie.start();
+            final OozieClient wfClient = LocalOozie.getClient();
+            final Properties conf = wfClient.createConfiguration();
+            conf.setProperty(OozieClient.APP_PATH, workflowUri);
+            conf.setProperty(OozieClient.USER_NAME, getTestUser());
+            conf.setProperty("appName", "var-app-name");
+            final String jobId = wfClient.submit(conf);
+            wfClient.start(jobId);
+            WorkflowJob workflow = wfClient.getJobInfo(jobId);
+            waitFor(20 * 1000, new Predicate() {
+                @Override
+                public boolean evaluate() throws Exception {
+                    WorkflowAction javaAction = getJavaAction(wfClient.getJobInfo(jobId));
+                    return javaAction != null && !javaAction.getStatus().equals("PREP");
+                }
+            });
+            final WorkflowAction workflowAction = getJavaAction(workflow);
+            final String actualConfig = workflowAction.getConf();
+            final String actualJobTrackerURI = XmlUtils.parseXml(actualConfig).getChildTextNormalize("job-tracker", null);
+            assertEquals(getJobTrackerUri(), actualJobTrackerURI);
+
+        } finally {
+            LocalOozie.stop();
+        }
+    }
+
     private WorkflowAction getJavaAction(WorkflowJob workflowJob){
         List<WorkflowAction> actions = workflowJob.getActions();
         for(WorkflowAction wa : actions){
@@ -2676,4 +2722,15 @@ public class TestJavaActionExecutor extends ActionExecutorTestCase {
         assertEquals(FinalApplicationStatus.KILLED,
                 yarnClient.getApplicationReport(ConverterUtils.toApplicationId(runningJob)).getFinalApplicationStatus());
     }
+
+    public String getWorkflowGlobalXml() {
+        return "<global>" +
+               "   <configuration>" +
+               "        <property>" +
+               "            <name>action.foo</name>" +
+               "            <value>foo2</value>" +
+               "        </property>" +
+               "    </configuration>" +
+               "</global>";
+    }
 }

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java b/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
index 2cdbde4..f5baf6b 100644
--- a/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
+++ b/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
@@ -67,10 +67,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobal() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-            LiteWorkflowStoreService.LiteControlNodeHandler.class,
-            LiteWorkflowStoreService.LiteDecisionHandler.class,
-            LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global.xml", -1),
                 new Configuration());
@@ -107,10 +104,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalJobXML() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-            LiteWorkflowStoreService.LiteControlNodeHandler.class,
-            LiteWorkflowStoreService.LiteDecisionHandler.class,
-            LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global-jobXml.xml", -1),
                 new Configuration());
@@ -150,10 +144,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalLocalAlreadyExists() throws Exception{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global.xml", -1),
                 new Configuration());
@@ -188,10 +179,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalExtensionActions() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-            LiteWorkflowStoreService.LiteControlNodeHandler.class,
-            LiteWorkflowStoreService.LiteDecisionHandler.class,
-            LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global-ext.xml", -1),
                 new Configuration());
@@ -228,10 +216,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalExtensionActionsLocalAlreadyExists() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-            LiteWorkflowStoreService.LiteControlNodeHandler.class,
-            LiteWorkflowStoreService.LiteDecisionHandler.class,
-            LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global-ext.xml", -1),
                 new Configuration());
@@ -263,10 +248,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalExtensionActionsNotApplicable() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // Not all actions want a JT, NN, conf, or jobxml (e.g. email action)
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global-ext.xml", -1),
@@ -284,10 +266,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalExtensionActionsNoGlobal() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-            LiteWorkflowStoreService.LiteControlNodeHandler.class,
-            LiteWorkflowStoreService.LiteDecisionHandler.class,
-            LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // If no global section is defined, some extension actions (e.g. hive) must still have name-node and job-tracker elements
         // or the handleGlobal() method will throw an exception
@@ -309,10 +288,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserDefaultNameNode() throws Exception {
         ConfigurationService.set("oozie.actions.default.name-node", "default-nn");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-no-namenode.xml", -1),
                 new Configuration());
@@ -341,10 +317,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserDefaultNameNodeWithGlobal() throws Exception {
         ConfigurationService.set("oozie.actions.default.name-node", "default-nn");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-no-namenode-global.xml", -1),
                 new Configuration());
@@ -373,10 +346,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserDefaultNameNodeNotApplicable() throws Exception {
         ConfigurationService.set("oozie.actions.default.name-node", "default-nn");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // Not all actions want a NN (e.g. email action)
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-no-namenode.xml", -1),
@@ -393,10 +363,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserDefaultNameNodeFail() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // No default NN is set
         try {
@@ -411,10 +378,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserDefaultJobTracker() throws Exception {
         ConfigurationService.set("oozie.actions.default.job-tracker", "default-jt");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-no-jobtracker.xml", -1),
                 new Configuration());
@@ -443,10 +407,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserDefaultJobTrackerWithGlobal() throws Exception {
         ConfigurationService.set("oozie.actions.default.job-tracker", "default-jt");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-no-jobtracker-global.xml", -1),
                 new Configuration());
@@ -475,10 +436,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserDefaultJobTrackerNotApplicable() throws Exception {
         ConfigurationService.set("oozie.actions.default.job-tracker", "default-jt");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // Not all actions want a NN (e.g. email action)
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-no-jobtracker.xml", -1),
@@ -495,10 +453,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserDefaultJobTrackerFail() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // No default NN is set
         try {
@@ -507,15 +462,12 @@ public class TestLiteWorkflowAppParser extends XTestCase {
             fail();
         } catch (WorkflowException e) {
             assertEquals(ErrorCode.E0701, e.getErrorCode());
-            assertTrue(e.getMessage().contains("No job-tracker defined"));
+            assertTrue(e.getMessage().contains("E0701: XML schema error, No job-tracker or resource-manager defined"));
         }
     }
 
     public void testParserSubWorkflowPropagateNoGlobal() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(
                 IOUtils.getResourceAsReader("wf-schema-subworkflow-propagate-no-global.xml", -1),
@@ -533,10 +485,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserFsGlobalNN() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-fs-no-namenode-global.xml", -1),
                 new Configuration());
@@ -562,10 +511,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     public void testParserFsDefaultNN() throws Exception {
         ConfigurationService.set("oozie.actions.default.name-node", "default-nn");
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-fs-no-namenode.xml", -1),
                 new Configuration());
@@ -590,10 +536,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserFsNoNN() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-fs-no-namenode.xml", -1),
                 new Configuration());
@@ -618,10 +561,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParser() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                                                                 LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                                                                 LiteWorkflowStoreService.LiteDecisionHandler.class,
-                                                                 LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid.xml", -1), new Configuration());
 
@@ -661,10 +601,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalLauncherAM() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp workflowApp = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-global-launcherconf.xml", -1), new Configuration());
 
@@ -681,10 +618,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testParserGlobalLauncherAMOverridden() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp workflowApp = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-global-launcherconf-override.xml", -1), new Configuration());
 
@@ -703,12 +637,9 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      * 2->ok->end
      */
    public void testWfNoForkJoin() throws WorkflowException  {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+       LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
-        LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
+       LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
             .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "two", "three"))
             .addNode(new ActionNodeDef("two", dummyConf, TestActionNodeHandler.class, "end", "end"))
@@ -728,10 +659,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     (2,3)->j
     */
     public void testSimpleForkJoin() throws WorkflowException {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp def = new LiteWorkflowApp("wf", "<worklfow-app/>",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -763,10 +691,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      7->j
     */
     public void testNestedForkJoin() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp def = new LiteWorkflowApp("testWf", "<worklfow-app/>",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -800,10 +725,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
       3->end
     */
     public void testForkJoinFailure() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp def = new LiteWorkflowApp("testWf", "<worklfow-app/>",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -839,10 +761,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      j2-end
     */
     public void testNestedForkJoinFailure() throws WorkflowException {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp def = new LiteWorkflowApp("testWf", "<worklfow-app/>",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -879,10 +798,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      j->k
     */
     public void testTransitionFailure1() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -914,10 +830,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     j->end
    */
    public void testTransition2() throws WorkflowException{
-       LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-               LiteWorkflowStoreService.LiteControlNodeHandler.class,
-               LiteWorkflowStoreService.LiteDecisionHandler.class,
-               LiteWorkflowStoreService.LiteActionHandler.class);
+       LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
        LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
        new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -950,10 +863,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
    j->end
   */
    public void testTransition3() throws WorkflowException{
-       LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-               LiteWorkflowStoreService.LiteControlNodeHandler.class,
-               LiteWorkflowStoreService.LiteDecisionHandler.class,
-               LiteWorkflowStoreService.LiteActionHandler.class);
+       LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
        LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
        new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -988,10 +898,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     * 6->k
     */
    public void testErrorTransitionForkJoin() throws WorkflowException {
-       LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-               LiteWorkflowStoreService.LiteControlNodeHandler.class,
-               LiteWorkflowStoreService.LiteDecisionHandler.class,
-               LiteWorkflowStoreService.LiteActionHandler.class);
+       LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
        LiteWorkflowApp def = new LiteWorkflowApp("wf", "<worklfow-app/>",
        new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
@@ -1026,10 +933,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     3->j
     */
     public void testDecisionForkJoin() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1060,10 +964,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     5->j
     */
     public void testDecisionsToJoinForkJoin() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1095,10 +996,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     5->j
     */
     public void testDecisionsToKillForkJoin() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1132,10 +1030,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      *j->end
      */
     public void testDecisionForkJoinFailure() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1169,10 +1064,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      *j->end
      */
     public void testDecisionToEndForkJoinFailure() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1207,10 +1099,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      *j->end
      */
     public void testDecisionTwoPathsForkJoin() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1243,10 +1132,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      *j->end
      */
     public void testMultipleDecisionThreePathsForkJoin() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1281,10 +1167,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      *j->end
      */
     public void testMultipleDecisionThreePathsForkJoinFailure() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1322,10 +1205,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      *j->end
      */
     public void testMultipleDecisionThreePathsForkJoinFailure2() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new ActionNodeDef("one", dummyConf, TestActionNodeHandler.class, "f","end"))
@@ -1363,10 +1243,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      * j2->end
      */
     public void testDecisionMultipleForks() throws WorkflowException{
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
         new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "one"))
         .addNode(new DecisionNodeDef("one", dummyConf, TestDecisionNodeHandler.class,
@@ -1403,10 +1280,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      * f2->k,k
      */
     public void testForkJoinMismatch() throws WorkflowException {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "f"))
         .addNode(new ForkNodeDef("f", LiteWorkflowStoreService.LiteControlNodeHandler.class,
@@ -1438,10 +1312,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
      * j->end
      */
     public void testForkJoinDuplicateTransitionsFromFork() throws WorkflowException {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         LiteWorkflowApp def = new LiteWorkflowApp("name", "def",
             new StartNodeDef(LiteWorkflowStoreService.LiteControlNodeHandler.class, "f"))
         .addNode(new ForkNodeDef("f", LiteWorkflowStoreService.LiteControlNodeHandler.class,
@@ -1463,10 +1334,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     @SuppressWarnings("deprecation")
     public void testForkJoinValidationTime() throws Exception {
-        final LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class,
-                LiteWorkflowStoreService.LiteActionHandler.class);
+        final LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         final LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-long.xml", -1),
                 new Configuration());
@@ -1500,9 +1368,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testMultipleErrorTransitions() throws WorkflowException, IOException {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class, LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         try {
             parser.validateAndParse(IOUtils.getResourceAsReader(
                     "wf-multiple-error-parent.xml", -1), new Configuration());
@@ -1513,9 +1379,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testOkToTransitionToKillTransitions() throws WorkflowException, IOException {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class, LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
         try {
 
             parser.validateAndParse(IOUtils.getResourceAsReader(
@@ -1588,10 +1452,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
     }
 
     public void testDisableWFValidateForkJoin() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-            LiteWorkflowStoreService.LiteControlNodeHandler.class,
-            LiteWorkflowStoreService.LiteDecisionHandler.class,
-            LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         // oozie level default, wf level default
         try {
@@ -1660,9 +1521,7 @@ public class TestLiteWorkflowAppParser extends XTestCase {
 
     // Test parameterization of retry-max and retry-interval
     public void testParameterizationRetry() throws Exception {
-        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
-                LiteWorkflowStoreService.LiteControlNodeHandler.class,
-                LiteWorkflowStoreService.LiteDecisionHandler.class, LiteWorkflowStoreService.LiteActionHandler.class);
+        LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
 
         String wf = "<workflow-app xmlns=\"uri:oozie:workflow:0.5\" name=\"test\" > "
                 + "<global> <job-tracker>localhost</job-tracker><name-node>localhost</name-node></global>"
@@ -1677,6 +1536,86 @@ public class TestLiteWorkflowAppParser extends XTestCase {
         assertEquals(app.getNode("retry").getUserRetryInterval(), "10");
     }
 
+    public void testWorkflowWithGlobalLevelResourceManager() throws Exception {
+        final LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
+
+        final String wf = "<workflow-app xmlns=\"uri:oozie:workflow:1.0\" name=\"test\" > " +
+                "<global>" +
+                "   <resource-manager>localhost</resource-manager>" +
+                "  <name-node>localhost</name-node>" +
+                "</global>" +
+                "<start to=\"test\"/>" +
+                "<action name=\"test\">" +
+                "  <java>" +
+                "    <main-class>com.retry</main-class>" +
+                "  </java>" +
+                "  <ok to=\"end\"/>" +
+                "  <error to=\"end\"/>" +
+                "</action>" +
+                "<end name=\"end\"/>" +
+                "</workflow-app>";
+
+        final Configuration conf = new Configuration();
+        final LiteWorkflowApp app = parser.validateAndParse(new StringReader(wf), conf);
+        assertTrue(app.getNode("test").getConf().contains("resource-manager"));
+    }
+
+    public void testWorkflowWithActionLevelResourceManager() throws Exception {
+        final LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
+
+        final String wf = "<workflow-app xmlns=\"uri:oozie:workflow:1.0\" name=\"test\" > " +
+                "<start to=\"test\"/>" +
+                "<action name=\"test\">" +
+                "  <java>" +
+                "    <resource-manager>resourceManager</resource-manager>" +
+                "    <name-node>localhost</name-node>" +
+                "    <main-class>com.retry</main-class>" +
+                "  </java>" +
+                "  <ok to=\"end\"/>" +
+                "  <error to=\"end\"/>" +
+                "</action>" +
+                "<end name=\"end\"/>" +
+                "</workflow-app>";
+
+        final Configuration conf = new Configuration();
+        final LiteWorkflowApp app = parser.validateAndParse(new StringReader(wf), conf);
+        assertTrue(app.getNode("test").getConf().contains("resource-manager"));
+    }
+
+    public void testWorkflowWithGlobalLevelResourceManagerAndActionLevelJobTracker() throws Exception {
+        final LiteWorkflowAppParser parser = newLiteWorkflowAppParser();
+
+        final String wf = "<workflow-app xmlns=\"uri:oozie:workflow:1.0\" name=\"test\" > " +
+                "<global>" +
+                "   <resource-manager>jobtracker</resource-manager>" +
+                "  <name-node>localhost</name-node>" +
+                "</global>" +
+                "<start to=\"test\"/>" +
+                "<action name=\"test\">" +
+                "  <java>" +
+                "    <job-tracker>localhost</job-tracker>" +
+                "    <name-node>localhost</name-node>" +
+                "    <main-class>com.retry</main-class>" +
+                "  </java>" +
+                "  <ok to=\"end\"/>" +
+                "  <error to=\"end\"/>" +
+                "</action>" +
+                "<end name=\"end\"/>" +
+                "</workflow-app>";
+
+        final Configuration conf = new Configuration();
+        final LiteWorkflowApp app = parser.validateAndParse(new StringReader(wf), conf);
+        final XConfiguration actualActionConfig = extractConfig(app, "test");
+
+        assertTrue(app.getNode("test").getConf().contains("job-tracker"));
+    }
+
+    private LiteWorkflowAppParser newLiteWorkflowAppParser() throws WorkflowException {
+        return new LiteWorkflowAppParser(null,
+                    LiteWorkflowStoreService.LiteControlNodeHandler.class,
+                    LiteWorkflowStoreService.LiteDecisionHandler.class, LiteWorkflowStoreService.LiteActionHandler.class);
+    }
+
     private XConfiguration extractConfig(LiteWorkflowApp app, String actionNode) throws Exception {
         String confXML = app.getNode(actionNode).getConf();
         Element confElement = XmlUtils.parseXml(confXML);

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/aggregator/coordinator-with-offset.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/aggregator/coordinator-with-offset.xml b/examples/src/main/apps/aggregator/coordinator-with-offset.xml
index 4c35167..710d0a9 100644
--- a/examples/src/main/apps/aggregator/coordinator-with-offset.xml
+++ b/examples/src/main/apps/aggregator/coordinator-with-offset.xml
@@ -51,8 +51,8 @@
             <app-path>${nameNode}/user/${coord:user()}/${examplesRoot}/apps/aggregator</app-path>
             <configuration>
                 <property>
-                    <name>jobTracker</name>
-                    <value>${jobTracker}</value>
+                    <name>resourceManager</name>
+                    <value>${resourceManager}</value>
                 </property>
                 <property>
                     <name>nameNode</name>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/aggregator/coordinator.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/aggregator/coordinator.xml b/examples/src/main/apps/aggregator/coordinator.xml
index 948edc1..7d48d91 100644
--- a/examples/src/main/apps/aggregator/coordinator.xml
+++ b/examples/src/main/apps/aggregator/coordinator.xml
@@ -48,8 +48,8 @@
             <app-path>${nameNode}/user/${coord:user()}/${examplesRoot}/apps/aggregator</app-path>
             <configuration>
                 <property>
-                    <name>jobTracker</name>
-                    <value>${jobTracker}</value>
+                    <name>resourceManager</name>
+                    <value>${resourceManager}</value>
                 </property>
                 <property>
                     <name>nameNode</name>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/aggregator/job-with-offset.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/aggregator/job-with-offset.properties b/examples/src/main/apps/aggregator/job-with-offset.properties
index 9a28ae1..ea4857d 100644
--- a/examples/src/main/apps/aggregator/job-with-offset.properties
+++ b/examples/src/main/apps/aggregator/job-with-offset.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8021
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/aggregator/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/aggregator/job.properties b/examples/src/main/apps/aggregator/job.properties
index aaf4edf..8589484 100644
--- a/examples/src/main/apps/aggregator/job.properties
+++ b/examples/src/main/apps/aggregator/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/aggregator/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/aggregator/workflow.xml b/examples/src/main/apps/aggregator/workflow.xml
index 4a80109..5de4a21 100644
--- a/examples/src/main/apps/aggregator/workflow.xml
+++ b/examples/src/main/apps/aggregator/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.2" name="aggregator-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="aggregator-wf">
     <start to="aggregator"/>
     <action name="aggregator">
         <map-reduce>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${outputData}"/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/bundle/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/bundle/job.properties b/examples/src/main/apps/bundle/job.properties
index c06edeb..b5db5a7 100644
--- a/examples/src/main/apps/bundle/job.properties
+++ b/examples/src/main/apps/bundle/job.properties
@@ -18,7 +18,7 @@
 
 oozie.bundle.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/bundle
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 outputDir=bundle
 examplesRoot=examples

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/coord-input-logic/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/coord-input-logic/job.properties b/examples/src/main/apps/coord-input-logic/job.properties
index 2cd137b..d62fbc8 100644
--- a/examples/src/main/apps/coord-input-logic/job.properties
+++ b/examples/src/main/apps/coord-input-logic/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:9000
-jobTracker=localhost:9001
+resourceManager=localhost:9001
 queueName=default
 examplesRoot=examples
 oozie.coord.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/coord-input-logic/coordinator.xml

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/coord-input-logic/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/coord-input-logic/workflow.xml b/examples/src/main/apps/coord-input-logic/workflow.xml
index 80d3145..b72b1ff 100644
--- a/examples/src/main/apps/coord-input-logic/workflow.xml
+++ b/examples/src/main/apps/coord-input-logic/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.2" name="coord-input-logic-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="coord-input-logic-wf">
     <start to="aggregator"/>
     <action name="aggregator">
         <map-reduce>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${outputData}"/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/cron-schedule/coordinator.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/cron-schedule/coordinator.xml b/examples/src/main/apps/cron-schedule/coordinator.xml
index 48a7de7..4c4d5b4 100644
--- a/examples/src/main/apps/cron-schedule/coordinator.xml
+++ b/examples/src/main/apps/cron-schedule/coordinator.xml
@@ -22,8 +22,8 @@
             <app-path>${workflowAppUri}</app-path>
             <configuration>
                 <property>
-                    <name>jobTracker</name>
-                    <value>${jobTracker}</value>
+                    <name>resourceManager</name>
+                    <value>${resourceManager}</value>
                 </property>
                 <property>
                     <name>nameNode</name>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/cron-schedule/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/cron-schedule/job.properties b/examples/src/main/apps/cron-schedule/job.properties
index 5b5eb43..a2b8d13 100644
--- a/examples/src/main/apps/cron-schedule/job.properties
+++ b/examples/src/main/apps/cron-schedule/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/cron-schedule/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/cron-schedule/workflow.xml b/examples/src/main/apps/cron-schedule/workflow.xml
index b53922c..f7787d1 100644
--- a/examples/src/main/apps/cron-schedule/workflow.xml
+++ b/examples/src/main/apps/cron-schedule/workflow.xml
@@ -15,7 +15,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.2" name="no-op-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="no-op-wf">
     <start to="end"/>
     <end name="end"/>
 </workflow-app>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/cron/coordinator.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/cron/coordinator.xml b/examples/src/main/apps/cron/coordinator.xml
index 744d14e..3e3cdd0 100644
--- a/examples/src/main/apps/cron/coordinator.xml
+++ b/examples/src/main/apps/cron/coordinator.xml
@@ -22,8 +22,8 @@
             <app-path>${workflowAppUri}</app-path>
             <configuration>
                 <property>
-                    <name>jobTracker</name>
-                    <value>${jobTracker}</value>
+                    <name>resourceManager</name>
+                    <value>${resourceManager}</value>
                 </property>
                 <property>
                     <name>nameNode</name>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/cron/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/cron/job.properties b/examples/src/main/apps/cron/job.properties
index 42875fd..696818b 100644
--- a/examples/src/main/apps/cron/job.properties
+++ b/examples/src/main/apps/cron/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/cron/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/cron/workflow.xml b/examples/src/main/apps/cron/workflow.xml
index 63dff97..3730fef 100644
--- a/examples/src/main/apps/cron/workflow.xml
+++ b/examples/src/main/apps/cron/workflow.xml
@@ -15,7 +15,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.5" name="one-op-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="one-op-wf">
     <start to="action1"/>
     <action name="action1">
         <fs/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/custom-main/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/custom-main/job.properties b/examples/src/main/apps/custom-main/job.properties
index b897512..75c647d 100644
--- a/examples/src/main/apps/custom-main/job.properties
+++ b/examples/src/main/apps/custom-main/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/custom-main/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/custom-main/workflow.xml b/examples/src/main/apps/custom-main/workflow.xml
index 828dfaa..0f67c7c 100644
--- a/examples/src/main/apps/custom-main/workflow.xml
+++ b/examples/src/main/apps/custom-main/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.2" name="custom-main-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="custom-main-wf">
     <start to="mr-node"/>
     <action name="mr-node">
         <map-reduce>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/custom-main/mr-node"/>
@@ -72,7 +72,7 @@
 
     <action name="pig-node">
         <pig>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/custom-main/pig-node"/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/datelist-java-main/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/datelist-java-main/job.properties b/examples/src/main/apps/datelist-java-main/job.properties
index e8356e3..2bdf216 100644
--- a/examples/src/main/apps/datelist-java-main/job.properties
+++ b/examples/src/main/apps/datelist-java-main/job.properties
@@ -16,7 +16,7 @@
 # limitations under the License.
 #
 
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 nameNode=hdfs://localhost:8020
 queueName=default
 START=2009-02-01T01:00Z

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/datelist-java-main/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/datelist-java-main/workflow.xml b/examples/src/main/apps/datelist-java-main/workflow.xml
index b59a12e..d5eb528 100644
--- a/examples/src/main/apps/datelist-java-main/workflow.xml
+++ b/examples/src/main/apps/datelist-java-main/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns='uri:oozie:workflow:0.2' name='datelist-java-main-wf'>
+<workflow-app xmlns='uri:oozie:workflow:1.0' name='datelist-java-main-wf'>
     <start to='java1' />
     <action name='java1'>
         <java>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <configuration>
                 <property>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/demo/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/demo/job.properties b/examples/src/main/apps/demo/job.properties
index d70d320..a590d28 100644
--- a/examples/src/main/apps/demo/job.properties
+++ b/examples/src/main/apps/demo/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 streamingMapper=/bin/cat

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/demo/job.windows.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/demo/job.windows.properties b/examples/src/main/apps/demo/job.windows.properties
index ea948b2..1b96bda 100644
--- a/examples/src/main/apps/demo/job.windows.properties
+++ b/examples/src/main/apps/demo/job.windows.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8021
 queueName=default
 examplesRoot=examples
 streamingMapper=powershell -command "$input | Write-Host"

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/demo/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/demo/workflow.xml b/examples/src/main/apps/demo/workflow.xml
index 0ceca50..3fd9d1b 100644
--- a/examples/src/main/apps/demo/workflow.xml
+++ b/examples/src/main/apps/demo/workflow.xml
@@ -15,7 +15,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.2" name="demo-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="demo-wf">
 
     <start to="cleanup-node"/>
 
@@ -34,7 +34,7 @@
 
     <action name="pig-node">
         <pig>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/demo/pig-node"/>
@@ -59,7 +59,7 @@
 
     <action name="streaming-node">
         <map-reduce>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/demo/streaming-node"/>
@@ -93,7 +93,7 @@
     
     <action name="mr-node">
         <map-reduce>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/demo/mr-node"/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/distcp/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/distcp/job.properties b/examples/src/main/apps/distcp/job.properties
index ec9422c..0bc6ded 100644
--- a/examples/src/main/apps/distcp/job.properties
+++ b/examples/src/main/apps/distcp/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/distcp/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/distcp/workflow.xml b/examples/src/main/apps/distcp/workflow.xml
index 6deecb3..d957e3b 100644
--- a/examples/src/main/apps/distcp/workflow.xml
+++ b/examples/src/main/apps/distcp/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.3" name="distcp-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="distcp-wf">
     <start to="distcp-node"/>
     <action name="distcp-node">
-        <distcp xmlns="uri:oozie:distcp-action:0.1">
-            <job-tracker>${jobTracker}</job-tracker>
+        <distcp xmlns="uri:oozie:distcp-action:1.0">
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/${outputDir}"/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hadoop-el/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hadoop-el/job.properties b/examples/src/main/apps/hadoop-el/job.properties
index 1d13c27..961ed6c 100644
--- a/examples/src/main/apps/hadoop-el/job.properties
+++ b/examples/src/main/apps/hadoop-el/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hadoop-el/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hadoop-el/workflow.xml b/examples/src/main/apps/hadoop-el/workflow.xml
index d4094d4..8852bfb 100644
--- a/examples/src/main/apps/hadoop-el/workflow.xml
+++ b/examples/src/main/apps/hadoop-el/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.2" name="hadoop-el-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="hadoop-el-wf">
     <start to="mr-node"/>
     <action name="mr-node">
         <map-reduce>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <prepare>
                 <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data/hadoop-el"/>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hcatalog/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hcatalog/job.properties b/examples/src/main/apps/hcatalog/job.properties
index e0aa18c..1ded953 100644
--- a/examples/src/main/apps/hcatalog/job.properties
+++ b/examples/src/main/apps/hcatalog/job.properties
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples
 oozie.use.system.libpath=true

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hcatalog/job.properties.security
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hcatalog/job.properties.security b/examples/src/main/apps/hcatalog/job.properties.security
index 2fbcc6e..d1c59c3 100644
--- a/examples/src/main/apps/hcatalog/job.properties.security
+++ b/examples/src/main/apps/hcatalog/job.properties.security
@@ -17,7 +17,7 @@
 #
 
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8021
 queueName=default
 examplesRoot=examples
 oozie.use.system.libpath=true

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hcatalog/workflow.xml
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hcatalog/workflow.xml b/examples/src/main/apps/hcatalog/workflow.xml
index d6593df..fa832f9 100644
--- a/examples/src/main/apps/hcatalog/workflow.xml
+++ b/examples/src/main/apps/hcatalog/workflow.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.5" name="pig-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="pig-wf">
     <start to="pig-node"/>
     <action name="pig-node">
         <pig>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <configuration>
                 <property>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hcatalog/workflow.xml.security
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hcatalog/workflow.xml.security b/examples/src/main/apps/hcatalog/workflow.xml.security
index aa3522a..d07bf92 100644
--- a/examples/src/main/apps/hcatalog/workflow.xml.security
+++ b/examples/src/main/apps/hcatalog/workflow.xml.security
@@ -15,7 +15,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<workflow-app xmlns="uri:oozie:workflow:0.5" name="pig-wf">
+<workflow-app xmlns="uri:oozie:workflow:1.0" name="pig-wf">
     <credentials>
       <credential name='hcatauth' type='hcat'>
          <property>
@@ -31,7 +31,7 @@
     <start to="pig-node"/>
     <action name="pig-node" cred="hcatauth">
         <pig>
-            <job-tracker>${jobTracker}</job-tracker>
+            <resource-manager>${resourceManager}</resource-manager>
             <name-node>${nameNode}</name-node>
             <configuration>
                 <property>

http://git-wip-us.apache.org/repos/asf/oozie/blob/da8e5b51/examples/src/main/apps/hive/job.properties
----------------------------------------------------------------------
diff --git a/examples/src/main/apps/hive/job.properties b/examples/src/main/apps/hive/job.properties
index dbc7ad2..6b3194a 100644
--- a/examples/src/main/apps/hive/job.properties
+++ b/examples/src/main/apps/hive/job.properties
@@ -16,7 +16,7 @@
 # limitations under the License.
 #
 nameNode=hdfs://localhost:8020
-jobTracker=localhost:8021
+resourceManager=localhost:8032
 queueName=default
 examplesRoot=examples