You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by tu...@apache.org on 2012/08/13 19:00:24 UTC

svn commit: r1372512 - in /incubator/oozie/trunk: core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java release-log.txt

Author: tucu
Date: Mon Aug 13 17:00:24 2012
New Revision: 1372512

URL: http://svn.apache.org/viewvc?rev=1372512&view=rev
Log:
OOZIE-926 handling of global configuration is not correct (bcyr via tucu)

Modified:
    incubator/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
    incubator/oozie/trunk/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
    incubator/oozie/trunk/release-log.txt

Modified: incubator/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java?rev=1372512&r1=1372511&r2=1372512&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java (original)
+++ incubator/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/LiteWorkflowAppParser.java Mon Aug 13 17:00:24 2012
@@ -453,6 +453,7 @@ public class LiteWorkflowAppParser {
         if (global != null) {
             Element globalJobTracker = global.getChild("job-tracker", ns);
             Element globalNameNode = global.getChild("name-node", ns);
+            List<Element> globalJobXml = global.getChildren("job-xml", ns);
             Element globalConfiguration = global.getChild("configuration", ns);
 
             if (globalJobTracker != null && eActionConf.getChild("job-tracker", actionNs) == null) {
@@ -467,6 +468,25 @@ public class LiteWorkflowAppParser {
                 eActionConf.addContent(nameNode);
             }
 
+            if (!globalJobXml.isEmpty()) {
+                List<Element> actionJobXml = eActionConf.getChildren("job-xml", actionNs);
+                for(Element jobXml: globalJobXml){
+                    boolean alreadyExists = false;
+                    for(Element actionXml: actionJobXml){
+                        if(jobXml.getText().equals(actionXml.getText())){
+                            alreadyExists = true;
+                        }
+                    }
+
+                    if (!alreadyExists){
+                        Element ejobXml = new Element("job-xml", actionNs);
+                        ejobXml.setText(jobXml.getText());
+                        eActionConf.addContent(ejobXml);
+                    }
+
+                }
+            }
+
             if (globalConfiguration != null) {
                 Element actionConfiguration = eActionConf.getChild("configuration", actionNs);
                 if (actionConfiguration == null) {

Modified: incubator/oozie/trunk/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java?rev=1372512&r1=1372511&r2=1372512&view=diff
==============================================================================
--- incubator/oozie/trunk/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java (original)
+++ incubator/oozie/trunk/core/src/test/java/org/apache/oozie/workflow/lite/TestLiteWorkflowAppParser.java Mon Aug 13 17:00:24 2012
@@ -100,6 +100,48 @@ public class TestLiteWorkflowAppParser e
 
     }
 
+    public void testParserGlobalJobXML() throws Exception {
+        LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
+            LiteWorkflowStoreService.LiteControlNodeHandler.class,
+            LiteWorkflowStoreService.LiteDecisionHandler.class,
+            LiteWorkflowStoreService.LiteActionHandler.class);
+
+        LiteWorkflowApp app = parser.validateAndParse(IOUtils.getResourceAsReader("wf-schema-valid-global-jobXml.xml", -1),
+                new Configuration());
+
+        String d = app.getNode("d").getConf();
+        String expectedD =
+             "<map-reduce xmlns=\"uri:oozie:workflow:0.4\">\r\n" +
+             "  <prepare>\r\n" +
+             "    <delete path=\"/tmp\" />\r\n" +
+             "    <mkdir path=\"/tmp\" />\r\n" +
+             "  </prepare>\r\n" +
+             "  <streaming>\r\n" +
+             "    <mapper>/mycat.sh</mapper>\r\n" +
+             "    <reducer>/mywc.sh</reducer>\r\n" +
+             "  </streaming>\r\n" +
+             "  <job-xml>/tmp</job-xml>\r\n" +
+             "  <file>/tmp</file>\r\n" +
+             "  <archive>/tmp</archive>\r\n" +
+             "  <job-tracker>foo</job-tracker>\r\n" +
+             "  <name-node>bar</name-node>\r\n" +
+             "  <job-xml>/spam1</job-xml>\r\n" +
+             "  <job-xml>/spam2</job-xml>\r\n" +
+             "  <configuration>\r\n" +
+             "    <property>\r\n" +
+             "      <name>a</name>\r\n" +
+             "      <value>A</value>\r\n" +
+             "    </property>\r\n" +
+             "    <property>\r\n" +
+             "      <name>b</name>\r\n" +
+             "      <value>B</value>\r\n" +
+             "    </property>\r\n" +
+             "  </configuration>\r\n" +
+             "</map-reduce>";
+        assertEquals(expectedD.replaceAll(" ",""), d.replaceAll(" ", ""));
+
+    }
+
     public void testParserGlobalLocalAlreadyExists() throws Exception{
         LiteWorkflowAppParser parser = new LiteWorkflowAppParser(null,
                 LiteWorkflowStoreService.LiteControlNodeHandler.class,

Modified: incubator/oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/incubator/oozie/trunk/release-log.txt?rev=1372512&r1=1372511&r2=1372512&view=diff
==============================================================================
--- incubator/oozie/trunk/release-log.txt (original)
+++ incubator/oozie/trunk/release-log.txt Mon Aug 13 17:00:24 2012
@@ -1,5 +1,6 @@
 -- Oozie 3.3.0 release (trunk - unreleased)
 
+OOZIE-926 handling of global configuration is not correct (bcyr via tucu)
 OOZIE-921 Changes in global section for the Name Node in FS action (bcyr via virag)
 OOZIE-942 Add formal Parameters to bundle XML (rkanter via virag)
 OOZIE-239 Add formal parameters to WF & COORD XML (rkanter via tucu)