Browse Source

HUE-1657 [oozie] Basic SLA parsing for workflows

Bump workflows to 0.5
SLA fields are not imported yet
Romain Rigaux 12 năm trước cách đây
mục cha
commit
bb0b460870
53 tập tin đã thay đổi với 1146 bổ sung2 xóa
  1. 1 1
      apps/oozie/src/oozie/importlib/workflows.py
  2. 39 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/action.xslt
  3. 30 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/control.xslt
  4. 37 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/distcp.0.1.xslt
  5. 30 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/email.0.1.xslt
  6. 30 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/hive.0.1.xslt
  7. 30 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/hive.0.2.xslt
  8. 32 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/shell.0.1.xslt
  9. 30 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/sqoop.0.1.xslt
  10. 31 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/sqoop.0.2.xslt
  11. 26 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/ssh.0.1.xslt
  12. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/decision.xslt
  13. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/end.xslt
  14. 20 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/archives.xslt
  15. 24 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/arg_params.xslt
  16. 18 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/args.xslt
  17. 24 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/arguments.xslt
  18. 21 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/capture_output.xslt
  19. 39 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/chmods.xslt
  20. 15 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/command.xslt
  21. 25 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/deletes.xslt
  22. 20 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/files.xslt
  23. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/host.xslt
  24. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/jar_path.xslt
  25. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/java_opts.xslt
  26. 24 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/job_properties.xslt
  27. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/job_xml.xslt
  28. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/main_class.xslt
  29. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/mapper.xslt
  30. 23 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/mkdirs.xslt
  31. 35 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/moves.xslt
  32. 24 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/params.xslt
  33. 26 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/prepares.xslt
  34. 21 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/propagate_configuration.xslt
  35. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/reducer.xslt
  36. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/script_path.xslt
  37. 23 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/touchzs.xslt
  38. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/user.xslt
  39. 28 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/xml.xslt
  40. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fork.xslt
  41. 26 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fs.xslt
  42. 18 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/generic.xslt
  43. 36 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/java.xslt
  44. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/join.xslt
  45. 13 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/kill.xslt
  46. 28 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/mapreduce.xslt
  47. 30 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/pig.xslt
  48. 11 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/sla.xslt
  49. 14 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/start.xslt
  50. 26 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/streaming.xslt
  51. 20 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/subworkflow.xslt
  52. 20 0
      apps/oozie/src/oozie/importlib/xslt/workflows/0.5/workflow.xslt
  53. 2 1
      apps/oozie/src/oozie/importlib/xslt/workflows/workflow.xslt

+ 1 - 1
apps/oozie/src/oozie/importlib/workflows.py

@@ -48,7 +48,7 @@ from oozie.models import Workflow, Node, Link, Start, End,\
 
 LOG = logging.getLogger(__name__)
 
-OOZIE_NAMESPACES = ['uri:oozie:workflow:0.1', 'uri:oozie:workflow:0.2', 'uri:oozie:workflow:0.3', 'uri:oozie:workflow:0.4']
+OOZIE_NAMESPACES = ['uri:oozie:workflow:0.1', 'uri:oozie:workflow:0.2', 'uri:oozie:workflow:0.3', 'uri:oozie:workflow:0.4', 'uri:oozie:workflow:0.5']
 
 LINKS = ('ok', 'error', 'path')
 

+ 39 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/action.xslt

@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="extensions/distcp.0.1.xslt"/>
+<xsl:import href="extensions/email.0.1.xslt"/>
+<xsl:import href="extensions/hive.0.1.xslt"/>
+<xsl:import href="extensions/hive.0.2.xslt"/>
+<xsl:import href="extensions/shell.0.1.xslt"/>
+<xsl:import href="extensions/sqoop.0.1.xslt"/>
+<xsl:import href="extensions/sqoop.0.2.xslt"/>
+<xsl:import href="extensions/ssh.0.1.xslt"/>
+<xsl:import href="nodes/fs.xslt"/>
+<xsl:import href="nodes/java.xslt"/>
+<xsl:import href="nodes/mapreduce.xslt"/>
+<xsl:import href="nodes/pig.xslt"/>
+<xsl:import href="nodes/streaming.xslt"/>
+<xsl:import href="nodes/generic.xslt"/>
+<xsl:import href="nodes/subworkflow.xslt"/>
+
+<xsl:template match="workflow:action" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.node" pk="0">
+
+    <field name="name" type="CharField">
+      <xsl:value-of select="@name"/>
+    </field>
+    <field name="node_type" type="CharField">
+      <xsl:value-of select="name(*)"/>
+    </field>
+
+  </object>
+
+  <xsl:apply-templates select="*"/>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 30 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/control.xslt

