<?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.
  -->

<process name="##name##" xmlns="uri:falcon:process:0.1">
    <clusters>
        <!--  source  -->
        <cluster name="##cluster.name##">
            <validity end="##cluster.validity.end##" start="##cluster.validity.start##"/>
        </cluster>
    </clusters>

    <tags/>

    <parallel>1</parallel>
    <!-- Replication needs to run only once to catch up -->
    <order>LAST_ONLY</order>
    <frequency>##process.frequency##</frequency>
    <timezone>UTC</timezone>

    <properties>
        <property name="oozie.wf.subworkflow.classpath.inheritance" value="true"/>
    </properties>

    <workflow name="##workflow.name##" engine="oozie"
              path="/apps/data-mirroring/workflows/hive-disaster-recovery-workflow.xml" lib="##workflow.lib.path##"/>
    <retry policy="##retry.policy##" delay="##retry.delay##" attempts="3"/>
    <notification type="##notification.type##" to="##notification.receivers##"/>
    <ACL/>
</process>
