OOZIE-1768 Workflow schema 0.4.5 was removed (rkanter)
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/6e9486bf Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/6e9486bf Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/6e9486bf Branch: refs/heads/master Commit: 6e9486bf63aca631e7ae9b0295585c6f3f65df0a Parents: ebe1afa Author: Robert Kanter <[email protected]> Authored: Wed Apr 23 15:01:14 2014 -0700 Committer: Robert Kanter <[email protected]> Committed: Wed Apr 23 15:01:14 2014 -0700 ---------------------------------------------------------------------- .../java/org/apache/oozie/cli/OozieCLI.java | 2 + .../src/main/resources/oozie-workflow-0.4.5.xsd | 339 +++++++++++++++++++ .../org/apache/oozie/service/SchemaService.java | 1 + .../src/site/twiki/WorkflowFunctionalSpec.twiki | 324 ++++++++++++++++++ release-log.txt | 1 + 5 files changed, 667 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/6e9486bf/client/src/main/java/org/apache/oozie/cli/OozieCLI.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/oozie/cli/OozieCLI.java b/client/src/main/java/org/apache/oozie/cli/OozieCLI.java index 9929040..f26e33b 100644 --- a/client/src/main/java/org/apache/oozie/cli/OozieCLI.java +++ b/client/src/main/java/org/apache/oozie/cli/OozieCLI.java @@ -1744,6 +1744,8 @@ public class OozieCLI { sources.add(new StreamSource(Thread.currentThread().getContextClassLoader().getResourceAsStream( "oozie-workflow-0.4.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader().getResourceAsStream( + "oozie-workflow-0.4.5.xsd"))); + sources.add(new StreamSource(Thread.currentThread().getContextClassLoader().getResourceAsStream( "oozie-workflow-0.5.xsd"))); sources.add(new StreamSource(Thread.currentThread().getContextClassLoader().getResourceAsStream( "oozie-coordinator-0.1.xsd"))); http://git-wip-us.apache.org/repos/asf/oozie/blob/6e9486bf/client/src/main/resources/oozie-workflow-0.4.5.xsd ---------------------------------------------------------------------- diff --git a/client/src/main/resources/oozie-workflow-0.4.5.xsd b/client/src/main/resources/oozie-workflow-0.4.5.xsd new file mode 100644 index 0000000..32e932e --- /dev/null +++ b/client/src/main/resources/oozie-workflow-0.4.5.xsd @@ -0,0 +1,339 @@ +<?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:workflow="uri:oozie:workflow:0.4.5" + elementFormDefault="qualified" targetNamespace="uri:oozie:workflow:0.4.5"> + + <xs:element name="workflow-app" type="workflow:WORKFLOW-APP"/> + + <xs:simpleType name="IDENTIFIER"> + <xs:restriction base="xs:string"> + <xs:pattern value="([a-zA-Z_]([\-_a-zA-Z0-9])*){1,39}"/> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="WORKFLOW-APP"> + <xs:sequence> + <xs:element name="parameters" type="workflow:PARAMETERS" minOccurs="0" maxOccurs="1"/> + <xs:element name="global" type="workflow:GLOBAL" minOccurs="0" maxOccurs="1"/> + <xs:element name="credentials" type="workflow:CREDENTIALS" minOccurs="0" maxOccurs="1"/> + <xs:element name="start" type="workflow:START" minOccurs="1" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="decision" type="workflow:DECISION" minOccurs="1" maxOccurs="1"/> + <xs:element name="fork" type="workflow:FORK" minOccurs="1" maxOccurs="1"/> + <xs:element name="join" type="workflow:JOIN" minOccurs="1" maxOccurs="1"/> + <xs:element name="kill" type="workflow:KILL" minOccurs="1" maxOccurs="1"/> + <xs:element name="action" type="workflow:ACTION" minOccurs="1" maxOccurs="1"/> + </xs:choice> + <xs:element name="end" type="workflow:END" minOccurs="1" maxOccurs="1"/> + <xs:any namespace="uri:oozie:sla:0.1" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="PARAMETERS"> + <xs:sequence> + <xs:element name="property" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="value" minOccurs="0" maxOccurs="1" type="xs:string"/> + <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="GLOBAL"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="START"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="END"> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="DECISION"> + <xs:sequence> + <xs:element name="switch" type="workflow:SWITCH" minOccurs="1" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:element name="switch" type="workflow:SWITCH"/> + + <xs:complexType name="SWITCH"> + <xs:sequence> + <xs:sequence> + <xs:element name="case" type="workflow:CASE" minOccurs="1" maxOccurs="unbounded"/> + <xs:element name="default" type="workflow:DEFAULT" minOccurs="1" maxOccurs="1"/> + </xs:sequence> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="CASE"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + + <xs:complexType name="DEFAULT"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="FORK_TRANSITION"> + <xs:attribute name="start" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="FORK"> + <xs:sequence> + <xs:element name="path" type="workflow:FORK_TRANSITION" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="JOIN"> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:element name="kill" type="workflow:KILL"/> + + <xs:complexType name="KILL"> + <xs:sequence> + <xs:element name="message" type="xs:string" minOccurs="1" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="ACTION_TRANSITION"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:element name="map-reduce" type="workflow:MAP-REDUCE"/> + <xs:element name="pig" type="workflow:PIG"/> + <xs:element name="sub-workflow" type="workflow:SUB-WORKFLOW"/> + <xs:element name="fs" type="workflow:FS"/> + <xs:element name="java" type="workflow:JAVA"/> + + <xs:complexType name="ACTION"> + <xs:sequence> + <xs:choice minOccurs="1" maxOccurs="1"> + <xs:element name="map-reduce" type="workflow:MAP-REDUCE" minOccurs="1" maxOccurs="1"/> + <xs:element name="pig" type="workflow:PIG" minOccurs="1" maxOccurs="1"/> + <xs:element name="sub-workflow" type="workflow:SUB-WORKFLOW" minOccurs="1" maxOccurs="1"/> + <xs:element name="fs" type="workflow:FS" minOccurs="1" maxOccurs="1"/> + <xs:element name="java" type="workflow:JAVA" minOccurs="1" maxOccurs="1"/> + <xs:any namespace="##other" minOccurs="1" maxOccurs="1"/> + </xs:choice> + <xs:element name="ok" type="workflow:ACTION_TRANSITION" minOccurs="1" maxOccurs="1"/> + <xs:element name="error" type="workflow:ACTION_TRANSITION" minOccurs="1" maxOccurs="1"/> + <xs:any namespace="uri:oozie:sla:0.1" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + <xs:attribute name="cred" type="xs:string"/> + <xs:attribute name="retry-max" type="xs:string"/> + <xs:attribute name="retry-interval" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="MAP-REDUCE"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="prepare" type="workflow:PREPARE" minOccurs="0" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="streaming" type="workflow:STREAMING" minOccurs="0" maxOccurs="1"/> + <xs:element name="pipes" type="workflow:PIPES" minOccurs="0" maxOccurs="1"/> + </xs:choice> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="PIG"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="prepare" type="workflow:PREPARE" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:element name="script" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element name="param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="argument" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="SUB-WORKFLOW"> + <xs:sequence> + <xs:element name="app-path" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element name="propagate-configuration" type="workflow:FLAG" minOccurs="0" maxOccurs="1"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="FS"> + <xs:sequence> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="delete" type="workflow:DELETE"/> + <xs:element name="mkdir" type="workflow:MKDIR"/> + <xs:element name="move" type="workflow:MOVE"/> + <xs:element name="chmod" type="workflow:CHMOD"/> + <xs:element name="touchz" type="workflow:TOUCHZ"/> + <xs:element name="chgrp" type="workflow:CHGRP"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="JAVA"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="prepare" type="workflow:PREPARE" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:element name="main-class" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="java-opts" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element name="java-opt" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> + </xs:choice> + <xs:element name="arg" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="capture-output" type="workflow:FLAG" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="FLAG"/> + + <xs:complexType name="CONFIGURATION"> + <xs:sequence> + <xs:element name="property" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="value" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="STREAMING"> + <xs:sequence> + <xs:element name="mapper" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="reducer" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="record-reader" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="record-reader-mapping" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="env" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="PIPES"> + <xs:sequence> + <xs:element name="map" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="reduce" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="inputformat" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="partitioner" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="writer" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="program" type="xs:string" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="PREPARE"> + <xs:sequence> + <xs:element name="delete" type="workflow:DELETE" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="mkdir" type="workflow:MKDIR" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="DELETE"> + <xs:attribute name="path" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="MKDIR"> + <xs:attribute name="path" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="MOVE"> + <xs:attribute name="source" type="xs:string" use="required"/> + <xs:attribute name="target" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="CHMOD"> + <xs:sequence> + <xs:element name="recursive" type="workflow:FLAG" minOccurs="0" maxOccurs="1"></xs:element> + </xs:sequence> + <xs:attribute name="path" type="xs:string" use="required"/> + <xs:attribute name="permissions" type="xs:string" use="required"/> + <xs:attribute name="dir-files" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="TOUCHZ"> + <xs:attribute name="path" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="CHGRP"> + <xs:sequence> + <xs:element name="recursive" type="workflow:FLAG" minOccurs="0" maxOccurs="1"></xs:element> + </xs:sequence> + <xs:attribute name="path" type="xs:string" use="required"/> + <xs:attribute name="group" type="xs:string" use="required"/> + <xs:attribute name="dir-files" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="CREDENTIALS"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:element name="credential" type="workflow:CREDENTIAL"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="CREDENTIAL"> + <xs:sequence minOccurs="0" maxOccurs="unbounded" > + <xs:element name="property" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="value" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> +</xs:schema> http://git-wip-us.apache.org/repos/asf/oozie/blob/6e9486bf/core/src/main/java/org/apache/oozie/service/SchemaService.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/service/SchemaService.java b/core/src/main/java/org/apache/oozie/service/SchemaService.java index 0d0d268..691148b 100644 --- a/core/src/main/java/org/apache/oozie/service/SchemaService.java +++ b/core/src/main/java/org/apache/oozie/service/SchemaService.java @@ -68,6 +68,7 @@ public class SchemaService implements Service { "oozie-workflow-0.2.5.xsd", "oozie-workflow-0.3.xsd", "oozie-workflow-0.4.xsd", + "oozie-workflow-0.4.5.xsd", "oozie-workflow-0.5.xsd"}; private static final String OOZIE_COORDINATOR_XSD[] = { "oozie-coordinator-0.1.xsd", "oozie-coordinator-0.2.xsd", "oozie-coordinator-0.3.xsd", "oozie-coordinator-0.4.xsd"}; http://git-wip-us.apache.org/repos/asf/oozie/blob/6e9486bf/docs/src/site/twiki/WorkflowFunctionalSpec.twiki ---------------------------------------------------------------------- diff --git a/docs/src/site/twiki/WorkflowFunctionalSpec.twiki b/docs/src/site/twiki/WorkflowFunctionalSpec.twiki index ccc36ac..40dcd1f 100644 --- a/docs/src/site/twiki/WorkflowFunctionalSpec.twiki +++ b/docs/src/site/twiki/WorkflowFunctionalSpec.twiki @@ -2757,6 +2757,330 @@ to be executed. </xs:schema> </verbatim> +---++++ Oozie Schema Version 0.4.5 +<verbatim> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:workflow="uri:oozie:workflow:0.4.5" + elementFormDefault="qualified" targetNamespace="uri:oozie:workflow:0.4.5"> + + <xs:element name="workflow-app" type="workflow:WORKFLOW-APP"/> + + <xs:simpleType name="IDENTIFIER"> + <xs:restriction base="xs:string"> + <xs:pattern value="([a-zA-Z_]([\-_a-zA-Z0-9])*){1,39}"/> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="WORKFLOW-APP"> + <xs:sequence> + <xs:element name="parameters" type="workflow:PARAMETERS" minOccurs="0" maxOccurs="1"/> + <xs:element name="global" type="workflow:GLOBAL" minOccurs="0" maxOccurs="1"/> + <xs:element name="credentials" type="workflow:CREDENTIALS" minOccurs="0" maxOccurs="1"/> + <xs:element name="start" type="workflow:START" minOccurs="1" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="decision" type="workflow:DECISION" minOccurs="1" maxOccurs="1"/> + <xs:element name="fork" type="workflow:FORK" minOccurs="1" maxOccurs="1"/> + <xs:element name="join" type="workflow:JOIN" minOccurs="1" maxOccurs="1"/> + <xs:element name="kill" type="workflow:KILL" minOccurs="1" maxOccurs="1"/> + <xs:element name="action" type="workflow:ACTION" minOccurs="1" maxOccurs="1"/> + </xs:choice> + <xs:element name="end" type="workflow:END" minOccurs="1" maxOccurs="1"/> + <xs:any namespace="uri:oozie:sla:0.1" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="PARAMETERS"> + <xs:sequence> + <xs:element name="property" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="value" minOccurs="0" maxOccurs="1" type="xs:string"/> + <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="GLOBAL"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="START"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="END"> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="DECISION"> + <xs:sequence> + <xs:element name="switch" type="workflow:SWITCH" minOccurs="1" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:element name="switch" type="workflow:SWITCH"/> + + <xs:complexType name="SWITCH"> + <xs:sequence> + <xs:sequence> + <xs:element name="case" type="workflow:CASE" minOccurs="1" maxOccurs="unbounded"/> + <xs:element name="default" type="workflow:DEFAULT" minOccurs="1" maxOccurs="1"/> + </xs:sequence> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="CASE"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + + <xs:complexType name="DEFAULT"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="FORK_TRANSITION"> + <xs:attribute name="start" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="FORK"> + <xs:sequence> + <xs:element name="path" type="workflow:FORK_TRANSITION" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="JOIN"> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:element name="kill" type="workflow:KILL"/> + + <xs:complexType name="KILL"> + <xs:sequence> + <xs:element name="message" type="xs:string" minOccurs="1" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:complexType name="ACTION_TRANSITION"> + <xs:attribute name="to" type="workflow:IDENTIFIER" use="required"/> + </xs:complexType> + + <xs:element name="map-reduce" type="workflow:MAP-REDUCE"/> + <xs:element name="pig" type="workflow:PIG"/> + <xs:element name="sub-workflow" type="workflow:SUB-WORKFLOW"/> + <xs:element name="fs" type="workflow:FS"/> + <xs:element name="java" type="workflow:JAVA"/> + + <xs:complexType name="ACTION"> + <xs:sequence> + <xs:choice minOccurs="1" maxOccurs="1"> + <xs:element name="map-reduce" type="workflow:MAP-REDUCE" minOccurs="1" maxOccurs="1"/> + <xs:element name="pig" type="workflow:PIG" minOccurs="1" maxOccurs="1"/> + <xs:element name="sub-workflow" type="workflow:SUB-WORKFLOW" minOccurs="1" maxOccurs="1"/> + <xs:element name="fs" type="workflow:FS" minOccurs="1" maxOccurs="1"/> + <xs:element name="java" type="workflow:JAVA" minOccurs="1" maxOccurs="1"/> + <xs:any namespace="##other" minOccurs="1" maxOccurs="1"/> + </xs:choice> + <xs:element name="ok" type="workflow:ACTION_TRANSITION" minOccurs="1" maxOccurs="1"/> + <xs:element name="error" type="workflow:ACTION_TRANSITION" minOccurs="1" maxOccurs="1"/> + <xs:any namespace="uri:oozie:sla:0.1" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + <xs:attribute name="name" type="workflow:IDENTIFIER" use="required"/> + <xs:attribute name="cred" type="xs:string"/> + <xs:attribute name="retry-max" type="xs:string"/> + <xs:attribute name="retry-interval" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="MAP-REDUCE"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="prepare" type="workflow:PREPARE" minOccurs="0" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="streaming" type="workflow:STREAMING" minOccurs="0" maxOccurs="1"/> + <xs:element name="pipes" type="workflow:PIPES" minOccurs="0" maxOccurs="1"/> + </xs:choice> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="PIG"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="prepare" type="workflow:PREPARE" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:element name="script" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element name="param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="argument" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="SUB-WORKFLOW"> + <xs:sequence> + <xs:element name="app-path" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element name="propagate-configuration" type="workflow:FLAG" minOccurs="0" maxOccurs="1"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="FS"> + <xs:sequence> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="delete" type="workflow:DELETE"/> + <xs:element name="mkdir" type="workflow:MKDIR"/> + <xs:element name="move" type="workflow:MOVE"/> + <xs:element name="chmod" type="workflow:CHMOD"/> + <xs:element name="touchz" type="workflow:TOUCHZ"/> + <xs:element name="chgrp" type="workflow:CHGRP"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="JAVA"> + <xs:sequence> + <xs:element name="job-tracker" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="name-node" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="prepare" type="workflow:PREPARE" minOccurs="0" maxOccurs="1"/> + <xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="configuration" type="workflow:CONFIGURATION" minOccurs="0" maxOccurs="1"/> + <xs:element name="main-class" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="java-opts" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element name="java-opt" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> + </xs:choice> + <xs:element name="arg" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="capture-output" type="workflow:FLAG" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="FLAG"/> + + <xs:complexType name="CONFIGURATION"> + <xs:sequence> + <xs:element name="property" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="value" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="STREAMING"> + <xs:sequence> + <xs:element name="mapper" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="reducer" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="record-reader" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="record-reader-mapping" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="env" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="PIPES"> + <xs:sequence> + <xs:element name="map" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="reduce" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="inputformat" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="partitioner" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="writer" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="program" type="xs:string" minOccurs="0" maxOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="PREPARE"> + <xs:sequence> + <xs:element name="delete" type="workflow:DELETE" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="mkdir" type="workflow:MKDIR" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="DELETE"> + <xs:attribute name="path" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="MKDIR"> + <xs:attribute name="path" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="MOVE"> + <xs:attribute name="source" type="xs:string" use="required"/> + <xs:attribute name="target" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="CHMOD"> + <xs:sequence> + <xs:element name="recursive" type="workflow:FLAG" minOccurs="0" maxOccurs="1"></xs:element> + </xs:sequence> + <xs:attribute name="path" type="xs:string" use="required"/> + <xs:attribute name="permissions" type="xs:string" use="required"/> + <xs:attribute name="dir-files" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="TOUCHZ"> + <xs:attribute name="path" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="CHGRP"> + <xs:sequence> + <xs:element name="recursive" type="workflow:FLAG" minOccurs="0" maxOccurs="1"></xs:element> + </xs:sequence> + <xs:attribute name="path" type="xs:string" use="required"/> + <xs:attribute name="group" type="xs:string" use="required"/> + <xs:attribute name="dir-files" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="CREDENTIALS"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:element name="credential" type="workflow:CREDENTIAL"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="CREDENTIAL"> + <xs:sequence minOccurs="0" maxOccurs="unbounded" > + <xs:element name="property" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="value" minOccurs="1" maxOccurs="1" type="xs:string"/> + <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> +</xs:schema> +</verbatim> ---++++ Oozie Schema Version 0.4 <verbatim> http://git-wip-us.apache.org/repos/asf/oozie/blob/6e9486bf/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index ceff86b..d860a2f 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.1.0 release (trunk - unreleased) +OOZIE-1768 Workflow schema 0.4.5 was removed (rkanter) OOZIE-1621 Add proper error code and error message for sharelib exceptions. (rkanter) OOZIE-1785 Add oozie email action xsd to OozieCli.java (jagatsingh via rohini) OOZIE-1527 Fix scalability issues with coordinator materialization (puru via rohini)
