<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  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.
-->
<workflow-app xmlns="uri:oozie:workflow:0.2" name="sm3-segment-3908-251483">
    <start to="decision"/>
    <kill name="kill">
        <message>killed message</message>
    </kill>
    <decision name="decision">
        <switch>
            <case to="pig-0">${true}</case>
            <case to="fork">${false}</case>
            <default to="end"/>
        </switch>
    </decision>
    <action name="pig-0">
        <pig>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <script>echo.pig</script>
        </pig>
        <ok to="end"/>
        <error to="kill"/>
    </action>
    <fork name="fork">
        <path start="pig-1"/>
        <path start="pig-2"/>
    </fork>
    <action name="pig-1">
        <pig>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <script>echo.pig</script>
        </pig>
        <ok to="join"/>
        <error to="kill"/>
    </action>
    <action name="pig-2">
        <pig>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <script>echo.pig</script>
        </pig>
        <ok to="join"/>
        <error to="kill"/>
    </action>
    <join name="join" to="end" />
    <end name="end"/>
</workflow-app>