@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="nodes/decision.xslt"/>
+<xsl:import href="nodes/end.xslt"/>
+<xsl:import href="nodes/fork.xslt"/>
+<xsl:import href="nodes/join.xslt"/>
+<xsl:import href="nodes/kill.xslt"/>
+<xsl:import href="nodes/start.xslt"/>
+
+<xsl:template match="workflow:start | workflow:end | workflow:decision | workflow:fork | workflow:join | workflow:kill">
+
+  <object model="oozie.node" pk="0">
+
+    <field name="name" type="CharField">
+      <xsl:value-of select="@name"/>
+    </field>
+    <field name="node_type" type="CharField">
+      <xsl:value-of select="name(.)"/>
+    </field>
+
+  </object>
+
+  <xsl:apply-imports/>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 37 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/distcp.0.1.xslt

@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:distcp="uri:oozie:distcp-action:0.1" exclude-result-prefixes="workflow distcp">
+
+<xsl:import href="../nodes/fields/job_properties.xslt"/>
+<xsl:import href="../nodes/fields/job_xml.xslt"/>
+<xsl:import href="../nodes/fields/params.xslt"/>
+<xsl:import href="../nodes/fields/prepares.xslt"/>
+
+<xsl:template match="distcp:distcp">
+
+  <object model="oozie.distcp" pk="0">
+
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <field name="params" type="CharField">
+      <xsl:text>[</xsl:text>
+      <xsl:for-each select="*[local-name()='arg']">
+        <xsl:choose>
+          <xsl:when test="position() &lt; last()">
+            <xsl:text><![CDATA[{"type":"arg","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["},]]></xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:text><![CDATA[{"type":"arg","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["}]]></xsl:text>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:for-each>
+      <xsl:text>]</xsl:text>
+    </field>
+    <xsl:call-template name="prepares"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 30 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/email.0.1.xslt

@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:email="uri:oozie:email-action:0.1" exclude-result-prefixes="workflow email">
+
+<xsl:template match="email:email">
+
+  <object model="oozie.email" pk="0">
+
+    <field name="to" type="CharField">
+      <xsl:value-of select="*[local-name()='to']"/>
+    </field>
+
+    <field name="cc" type="CharField">
+      <xsl:value-of select="*[local-name()='cc']"/>
+    </field>
+
+    <field name="subject" type="CharField">
+      <xsl:value-of select="*[local-name()='subject']"/>
+    </field>
+
+    <field name="body" type="CharField">
+      <xsl:value-of select="*[local-name()='body']"/>
+    </field>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 30 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/hive.0.1.xslt

@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive="uri:oozie:hive-action:0.1" exclude-result-prefixes="workflow hive">
+
+<xsl:import href="../nodes/fields/archives.xslt"/>
+<xsl:import href="../nodes/fields/files.xslt"/>
+<xsl:import href="../nodes/fields/job_properties.xslt"/>
+<xsl:import href="../nodes/fields/job_xml.xslt"/>
+<xsl:import href="../nodes/fields/params.xslt"/>
+<xsl:import href="../nodes/fields/prepares.xslt"/>
+<xsl:import href="../nodes/fields/script_path.xslt"/>
+
+<xsl:template match="hive:hive">
+
+  <object model="oozie.hive" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="params"/>
+    <xsl:call-template name="prepares"/>
+    <xsl:call-template name="script_path"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 30 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/hive.0.2.xslt

@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:hive="uri:oozie:hive-action:0.2" exclude-result-prefixes="workflow hive">
+
+<xsl:import href="../nodes/fields/archives.xslt"/>
+<xsl:import href="../nodes/fields/files.xslt"/>
+<xsl:import href="../nodes/fields/job_properties.xslt"/>
+<xsl:import href="../nodes/fields/job_xml.xslt"/>
+<xsl:import href="../nodes/fields/params.xslt"/>
+<xsl:import href="../nodes/fields/prepares.xslt"/>
+<xsl:import href="../nodes/fields/script_path.xslt"/>
+
+<xsl:template match="hive:hive">
+
+  <object model="oozie.hive" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="params"/>
+    <xsl:call-template name="prepares"/>
+    <xsl:call-template name="script_path"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 32 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/shell.0.1.xslt

