<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<!--
   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.
-->
<meta charset="utf-8" />
<title>Apache Falcon</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta name="author" content="" />
<link href="css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<link href="css/falcon.css" type="text/css" rel="stylesheet" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="img/falcon-144.png" />
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="img/falcon-114.png" />
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="img/falcon-72.png" />
<link rel="apple-touch-icon-precomposed" href="img/falcon-57.png" />
<link rel="shortcut icon" href="img/favicon.png" />
</head>
<body>

<div class="navbar navbar-inverse falcon-docs-nav">
<div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target=
".navbar-collapse"></button> <a class="navbar-brand falcon-brand">Apache Falcon</a></div>
<div class="navbar-collapse navbar-right collapse">
<ul class="nav navbar-nav">
<li><a class="btn-entity-list" data-entity-type="feed" href="index.html?type=feed">Data sets</a></li>
<li><a class="btn-entity-list" data-entity-type="process" href="index.html?type=process">Processes</a></li>
<li><a class="btn-entity-list" data-entity-type="cluster" href="index.html?type=cluster">Clusters</a></li>
</ul>
</div>
</div>
<div class="container">
<div id="alert-panel">
  <div class="alert alert-danger">
    <button type="button" class="close" onclick="$('#alert-panel').hide();">&times;</button>
    <div class="alert-body" id="alert-panel-body"></div>
  </div>
</div>
<div id="entity-list-container"></div>
<div id="entity-paginator"></div>
<hr />
<div class="footer">&#169; Apache Falcon, 2013</div>
</div>
<!-- /container -->
<script id="entity-list-tmpl" type="text/x-dust-template">
<table class="table table-striped table-bordered" id="entity-list">
  <thead>
    <th>Name</th><th style="width:10em; text-align: center">Status</th>
  </thead>
  <tbody>
    {#entity}
    <tr>
      <td><a class="link-icons entity-link-{type}" href="entity.html?type={type}&id={name}">{name}</a></td>
      <td style="text-align: center">{status}</td>
    </tr>
    {/entity}
  </tbody>
</table>
</script><script src="js/jquery-1.11.0.min.js" type="text/javascript">
</script><script src="js/bootstrap.min.js" type="text/javascript">
</script><script src="js/dust-full-2.0.0.min.js" type="text/javascript">
</script><script src="js/falcon.js" type="text/javascript">
</script><script src="js/falcon-index.js" type="text/javascript">
</script>
</body>
</html>