@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:shell="uri:oozie:shell-action:0.1" exclude-result-prefixes="workflow shell">
+
+<xsl:import href="../nodes/fields/archives.xslt"/>
+<xsl:import href="../nodes/fields/capture_output.xslt"/>
+<xsl:import href="../nodes/fields/command.xslt"/>
+<xsl:import href="../nodes/fields/files.xslt"/>
+<xsl:import href="../nodes/fields/job_properties.xslt"/>
+<xsl:import href="../nodes/fields/job_xml.xslt"/>
+<xsl:import href="../nodes/fields/arguments.xslt"/>
+<xsl:import href="../nodes/fields/prepares.xslt"/>
+
+<xsl:template match="shell:shell">
+
+  <object model="oozie.shell" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="capture_output"/>
+    <xsl:call-template name="command"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="arguments"/>
+    <xsl:call-template name="prepares"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 30 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/sqoop.0.1.xslt

@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:sqoop="uri:oozie:sqoop-action:0.1" exclude-result-prefixes="workflow sqoop">
+
+<xsl:import href="../nodes/fields/archives.xslt"/>
+<xsl:import href="../nodes/fields/files.xslt"/>
+<xsl:import href="../nodes/fields/job_properties.xslt"/>
+<xsl:import href="../nodes/fields/job_xml.xslt"/>
+<xsl:import href="../nodes/fields/arg_params.xslt"/>
+<xsl:import href="../nodes/fields/prepares.xslt"/>
+<xsl:import href="../nodes/fields/script_path.xslt"/>
+
+<xsl:template match="sqoop:sqoop">
+
+  <object model="oozie.sqoop" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="arg_params"/>
+    <xsl:call-template name="prepares"/>
+    <xsl:call-template name="script_path"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 31 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/sqoop.0.2.xslt

@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:sqoop="uri:oozie:sqoop-action:0.2" exclude-result-prefixes="workflow sqoop">
+
+<xsl:import href="../nodes/fields/archives.xslt"/>
+<xsl:import href="../nodes/fields/files.xslt"/>
+<xsl:import href="../nodes/fields/job_properties.xslt"/>
+<xsl:import href="../nodes/fields/job_xml.xslt"/>
+<xsl:import href="../nodes/fields/arg_params.xslt"/>
+<xsl:import href="../nodes/fields/prepares.xslt"/>
+
+<xsl:template match="sqoop:sqoop">
+
+  <object model="oozie.sqoop" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="arg_params"/>
+    <xsl:call-template name="prepares"/>
+    <field name="script_path" type="CharField">
+      <xsl:value-of select="*[local-name()='command']"/>
+    </field>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 26 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/extensions/ssh.0.1.xslt

@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:ssh="uri:oozie:ssh-action:0.1" exclude-result-prefixes="workflow ssh">
+
+<xsl:import href="../nodes/fields/capture_output.xslt"/>
+<xsl:import href="../nodes/fields/command.xslt"/>
+<xsl:import href="../nodes/fields/host.xslt"/>
+<xsl:import href="../nodes/fields/params.xslt"/>
+<xsl:import href="../nodes/fields/user.xslt"/>
+
+<xsl:template match="ssh:ssh">
+
+  <object model="oozie.ssh" pk="0">
+
+    <xsl:call-template name="capture_output"/>
+    <xsl:call-template name="command"/>
+    <xsl:call-template name="host"/>
+    <xsl:call-template name="params"/>
+    <xsl:call-template name="user"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/decision.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template match="workflow:decision" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.decision" pk="0">
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/end.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template match="workflow:end" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.end" pk="0">
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 20 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/archives.xslt

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="archives">
+
+  <field name="archives" type="TextField">
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='archive']">
+      <xsl:text><![CDATA[{"dummy":"","name":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["}]]></xsl:text>
+      <xsl:if  test="position() &lt; last()">
+        <xsl:text>,</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 24 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/arg_params.xslt

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="arg_params">
+
+  <field name="params" type="TextField">
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='arg']">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"type":"arg","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"type":"arg","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 18 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/args.xslt

@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="args">
+
+  <field name="args" type="CharField">
+    <xsl:for-each select="*[local-name()='arg']">
+      <xsl:value-of select="." />
+      <xsl:if  test="position() &lt; last()">
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 24 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/arguments.xslt

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="arguments">
+
+  <field name="params" type="TextField">
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='argument']">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"type":"]]></xsl:text><xsl:value-of select="local-name()" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"type":"]]></xsl:text><xsl:value-of select="local-name()" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 21 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/capture_output.xslt

@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="capture_output">
+
+  <field name="capture_output" type="BooleanField">
+    <xsl:choose>
+      <xsl:when test="*[local-name()='capture-output']">
+        True
+      </xsl:when>
+      <xsl:otherwise>
+        False
+      </xsl:otherwise>
+    </xsl:choose>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 39 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/chmods.xslt

@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="chmods">
+
+  <field name="chmods" type="TextField">
+
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='chmod']">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"path":"]]></xsl:text>
+          <xsl:value-of select="@path" />
+          <xsl:text><![CDATA[","permissions":"]]></xsl:text>
+          <xsl:value-of select="@permissions" />
+          <xsl:text><![CDATA[","recursive":"]]></xsl:text>
+          <xsl:value-of select="@dir-files" />
+          <xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"path":"]]></xsl:text>
+          <xsl:value-of select="@path" />
+          <xsl:text><![CDATA[","permissions":"]]></xsl:text>
+          <xsl:value-of select="@permissions" />
+          <xsl:text><![CDATA[","recursive":"]]></xsl:text>
+          <xsl:value-of select="@dir-files" />
+          <xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 15 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/command.xslt

@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="command">
+
+  <field name="command" type="CharField">
+    <xsl:value-of select="*[local-name()='command']"/>
+    <xsl:value-of select="*[local-name()='exec']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 25 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/deletes.xslt

@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="deletes">
+
+  <field name="deletes" type="TextField">
+
+      <xsl:text>[</xsl:text>
+      <xsl:for-each select="*[local-name()='delete']">
+        <xsl:text><![CDATA[{"name":"]]></xsl:text>
+        <xsl:value-of select="@path" />
+        <xsl:text><![CDATA["}]]></xsl:text>
+        <xsl:if  test="position() &lt; last()">
+          <xsl:text>,</xsl:text>
+        </xsl:if>
+      </xsl:for-each>
+      <xsl:text>]</xsl:text>
+
+    </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 20 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/files.xslt

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="files">
+
+  <field name="files" type="TextField">
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='file']">
+      <xsl:text><![CDATA["]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["]]></xsl:text>
+      <xsl:if  test="position() &lt; last()">
+        <xsl:text>,</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/host.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="host">
+
+  <field name="host" type="CharField">
+    <xsl:value-of select="*[local-name()='host']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/jar_path.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="jar_path">
+
+  <field name="jar_path" type="CharField">
+    <xsl:value-of select="*[local-name()='jar-path']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/java_opts.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="java_opts">
+
+  <field name="java_opts" type="CharField">
+    <xsl:value-of select="*[local-name()='java-opts']"/>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 24 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/job_properties.xslt

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="job_properties">
+
+  <field name="job_properties" type="TextField">
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='configuration']/*[local-name()='property']">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"name":"]]></xsl:text><xsl:value-of select="*[local-name()='name']" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="*[local-name()='value']" /><xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"name":"]]></xsl:text><xsl:value-of select="*[local-name()='name']" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="*[local-name() ='value']" /><xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/job_xml.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="job_xml">
+
+  <field name="job_xml" type="CharField">
+    <xsl:value-of select="*[local-name()='job-xml']"/>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/main_class.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="main_class">
+
+  <field name="main_class" type="CharField">
+    <xsl:value-of select="*[local-name()='main-class']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/mapper.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="mapper">
+
+  <field name="mapper" type="CharField">
+    <xsl:value-of select="*[local-name()='streaming']/*[local-name()='mapper']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 23 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/mkdirs.xslt

@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="mkdirs">
+
+  <field name="mkdirs" type="TextField">
+
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='mkdir']">
+      <xsl:text><![CDATA["]]></xsl:text><xsl:value-of select="@path" /><xsl:text><![CDATA["]]></xsl:text>
+      <xsl:if  test="position() &lt; last()">
+        <xsl:text>,</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 35 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/moves.xslt

@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="moves">
+
+  <field name="moves" type="TextField">
+
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='move']">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"source":"]]></xsl:text>
+          <xsl:value-of select="@source" />
+          <xsl:text><![CDATA[","destination":"]]></xsl:text>
+          <xsl:value-of select="@target" />
+          <xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"source":"]]></xsl:text>
+          <xsl:value-of select="@source" />
+          <xsl:text><![CDATA[","destination":"]]></xsl:text>
+          <xsl:value-of select="@target" />
+          <xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 24 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/params.xslt

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="params">
+
+  <field name="params" type="TextField">
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='param']">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"type":"]]></xsl:text><xsl:value-of select="local-name()" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"type":"]]></xsl:text><xsl:value-of select="local-name()" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="." /><xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 26 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/prepares.xslt

@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="prepares">
+
+  <field name="prepares" type="TextField">
+
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='prepare']/*">
+      <xsl:choose>
+        <xsl:when test="position() &lt; last()">
+          <xsl:text><![CDATA[{"type":"]]></xsl:text><xsl:value-of select="local-name()" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="@path" /><xsl:text><![CDATA["},]]></xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text><![CDATA[{"type":"]]></xsl:text><xsl:value-of select="local-name()" /><xsl:text><![CDATA[","value":"]]></xsl:text><xsl:value-of select="@path" /><xsl:text><![CDATA["}]]></xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+
+  </field>
+
+</xsl:template>
+
+</xsl:stylesheet>

+ 21 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/propagate_configuration.xslt

@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="propagate_configuration">
+
+  <field name="propagate_configuration" type="BooleanField">
+    <xsl:choose>
+      <xsl:when test="*[local-name()='propagate-configuration']">
+        <xsl:text>True</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>False</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/reducer.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="reducer">
+
+  <field name="reducer" type="CharField">
+    <xsl:value-of select="*[local-name()='streaming']/*[local-name()='reducer']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/script_path.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="script_path">
+
+  <field name="script_path" type="CharField">
+    <xsl:value-of select="*[local-name()='script']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 23 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/touchzs.xslt

@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="touchzs">
+
+  <field name="touchzs" type="TextField">
+
+    <xsl:text>[</xsl:text>
+    <xsl:for-each select="*[local-name()='touchz']">
+      <xsl:text><![CDATA["]]></xsl:text><xsl:value-of select="@path" /><xsl:text><![CDATA["]]></xsl:text>
+      <xsl:if  test="position() &lt; last()">
+        <xsl:text>,</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>]</xsl:text>
+
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/user.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template name="user">
+
+  <field name="user" type="CharField">
+    <xsl:value-of select="*[local-name()='user']"/>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 28 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fields/xml.xslt

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+
+<xsl:template match="*" mode="copy-no-namespaces">
+    <xsl:element name="{local-name()}">
+        <xsl:copy-of select="@*"/>
+        <xsl:apply-templates select="node()" mode="copy-no-namespaces"/>
+    </xsl:element>
+</xsl:template>
+
+<xsl:template match="comment()| processing-instruction()" mode="copy-no-namespaces">
+    <xsl:copy/>
+</xsl:template>
+
+<xsl:template name="xml">
+
+  <field name="xml" type="TextField">
+    <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
+    <xsl:apply-templates  select="current()" mode="copy-no-namespaces"/>
+    <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
+  </field>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fork.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template match="workflow:fork" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.fork" pk="0">
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 26 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/fs.xslt

@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/chmods.xslt"/>
+<xsl:import href="fields/deletes.xslt"/>
+<xsl:import href="fields/mkdirs.xslt"/>
+<xsl:import href="fields/moves.xslt"/>
+<xsl:import href="fields/touchzs.xslt"/>
+
+<xsl:template match="workflow:fs" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.fs" pk="0">
+
+    <xsl:call-template name="chmods"/>
+    <xsl:call-template name="deletes"/>
+    <xsl:call-template name="mkdirs"/>
+    <xsl:call-template name="moves"/>
+    <xsl:call-template name="touchzs"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 18 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/generic.xslt

@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/xml.xslt"/>
+
+<xsl:template match="workflow:*[local-name()!='decision' and local-name()!='end' and local-name()!='fork' and local-name()!='fs' and local-name()!='java' and local-name()!='join' and local-name()!='kill' and local-name()!='map-reduce' and local-name()!='pig' and local-name()!='start' and local-name()!='streaming' and local-name()!='subworkflow' and local-name()!='distcp' and local-name()!='email' and local-name()!='hive' and local-name()!='shell' and local-name()!='sqoop' and local-name()!='ssh' and local-name()!='ok' and local-name()!='error']" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.generic" pk="0">
+
+    <xsl:call-template name="xml"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 36 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/java.xslt

@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/archives.xslt"/>
+<xsl:import href="fields/args.xslt"/>
+<xsl:import href="fields/files.xslt"/>
+<xsl:import href="fields/job_xml.xslt"/>
+<xsl:import href="fields/java_opts.xslt"/>
+<xsl:import href="fields/jar_path.xslt"/>
+<xsl:import href="fields/job_properties.xslt"/>
+<xsl:import href="fields/main_class.xslt"/>
+<xsl:import href="fields/prepares.xslt"/>
+<xsl:import href="fields/capture_output.xslt"/>
+
+<xsl:template match="workflow:java" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.java" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="args"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="jar_path"/>
+    <xsl:call-template name="java_opts"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="main_class"/>
+    <xsl:call-template name="prepares"/>
+    <xsl:call-template name="capture_output"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/join.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template match="workflow:join" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.join" pk="0">
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 13 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/kill.xslt

@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template match="workflow:kill" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.kill" pk="0">
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 28 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/mapreduce.xslt

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/archives.xslt"/>
+<xsl:import href="fields/files.xslt"/>
+<xsl:import href="fields/jar_path.xslt"/>
+<xsl:import href="fields/job_properties.xslt"/>
+<xsl:import href="fields/job_xml.xslt"/>
+<xsl:import href="fields/prepares.xslt"/>
+
+<xsl:template match="workflow:map-reduce" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.mapreduce" pk="0">
+
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="jar_path"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="prepares"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 30 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/pig.xslt

@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/archives.xslt"/>
+<xsl:import href="fields/arguments.xslt"/>
+<xsl:import href="fields/files.xslt"/>
+<xsl:import href="fields/job_properties.xslt"/>
+<xsl:import href="fields/job_xml.xslt"/>
+<xsl:import href="fields/prepares.xslt"/>
+<xsl:import href="fields/script_path.xslt"/>
+
+<xsl:template match="workflow:pig" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.pig" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="arguments"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="job_xml"/>
+    <xsl:call-template name="prepares"/>
+    <xsl:call-template name="script_path"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 11 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/sla.xslt

@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+
+<xsl:template match="workflow:sla" xmlns:workflow="uri:oozie:workflow:0.5">
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 14 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/start.xslt

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:template match="workflow:start">
+
+  <object model="oozie.start" pk="0">
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 26 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/streaming.xslt

@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/archives.xslt"/>
+<xsl:import href="fields/files.xslt"/>
+<xsl:import href="fields/job_properties.xslt"/>
+<xsl:import href="fields/mapper.xslt"/>
+<xsl:import href="fields/reducer.xslt"/>
+
+<xsl:template match="workflow:streaming" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.streaming" pk="0">
+
+    <xsl:call-template name="archives"/>
+    <xsl:call-template name="files"/>
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="mapper"/>
+    <xsl:call-template name="reducer"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 20 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/nodes/subworkflow.xslt

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
+
+<xsl:import href="fields/job_properties.xslt"/>
+<xsl:import href="fields/propagate_configuration.xslt"/>
+
+<xsl:template match="workflow:sub-workflow" xmlns:workflow="uri:oozie:workflow:0.5">
+
+  <object model="oozie.subworkflow" pk="0">
+
+    <xsl:call-template name="job_properties"/>
+    <xsl:call-template name="propagate_configuration"/>
+
+  </object>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 20 - 0
apps/oozie/src/oozie/importlib/xslt/workflows/0.5/workflow.xslt

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" xmlns:sla="uri:oozie:sla:0.2" exclude-result-prefixes="workflow">
+
+<xsl:include href="action.xslt"/>
+<xsl:include href="control.xslt"/>
+
+<xsl:template match="/workflow:workflow-app">
+
+  <django-objects version="1.0">
+
+    <xsl:apply-templates select="workflow:action"/>
+    <xsl:apply-templates select="workflow:start | workflow:end | workflow:decision | workflow:fork | workflow:join | workflow:kill"/>
+
+  </django-objects>
+
+</xsl:template>
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+</xsl:stylesheet>

+ 2 - 1
apps/oozie/src/oozie/importlib/xslt/workflows/workflow.xslt

@@ -1,12 +1,13 @@
 <?xml version="1.0"?>
 
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.4" exclude-result-prefixes="workflow">
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:workflow="uri:oozie:workflow:0.5" exclude-result-prefixes="workflow">
 
 <xsl:include href="0.1/workflow.xslt"/>
 <xsl:include href="0.2/workflow.xslt"/>
 <xsl:include href="0.2.5/workflow.xslt"/>
 <xsl:include href="0.3/workflow.xslt"/>
 <xsl:include href="0.4/workflow.xslt"/>
+<xsl:include href="0.5/workflow.xslt"/>
 
 <xsl:template match="/">