Modified: helix/site-content/0.9.9-docs/tutorial_admin.html
URL: 
http://svn.apache.org/viewvc/helix/site-content/0.9.9-docs/tutorial_admin.html?rev=1899879&r1=1899878&r2=1899879&view=diff
==============================================================================
--- helix/site-content/0.9.9-docs/tutorial_admin.html (original)
+++ helix/site-content/0.9.9-docs/tutorial_admin.html Fri Apr 15 07:06:37 2022
@@ -1,20 +1,20 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2022-04-15
+ Generated by Apache Maven Doxia at 2021-11-21
  Rendered using Maven Reflow Skin 1.0.0 
(http://andriusvelykis.github.com/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
 
        <head>
                <meta charset="UTF-8" />
-               <title>Apache Helix &#x2013; Tutorial - Admin Operations</title>
+               <title>Apache Helix -   Tutorial - Admin Operations</title>
                <meta name="viewport" content="width=device-width, 
initial-scale=1.0" />
                <meta name="description" content="" />
                <meta http-equiv="content-language" content="en" />
 
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap.min.css";
 rel="stylesheet" />
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-responsive.min.css";
 rel="stylesheet" />
+               <link href="./css/bootstrap.min.css" rel="stylesheet" />
+               <link href="./css/bootstrap-responsive.min.css" 
rel="stylesheet" />
                <link href="./css/docs.css" rel="stylesheet" />
                <link href="./css/reflow-skin.css" rel="stylesheet" />
                
@@ -29,9 +29,18 @@
                        <script 
src="http://html5shim.googlecode.com/svn/trunk/html5.js";></script>
                <![endif]-->
                
+<script type="text/javascript">var _gaq = _gaq || [];
+        _gaq.push(['_setAccount', 'UA-3211522-12']);
+        _gaq.push(['_trackPageview']);
+
+        (function() {
+        var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+        })();</script>
        </head>
 
-       <body class="page-$config.fileId project-$config.projectId" 
data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
+       <body class="page-tutorial_admin project-099-docs" data-spy="scroll" 
data-offset="60" data-target="#toc-scroll-target">
 
                <div class="navbar navbar-fixed-top">
                        <div class="navbar-inner">
@@ -41,33 +50,34 @@
                                                <span class="icon-bar"></span>
                                                <span class="icon-bar"></span>
                                        </a>
+                                       <a class="brand" href="..">Apache 
Helix</a>
                                        <div class="nav-collapse">
                                                <ul class="nav pull-right">
-                                                       <li class="active"><a 
href="" title="Helix 0.9.9">Helix 0.9.9 </a></li>
-                                                       <li class="dropdown 
active">
+                                                       <li><a 
href="index.html" title="Helix 0.9.9">Helix 0.9.9 </a></li>
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Get Helix <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Download">Download </a></li>
-                                                                       <li 
class="active"><a href="" title="Building">Building </a></li>
-                                                                       <li 
class="active"><a href="" title="Release Notes">Release Notes </a></li>
+                                                                       <li><a 
href="download.html" title="Download">Download </a></li>
+                                                                       <li><a 
href="Building.html" title="Building">Building </a></li>
+                                                                       <li><a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes 
</a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Hands-On <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Quick Start">Quick Start </a></li>
-                                                                       <li 
class="active"><a href="" title="Tutorial">Tutorial </a></li>
-                                                                       <li 
class="active"><a href="" title="Javadocs">Javadocs </a></li>
+                                                                       <li><a 
href="Quickstart.html" title="Quick Start">Quick Start </a></li>
+                                                                       <li><a 
href="Tutorial.html" title="Tutorial">Tutorial </a></li>
+                                                                       <li><a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Recipes <b class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Distributed lock manager">Distributed lock 
manager </a></li>
-                                                                       <li 
class="active"><a href="" title="Rabbit MQ consumer group">Rabbit MQ consumer 
group </a></li>
-                                                                       <li 
class="active"><a href="" title="Rsync replicated file store">Rsync replicated 
file store </a></li>
-                                                                       <li 
class="active"><a href="" title="Service discovery">Service discovery </a></li>
-                                                                       <li 
class="active"><a href="" title="Distributed task DAG execution">Distributed 
task DAG execution </a></li>
+                                                                       <li><a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a></li>
+                                                                       <li><a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a></li>
+                                                                       <li><a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a></li>
+                                                                       <li><a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a></li>
+                                                                       <li><a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a></li>
                                                                </ul>
                                                        </li>
                                                </ul>
@@ -84,21 +94,22 @@
                <div class="row" id="banner">
                        <div class="span12">
                                <div class="pull-left">
-                                       <a href="" id="bannerLeft"><img src="" 
alt='"''"' /></a>
+                                       <a href="../" id="bannerLeft"><img 
src="../images/helix-logo.jpg" alt='"''"' /></a>
+                                       <p class="lead">A cluster management 
framework for partitioned and replicated distributed resources</p>
                                </div>
                                <div class="pull-right">
-                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="" alt='"''"' /></a>
+                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="../images/feather_small.gif" alt='"''"' /></a>
                                </div>
                        </div>
                </div>
                <div>
                        <ul class="breadcrumb">
-                               <li><a href="" title="Apache Helix">Apache 
Helix </a></li>
+                               <li><a href="../" title="Apache Helix">Apache 
Helix </a></li>
                                <li class="divider">/</li>
-                               <li><a href="" title="Release 0.9.9">Release 
0.9.9 </a></li>
+                               <li><a href="./" title="Release 0.9.9">Release 
0.9.9 </a></li>
                                <li class="divider">/</li>
-                               <li>Tutorial - Admin Operations</li>
-                               <li class="publishDate version-date 
pull-right">Last Published: 2022-04-15</li>
+                               <li>  Tutorial - Admin Operations</li>
+                               <li class="publishDate version-date 
pull-right">Last Published: 2021-11-21</li>
                        </ul>
                </div>
        </header>
@@ -107,7 +118,582 @@
        <div class="row">
                <div class="span12">
                        <div class="body-content">
-$bodyWithHeader
+<!-- -
+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. --> 
+<p></p> 
+<div class="section"> 
+ <div class="page-header">
+  <h2 id="Helix_Tutorial:_Admin_Operations"><a href="./Tutorial.html">Helix 
Tutorial</a>: Admin Operations</h2>
+ </div> 
+ <p>Helix provides a set of admin APIs for cluster management operations. They 
are supported via:</p> 
+ <ul> 
+  <li>Java API</li> 
+  <li>Command Line Interface</li> 
+  <li>REST Interface via helix-admin-webapp</li> 
+ </ul> 
+ <div class="section"> 
+  <h3 id="Java_API">Java API</h3> 
+  <p>See interface <a class="externalLink" 
href="http://helix.apache.org/javadocs/0.9.9/reference/org/apache/helix/HelixAdmin.html";><i>org.apache.helix.HelixAdmin</i></a></p>
 
+ </div> 
+ <div class="section"> 
+  <h3 id="Command_Line_Interface">Command Line Interface</h3> 
+  <p>The command line tool comes with helix-core package:</p> 
+  <p>Get the command line tool:</p> 
+  <div class="source"> 
+   <pre>git clone https://git-wip-us.apache.org/repos/asf/helix.git
+cd helix
+git checkout tags/helix-0.9.9
+./build
+cd helix-core/target/helix-core-pkg/bin
+chmod +x *.sh
+</pre> 
+  </div> 
+  <p>Get help:</p> 
+  <div class="source"> 
+   <pre>./helix-admin.sh --help
+</pre> 
+  </div> 
+  <p>All other commands have this form:</p> 
+  <div class="source"> 
+   <pre>./helix-admin.sh --zkSvr &lt;ZookeeperServerAddress&gt; 
&lt;command&gt; &lt;parameters&gt;
+</pre> 
+  </div> 
+  <div class="section"> 
+   <h4 id="Supported_Commands">Supported Commands</h4> 
+   <table border="0" class="bodyTable table table-striped table-hover"> 
+    <thead> 
+     <tr class="a"> 
+      <th>Command Syntax </th> 
+      <th>Description </th> 
+     </tr> 
+    </thead> 
+    <tbody> 
+     <tr class="b"> 
+      <td><i>--activateCluster &lt;clusterName controllerCluster 
true/false&gt;</i> </td> 
+      <td>Enable/disable a cluster in distributed controller mode </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--addCluster &lt;clusterName&gt;</i> </td> 
+      <td>Add a new cluster </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--addIdealState &lt;clusterName resourceName 
fileName.json&gt;</i> </td> 
+      <td>Add an ideal state to a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--addInstanceTag &lt;clusterName instanceName tag&gt;</i> </td> 
+      <td>Add a tag to an instance </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--addNode &lt;clusterName instanceId&gt;</i> </td> 
+      <td>Add an instance to a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--addResource &lt;clusterName resourceName partitionNumber 
stateModelName&gt;</i> </td> 
+      <td>Add a new resource to a cluster </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--addResourceProperty &lt;clusterName resourceName propertyName 
propertyValue&gt;</i> </td> 
+      <td>Add a resource property </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--addStateModelDef &lt;clusterName fileName.json&gt;</i> </td> 
+      <td>Add a State model definition to a cluster </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--dropCluster &lt;clusterName&gt;</i> </td> 
+      <td>Delete a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--dropNode &lt;clusterName instanceId&gt;</i> </td> 
+      <td>Remove a node from a cluster </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--dropResource &lt;clusterName resourceName&gt;</i> </td> 
+      <td>Remove an existing resource from a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--enableCluster &lt;clusterName true/false&gt;</i> </td> 
+      <td>Enable/disable a cluster </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--enableInstance &lt;clusterName instanceId true/false&gt;</i> 
</td> 
+      <td>Enable/disable an instance </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--enablePartition &lt;true/false clusterName nodeId resourceName 
partitionName&gt;</i> </td> 
+      <td>Enable/disable a partition </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--getConfig &lt;configScope configScopeArgs configKeys&gt;</i> 
</td> 
+      <td>Get user configs </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--getConstraints &lt;clusterName constraintType&gt;</i> </td> 
+      <td>Get constraints </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--help</i> </td> 
+      <td>print help information </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--instanceGroupTag &lt;instanceTag&gt;</i> </td> 
+      <td>Specify instance group tag, used with rebalance command </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--listClusterInfo &lt;clusterName&gt;</i> </td> 
+      <td>Show information of a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--listClusters</i> </td> 
+      <td>List all clusters </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--listInstanceInfo &lt;clusterName instanceId&gt;</i> </td> 
+      <td>Show information of an instance </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--listInstances &lt;clusterName&gt;</i> </td> 
+      <td>List all instances in a cluster </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--listPartitionInfo &lt;clusterName resourceName 
partitionName&gt;</i> </td> 
+      <td>Show information of a partition </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--listResourceInfo &lt;clusterName resourceName&gt;</i> </td> 
+      <td>Show information of a resource </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--listResources &lt;clusterName&gt;</i> </td> 
+      <td>List all resources in a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--listStateModel &lt;clusterName stateModelName&gt;</i> </td> 
+      <td>Show information of a state model </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--listStateModels &lt;clusterName&gt;</i> </td> 
+      <td>List all state models in a cluster </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--maxPartitionsPerNode &lt;maxPartitionsPerNode&gt;</i> </td> 
+      <td>Specify the max partitions per instance, used with addResourceGroup 
command </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--rebalance &lt;clusterName resourceName replicas&gt;</i> </td> 
+      <td>Rebalance a resource </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--removeConfig &lt;configScope configScopeArgs configKeys&gt;</i> 
</td> 
+      <td>Remove user configs </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--removeConstraint &lt;clusterName constraintType 
constraintId&gt;</i> </td> 
+      <td>Remove a constraint </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--removeInstanceTag &lt;clusterName instanceId tag&gt;</i> </td> 
+      <td>Remove a tag from an instance </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--removeResourceProperty &lt;clusterName resourceName 
propertyName&gt;</i> </td> 
+      <td>Remove a resource property </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--resetInstance &lt;clusterName instanceId&gt;</i> </td> 
+      <td>Reset all erroneous partitions on an instance </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--resetPartition &lt;clusterName instanceId resourceName 
partitionName&gt;</i> </td> 
+      <td>Reset an erroneous partition </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--resetResource &lt;clusterName resourceName&gt;</i> </td> 
+      <td>Reset all erroneous partitions of a resource </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--setConfig &lt;configScope configScopeArgs 
configKeyValueMap&gt;</i> </td> 
+      <td>Set user configs </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--setConstraint &lt;clusterName constraintType constraintId 
constraintKeyValueMap&gt;</i> </td> 
+      <td>Set a constraint </td> 
+     </tr> 
+     <tr class="b"> 
+      <td><i>--swapInstance &lt;clusterName oldInstance newInstance&gt;</i> 
</td> 
+      <td>Swap an old instance with a new instance </td> 
+     </tr> 
+     <tr class="a"> 
+      <td><i>--zkSvr &lt;ZookeeperServerAddress&gt;</i> </td> 
+      <td>Provide zookeeper address </td> 
+     </tr> 
+    </tbody> 
+   </table> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="REST_Interface">REST Interface</h3> 
+  <p>The REST interface comes wit helix-admin-webapp package:</p> 
+  <div class="source"> 
+   <pre>git clone https://git-wip-us.apache.org/repos/asf/helix.git
+cd helix
+git checkout tags/helix-0.9.9
+./build
+cd helix-admin-webapp/target/helix-admin-webapp-pkg/bin
+chmod +x *.sh
+./run-rest-admin.sh --zkSvr &lt;zookeeperAddress&gt; --port &lt;port&gt; // 
make sure ZooKeeper is running
+</pre> 
+  </div> 
+  <div class="section"> 
+   <h4 id="URL_and_support_methods">URL and support methods</h4> 
+   <ul> 
+    <li> <p><i>/clusters</i></p> 
+     <ul> 
+      <li>List all clusters</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters
+</pre> 
+     </div> 
+     <ul> 
+      <li>Add a cluster</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;addCluster&quot;,&quot;clusterName&quot;:&quot;MyCluster&quot;}'
 -H &quot;Content-Type: application/json&quot; http://localhost:8100/clusters
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}</i></p> 
+     <ul> 
+      <li>List cluster information</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster
+</pre> 
+     </div> 
+     <ul> 
+      <li>Enable/disable a cluster in distributed controller mode</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;activateCluster&quot;,&quot;grandCluster&quot;:&quot;MyControllerCluster&quot;,&quot;enabled&quot;:&quot;true&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster
+</pre> 
+     </div> 
+     <ul> 
+      <li>Remove a cluster</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -X DELETE http://localhost:8100/clusters/MyCluster
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/resourceGroups</i></p> 
+     <ul> 
+      <li>List all resources in a cluster</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster/resourceGroups
+</pre> 
+     </div> 
+     <ul> 
+      <li>Add a resource to cluster</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;addResource&quot;,&quot;resourceGroupName&quot;:&quot;MyDB&quot;,&quot;partitions&quot;:&quot;8&quot;,&quot;stateModelDefRef&quot;:&quot;MasterSlave&quot;
 }' -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/resourceGroups
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/resourceGroups/{resourceName}</i></p> 
+     <ul> 
+      <li>List resource information</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB
+</pre> 
+     </div> 
+     <ul> 
+      <li>Drop a resource</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -X DELETE 
http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB
+</pre> 
+     </div> 
+     <ul> 
+      <li>Reset all erroneous partitions of a resource</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;resetResource&quot;}' -H 
&quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB
+</pre> 
+     </div></li> 
+    <li> 
<p><i>/clusters/{clusterName}/resourceGroups/{resourceName}/idealState</i></p> 
+     <ul> 
+      <li>Rebalance a resource</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;rebalance&quot;,&quot;replicas&quot;:&quot;3&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB/idealState
+</pre> 
+     </div> 
+     <ul> 
+      <li>Add an ideal state</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>echo jsonParameters={
+&quot;command&quot;:&quot;addIdealState&quot;
+   }&amp;newIdealState={
+  &quot;id&quot; : &quot;MyDB&quot;,
+  &quot;simpleFields&quot; : {
+    &quot;IDEAL_STATE_MODE&quot; : &quot;AUTO&quot;,
+    &quot;NUM_PARTITIONS&quot; : &quot;8&quot;,
+    &quot;REBALANCE_MODE&quot; : &quot;SEMI_AUTO&quot;,
+    &quot;REPLICAS&quot; : &quot;0&quot;,
+    &quot;STATE_MODEL_DEF_REF&quot; : &quot;MasterSlave&quot;,
+    &quot;STATE_MODEL_FACTORY_NAME&quot; : &quot;DEFAULT&quot;
+  },
+  &quot;listFields&quot; : {
+  },
+  &quot;mapFields&quot; : {
+    &quot;MyDB_0&quot; : {
+      &quot;localhost_1001&quot; : &quot;MASTER&quot;,
+      &quot;localhost_1002&quot; : &quot;SLAVE&quot;
+    }
+  }
+}
+&gt; newIdealState.json
+curl -d @'./newIdealState.json' -H 'Content-Type: application/json' 
http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB/idealState
+</pre> 
+     </div> 
+     <ul> 
+      <li>Add resource property</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;addResourceProperty&quot;,&quot;REBALANCE_TIMER_PERIOD&quot;:&quot;500&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB/idealState
+</pre> 
+     </div></li> 
+    <li> 
<p><i>/clusters/{clusterName}/resourceGroups/{resourceName}/externalView</i></p>
 
+     <ul> 
+      <li>Show resource external view</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl 
http://localhost:8100/clusters/MyCluster/resourceGroups/MyDB/externalView
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/instances</i></p> 
+     <ul> 
+      <li>List all instances</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster/instances
+</pre> 
+     </div> 
+     <ul> 
+      <li>Add an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;addInstance&quot;,&quot;instanceNames&quot;:&quot;localhost_1001&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/instances
+</pre> 
+     </div> 
+     <ul> 
+      <li>Swap an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;swapInstance&quot;,&quot;oldInstance&quot;:&quot;localhost_1001&quot;,
 &quot;newInstance&quot;:&quot;localhost_1002&quot;}' -H &quot;Content-Type: 
application/json&quot; http://localhost:8100/clusters/MyCluster/instances
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/instances/{instanceName}</i></p> 
+     <ul> 
+      <li>Show instance information</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl 
http://localhost:8100/clusters/MyCluster/instances/localhost_1001
+</pre> 
+     </div> 
+     <ul> 
+      <li>Enable/disable an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;enableInstance&quot;,&quot;enabled&quot;:&quot;false&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/instances/localhost_1001
+</pre> 
+     </div> 
+     <ul> 
+      <li>Drop an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -X DELETE 
http://localhost:8100/clusters/MyCluster/instances/localhost_1001
+</pre> 
+     </div> 
+     <ul> 
+      <li>Disable/enable partitions on an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;enablePartition&quot;,&quot;resource&quot;:
 &quot;MyDB&quot;,&quot;partition&quot;:&quot;MyDB_0&quot;,  
&quot;enabled&quot; : &quot;false&quot;}' -H &quot;Content-Type: 
application/json&quot; 
http://localhost:8100/clusters/MyCluster/instances/localhost_1001
+</pre> 
+     </div> 
+     <ul> 
+      <li>Reset an erroneous partition on an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;resetPartition&quot;,&quot;resource&quot;:
 &quot;MyDB&quot;,&quot;partition&quot;:&quot;MyDB_0&quot;}' -H 
&quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/instances/localhost_1001
+</pre> 
+     </div> 
+     <ul> 
+      <li>Reset all erroneous partitions on an instance</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;resetInstance&quot;}' -H 
&quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/instances/localhost_1001
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/configs</i></p> 
+     <ul> 
+      <li>Get user cluster level config</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster/configs/cluster
+</pre> 
+     </div> 
+     <ul> 
+      <li>Set user cluster level config</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;setConfig&quot;,&quot;configs&quot;:&quot;key1=value1,key2=value2&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/configs/cluster
+</pre> 
+     </div> 
+     <ul> 
+      <li>Remove user cluster level config</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;removeConfig&quot;,&quot;configs&quot;:&quot;key1,key2&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/configs/cluster
+</pre> 
+     </div> 
+     <ul> 
+      <li>Get/set/remove user participant level config</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;setConfig&quot;,&quot;configs&quot;:&quot;key1=value1,key2=value2&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/configs/participant/localhost_1001
+</pre> 
+     </div> 
+     <ul> 
+      <li>Get/set/remove resource level config</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;setConfig&quot;,&quot;configs&quot;:&quot;key1=value1,key2=value2&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/configs/resource/MyDB
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/controller</i></p> 
+     <ul> 
+      <li>Show controller information</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster/Controller
+</pre> 
+     </div> 
+     <ul> 
+      <li>Enable/disable cluster</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;command&quot;:&quot;enableCluster&quot;,&quot;enabled&quot;:&quot;false&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/Controller
+</pre> 
+     </div></li> 
+    <li> <p><i>/zkPath/{path}</i></p> 
+     <ul> 
+      <li>Get information for zookeeper path</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/zkPath/MyCluster
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/StateModelDefs</i></p> 
+     <ul> 
+      <li>Show all state model definitions</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl http://localhost:8100/clusters/MyCluster/StateModelDefs
+</pre> 
+     </div> 
+     <ul> 
+      <li>Add a state mdoel definition</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>echo jsonParameters={
+  &quot;command&quot;:&quot;addStateModelDef&quot;
+}&amp;newStateModelDef={
+  &quot;id&quot; : &quot;OnlineOffline&quot;,
+  &quot;simpleFields&quot; : {
+    &quot;INITIAL_STATE&quot; : &quot;OFFLINE&quot;
+  },
+  &quot;listFields&quot; : {
+    &quot;STATE_PRIORITY_LIST&quot; : [ &quot;ONLINE&quot;, 
&quot;OFFLINE&quot;, &quot;DROPPED&quot; ],
+    &quot;STATE_TRANSITION_PRIORITYLIST&quot; : [ &quot;OFFLINE-ONLINE&quot;, 
&quot;ONLINE-OFFLINE&quot;, &quot;OFFLINE-DROPPED&quot; ]
+  },
+  &quot;mapFields&quot; : {
+    &quot;DROPPED.meta&quot; : {
+      &quot;count&quot; : &quot;-1&quot;
+    },
+    &quot;OFFLINE.meta&quot; : {
+      &quot;count&quot; : &quot;-1&quot;
+    },
+    &quot;OFFLINE.next&quot; : {
+      &quot;DROPPED&quot; : &quot;DROPPED&quot;,
+      &quot;ONLINE&quot; : &quot;ONLINE&quot;
+    },
+    &quot;ONLINE.meta&quot; : {
+      &quot;count&quot; : &quot;R&quot;
+    },
+    &quot;ONLINE.next&quot; : {
+      &quot;DROPPED&quot; : &quot;OFFLINE&quot;,
+      &quot;OFFLINE&quot; : &quot;OFFLINE&quot;
+    }
+  }
+}
+&gt; newStateModelDef.json
+curl -d @'./untitled.txt' -H 'Content-Type: application/json' 
http://localhost:8100/clusters/MyCluster/StateModelDefs
+</pre> 
+     </div></li> 
+    <li> 
<p><i>/clusters/{clusterName}/StateModelDefs/{stateModelDefName}</i></p> 
+     <ul> 
+      <li>Show a state model definition</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl 
http://localhost:8100/clusters/MyCluster/StateModelDefs/OnlineOffline
+</pre> 
+     </div></li> 
+    <li> <p><i>/clusters/{clusterName}/constraints/{constraintType}</i></p> 
+     <ul> 
+      <li>Show all contraints</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl 
http://localhost:8100/clusters/MyCluster/constraints/MESSAGE_CONSTRAINT
+</pre> 
+     </div> 
+     <ul> 
+      <li>Set a contraint</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -d 
'jsonParameters={&quot;constraintAttributes&quot;:&quot;RESOURCE=MyDB,CONSTRAINT_VALUE=1&quot;}'
 -H &quot;Content-Type: application/json&quot; 
http://localhost:8100/clusters/MyCluster/constraints/MESSAGE_CONSTRAINT/MyConstraint
+</pre> 
+     </div> 
+     <ul> 
+      <li>Remove a constraint</li> 
+     </ul> 
+     <div class="source"> 
+      <pre>curl -X DELETE 
http://localhost:8100/clusters/MyCluster/constraints/MESSAGE_CONSTRAINT/MyConstraint
+</pre> 
+     </div></li> 
+   </ul> 
+  </div> 
+ </div> 
+</div>
                        </div>
                </div>
        </div>
@@ -120,43 +706,51 @@ $bodyWithHeader
        <footer class="well">
                <div class="container">
                        <div class="row">
-                               <div class="span9 bottom-nav">
+                               <div class="span3 bottom-nav">
                                        <ul class="nav nav-list">
                                                <li class="nav-header">Get 
Helix</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Download">Download </a>
+                                               <li>
+                                                       <a href="download.html" 
title="Download">Download </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Building">Building </a>
+                                               <li>
+                                                       <a href="Building.html" 
title="Building">Building </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Release Notes">Release Notes </a>
+                                               <li>
+                                                       <a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Hands-On</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Quick Start">Quick Start </a>
+                                               <li>
+                                                       <a 
href="Quickstart.html" title="Quick Start">Quick Start </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Tutorial">Tutorial </a>
+                                               <li>
+                                                       <a href="Tutorial.html" 
title="Tutorial">Tutorial </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Javadocs">Javadocs </a>
+                                               <li>
+                                                       <a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Recipes</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed lock manager">Distributed lock manager </a>
+                                               <li>
+                                                       <a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rabbit MQ consumer group">Rabbit MQ consumer group </a>
+                                               <li>
+                                                       <a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rsync replicated file store">Rsync replicated file store </a>
+                                               <li>
+                                                       <a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Service discovery">Service discovery </a>
+                                               <li>
+                                                       <a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed task DAG execution">Distributed task DAG execution </a>
+                                               <li>
+                                                       <a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a>
                                                </li>
                                        </ul>
                                </div>
@@ -168,9 +762,14 @@ $bodyWithHeader
                <div class="row">
                        <div class="span12">
                                <p class="pull-right"><a href="#">Back to 
top</a></p>
-                               <p class="copyright">Copyright &copy;2022 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
+                               <p class="copyright">Copyright &copy;2021 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
                                <p><a 
href="http://github.com/andriusvelykis/reflow-maven-skin"; title="Reflow Maven 
skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt"; 
target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
-                                       </div>
+               
+<div class="row span16">
+  <div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix 
project logos are trademarks of The Apache Software Foundation.
+        All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.</div>
+  <a href="http://helix.apache.org/0.9.9-docs/privacy-policy.html";>Privacy 
Policy</a>
+</div>                 </div>
                </div>
        </div>
 
@@ -188,7 +787,7 @@ $bodyWithHeader
                }
        </script>
        
-       <script 
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js";></script>
+       <script src="./js/bootstrap.min.js"></script>
        <script src="./js/lightbox.js"></script>
        <script src="./js/jquery.smooth-scroll.min.js"></script>
        <!-- back button support for smooth scroll -->

Modified: helix/site-content/0.9.9-docs/tutorial_agent.html
URL: 
http://svn.apache.org/viewvc/helix/site-content/0.9.9-docs/tutorial_agent.html?rev=1899879&r1=1899878&r2=1899879&view=diff
==============================================================================
--- helix/site-content/0.9.9-docs/tutorial_agent.html (original)
+++ helix/site-content/0.9.9-docs/tutorial_agent.html Fri Apr 15 07:06:37 2022
@@ -1,20 +1,20 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2022-04-15
+ Generated by Apache Maven Doxia at 2021-11-21
  Rendered using Maven Reflow Skin 1.0.0 
(http://andriusvelykis.github.com/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
 
        <head>
                <meta charset="UTF-8" />
-               <title>Apache Helix &#x2013; Tutorial - Helix Agent</title>
+               <title>Apache Helix -   Tutorial - Helix Agent</title>
                <meta name="viewport" content="width=device-width, 
initial-scale=1.0" />
                <meta name="description" content="" />
                <meta http-equiv="content-language" content="en" />
 
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap.min.css";
 rel="stylesheet" />
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-responsive.min.css";
 rel="stylesheet" />
+               <link href="./css/bootstrap.min.css" rel="stylesheet" />
+               <link href="./css/bootstrap-responsive.min.css" 
rel="stylesheet" />
                <link href="./css/docs.css" rel="stylesheet" />
                <link href="./css/reflow-skin.css" rel="stylesheet" />
                
@@ -29,9 +29,18 @@
                        <script 
src="http://html5shim.googlecode.com/svn/trunk/html5.js";></script>
                <![endif]-->
                
+<script type="text/javascript">var _gaq = _gaq || [];
+        _gaq.push(['_setAccount', 'UA-3211522-12']);
+        _gaq.push(['_trackPageview']);
+
+        (function() {
+        var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+        })();</script>
        </head>
 
-       <body class="page-$config.fileId project-$config.projectId" 
data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
+       <body class="page-tutorial_agent project-099-docs" data-spy="scroll" 
data-offset="60" data-target="#toc-scroll-target">
 
                <div class="navbar navbar-fixed-top">
                        <div class="navbar-inner">
@@ -41,33 +50,34 @@
                                                <span class="icon-bar"></span>
                                                <span class="icon-bar"></span>
                                        </a>
+                                       <a class="brand" href="..">Apache 
Helix</a>
                                        <div class="nav-collapse">
                                                <ul class="nav pull-right">
-                                                       <li class="active"><a 
href="" title="Helix 0.9.9">Helix 0.9.9 </a></li>
-                                                       <li class="dropdown 
active">
+                                                       <li><a 
href="index.html" title="Helix 0.9.9">Helix 0.9.9 </a></li>
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Get Helix <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Download">Download </a></li>
-                                                                       <li 
class="active"><a href="" title="Building">Building </a></li>
-                                                                       <li 
class="active"><a href="" title="Release Notes">Release Notes </a></li>
+                                                                       <li><a 
href="download.html" title="Download">Download </a></li>
+                                                                       <li><a 
href="Building.html" title="Building">Building </a></li>
+                                                                       <li><a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes 
</a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Hands-On <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Quick Start">Quick Start </a></li>
-                                                                       <li 
class="active"><a href="" title="Tutorial">Tutorial </a></li>
-                                                                       <li 
class="active"><a href="" title="Javadocs">Javadocs </a></li>
+                                                                       <li><a 
href="Quickstart.html" title="Quick Start">Quick Start </a></li>
+                                                                       <li><a 
href="Tutorial.html" title="Tutorial">Tutorial </a></li>
+                                                                       <li><a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Recipes <b class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Distributed lock manager">Distributed lock 
manager </a></li>
-                                                                       <li 
class="active"><a href="" title="Rabbit MQ consumer group">Rabbit MQ consumer 
group </a></li>
-                                                                       <li 
class="active"><a href="" title="Rsync replicated file store">Rsync replicated 
file store </a></li>
-                                                                       <li 
class="active"><a href="" title="Service discovery">Service discovery </a></li>
-                                                                       <li 
class="active"><a href="" title="Distributed task DAG execution">Distributed 
task DAG execution </a></li>
+                                                                       <li><a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a></li>
+                                                                       <li><a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a></li>
+                                                                       <li><a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a></li>
+                                                                       <li><a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a></li>
+                                                                       <li><a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a></li>
                                                                </ul>
                                                        </li>
                                                </ul>
@@ -84,21 +94,22 @@
                <div class="row" id="banner">
                        <div class="span12">
                                <div class="pull-left">
-                                       <a href="" id="bannerLeft"><img src="" 
alt='"''"' /></a>
+                                       <a href="../" id="bannerLeft"><img 
src="../images/helix-logo.jpg" alt='"''"' /></a>
+                                       <p class="lead">A cluster management 
framework for partitioned and replicated distributed resources</p>
                                </div>
                                <div class="pull-right">
-                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="" alt='"''"' /></a>
+                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="../images/feather_small.gif" alt='"''"' /></a>
                                </div>
                        </div>
                </div>
                <div>
                        <ul class="breadcrumb">
-                               <li><a href="" title="Apache Helix">Apache 
Helix </a></li>
+                               <li><a href="../" title="Apache Helix">Apache 
Helix </a></li>
                                <li class="divider">/</li>
-                               <li><a href="" title="Release 0.9.9">Release 
0.9.9 </a></li>
+                               <li><a href="./" title="Release 0.9.9">Release 
0.9.9 </a></li>
                                <li class="divider">/</li>
-                               <li>Tutorial - Helix Agent</li>
-                               <li class="publishDate version-date 
pull-right">Last Published: 2022-04-15</li>
+                               <li>  Tutorial - Helix Agent</li>
+                               <li class="publishDate version-date 
pull-right">Last Published: 2021-11-21</li>
                        </ul>
                </div>
        </header>
@@ -107,7 +118,169 @@
        <div class="row">
                <div class="span12">
                        <div class="body-content">
-$bodyWithHeader
+<!-- -
+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. --> 
+<p></p> 
+<div class="section"> 
+ <div class="page-header">
+  <h2 id="Helix_Tutorial:_Helix_Agent_for_non-JVM_systems"><a 
href="./Tutorial.html">Helix Tutorial</a>: Helix Agent (for non-JVM 
systems)</h2>
+ </div> 
+ <p>Not every distributed system is written on the JVM, but many systems would 
benefit from the cluster management features that Helix provides. To make a 
non-JVM system work with Helix, you can use the Helix Agent module.</p> 
+ <div class="section"> 
+  <h3 id="What_is_Helix_Agent">What is Helix Agent?</h3> 
+  <p>Helix is built on the following assumption: if your distributed resource 
is modeled by a finite state machine, then Helix can tell participants when 
they should transition between states. In the Java API, this means implementing 
transition callbacks. In the Helix agent API, this means providing commands 
than can run for each transition.</p> 
+  <p>These commands could do anything behind the scenes; Helix only requires 
that they exit once the state transition is complete.</p> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Configuring_Transition_Commands">Configuring Transition 
Commands</h3> 
+  <p>Here’s how to tell Helix which commands to run on state 
transitions:</p> 
+  <div class="section"> 
+   <h4 id="Java">Java</h4> 
+   <p>Using the Java API, first get a configuration scope (the Helix agent 
supports both cluster and resource scopes, picking resource first if it is 
available):</p> 
+   <div class="source"> 
+    <pre>// Cluster scope
+HelixConfigScope scope =
+    new 
HelixConfigScopeBuilder(ConfigScopeProperty.CLUSTER).forCluster(clusterName).build();
+
+// Resource scope
+HelixConfigScope scope =
+    new 
HelixConfigScopeBuilder(ConfigScopeProperty.RESOURCE).forCluster(clusterName).forResource(resourceName).build();
+</pre> 
+   </div> 
+   <p>Then, specify the command to run for each state transition:</p> 
+   <div class="source"> 
+    <pre>// Get the configuration accessor
+ConfigAccessor configAccessor = new ConfigAccessor(_gZkClient);
+
+// Specify the script for OFFLINE --&gt; ONLINE
+CommandConfig.Builder builder = new CommandConfig.Builder();
+CommandConfig cmdConfig =
+    builder.setTransition(&quot;OFFLINE&quot;, 
&quot;ONLINE&quot;).setCommand(&quot;simpleHttpClient.py OFFLINE-ONLINE&quot;)
+        .setCommandWorkingDir(workingDir)
+        .setCommandTimeout(&quot;5000L&quot;) // optional: ms to wait before 
failing
+        .setPidFile(pidFile) // optional: for daemon-like systems that will 
write the process id to a file
+        .build();
+configAccessor.set(scope, cmdConfig.toKeyValueMap());
+
+// Specify the script for ONLINE --&gt; OFFLINE
+builder = new CommandConfig.Builder();
+cmdConfig =
+    builder.setTransition(&quot;ONLINE&quot;, 
&quot;OFFLINE&quot;).setCommand(&quot;simpleHttpClient.py ONLINE-OFFLINE&quot;)
+        .setCommandWorkingDir(workingDir)
+        .build();
+configAccessor.set(scope, cmdConfig.toKeyValueMap());
+
+// Specify NOP for OFFLINE --&gt; DROPPED
+builder = new CommandConfig.Builder();
+cmdConfig =
+    builder.setTransition(&quot;OFFLINE&quot;, &quot;DROPPED&quot;)
+        .setCommand(CommandAttribute.NOP.getName())
+        .build();
+configAccessor.set(scope, cmdConfig.toKeyValueMap());
+</pre> 
+   </div> 
+   <p>In this example, we have a program called simpleHttpClient.py that we 
call for all transitions, only changing the arguments that are passed in. 
However, there is no requirement that each transition invoke the same program; 
this API allows running arbitrary commands in arbitrary directories with 
arbitrary arguments.</p> 
+   <p>Notice that that for the OFFLINE --&gt; DROPPED transition, we do not 
run any command (specifically, we specify the NOP command). This just tells 
Helix that the system doesn’t care about when things are dropped, and it can 
consider the transition already done.</p> 
+  </div> 
+  <div class="section"> 
+   <h4 id="Command_Line">Command Line</h4> 
+   <p>It is also possible to configure everything directly from the command 
line. Here’s how that would look for cluster-wide configuration:</p> 
+   <div class="source"> 
+    <pre># Specify the script for OFFLINE --&gt; ONLINE
+/helix-admin.sh --zkSvr localhost:2181 --setConfig CLUSTER clusterName 
OFFLINE-ONLINE.command=&quot;simpleHttpClient.py 
OFFLINE-ONLINE&quot;,OFFLINE-ONLINE.workingDir=&quot;/path/to/script&quot;, 
OFFLINE-ONLINE.command.pidfile=&quot;/path/to/pidfile&quot;
+
+# Specify the script for ONLINE --&gt; OFFLINE
+/helix-admin.sh --zkSvr localhost:2181 --setConfig CLUSTER clusterName 
ONLINE-OFFLINE.command=&quot;simpleHttpClient.py 
ONLINE-OFFLINE&quot;,ONLINE-OFFLINE.workingDir=&quot;/path/to/script&quot;, 
OFFLINE-ONLINE.command.pidfile=&quot;/path/to/pidfile&quot;
+
+# Specify NOP for OFFLINE --&gt; DROPPED
+/helix-admin.sh --zkSvr localhost:2181 --setConfig CLUSTER clusterName 
ONLINE-OFFLINE.command=&quot;nop&quot;
+</pre> 
+   </div> 
+   <p>Like in the Java configuration, it is also possible to specify a 
resource scope instead of a cluster scope:</p> 
+   <div class="source"> 
+    <pre># Specify the script for OFFLINE --&gt; ONLINE
+/helix-admin.sh --zkSvr localhost:2181 --setConfig RESOURCE 
clusterName,resourceName OFFLINE-ONLINE.command=&quot;simpleHttpClient.py 
OFFLINE-ONLINE&quot;,OFFLINE-ONLINE.workingDir=&quot;/path/to/script&quot;, 
OFFLINE-ONLINE.command.pidfile=&quot;/path/to/pidfile&quot;
+</pre> 
+   </div> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Starting_the_Agent">Starting the Agent</h3> 
+  <p>There should be an agent running for every participant you have running. 
Ideally, its lifecycle should match that of the participant. Here, we have a 
simple long-running participant called simpleHttpServer.py. Its only purpose is 
to record state transitions.</p> 
+  <p>Here are some ways that you can start the Helix agent:</p> 
+  <div class="section"> 
+   <h4 id="Java">Java</h4> 
+   <div class="source"> 
+    <pre>// Start your application process
+ExternalCommand serverCmd = ExternalCommand.start(workingDir + 
&quot;/simpleHttpServer.py&quot;);
+
+// Start the agent
+Thread agentThread = new Thread() {
+  @Override
+  public void run() {
+    while(!isInterrupted()) {
+      try {
+        HelixAgentMain.main(new String[] {
+            &quot;--zkSvr&quot;, zkAddr, &quot;--cluster&quot;, clusterName, 
&quot;--instanceName&quot;, instanceName,
+            &quot;--stateModel&quot;, &quot;OnlineOffline&quot;
+        });
+      } catch (InterruptedException e) {
+        LOG.info(&quot;Agent thread interrupted&quot;, e);
+        interrupt();
+      } catch (Exception e) {
+        LOG.error(&quot;Exception start helix-agent&quot;, e);
+      }
+    }
+  }
+};
+agentThread.start();
+
+// Wait for the process to terminate (either intentionally or unintentionally)
+serverCmd.waitFor();
+
+// Kill the agent
+agentThread.interrupt();
+</pre> 
+   </div> 
+  </div> 
+  <div class="section"> 
+   <h4 id="Command_Line">Command Line</h4> 
+   <div class="source"> 
+    <pre># Build Helix and start the agent
+mvn clean install -DskipTests
+chmod +x helix-agent/target/helix-agent-pkg/bin/*
+helix-agent/target/helix-agent-pkg/bin/start-helix-agent.sh --zkSvr 
zkAddr1,zkAddr2 --cluster clusterName --instanceName instanceName --stateModel 
OnlineOffline
+
+# Here, you can define your own logic to terminate this agent when your 
process terminates
+...
+</pre> 
+   </div> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Example">Example</h3> 
+  <p><a class="externalLink" 
href="https://git-wip-us.apache.org/repos/asf?p=helix.git;a=blob;f=helix-agent/src/test/java/org/apache/helix/agent/TestHelixAgent.java;h=ccf64ce5544207c7e48261682ea69945b71da7f1;hb=refs/heads/master";>Here</a>
 is a basic system that uses the Helix agent package.</p> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Notes">Notes</h3> 
+  <p>As you may have noticed from the examples, the participant program and 
the state transition program are two different programs. The former is a 
<i>long-running</i> process that is directly tied to the Helix agent. The 
latter is a process that only exists while a state transition is underway. 
Despite this, these two processes should be intertwined. The transition command 
will need to communicate to the participant to actually complete the state 
transition and the participant will need to communicate whether or not this was 
successful. The implementation of this protocol is the responsibility of the 
system.</p> 
+ </div> 
+</div>
                        </div>
                </div>
        </div>
@@ -120,43 +293,51 @@ $bodyWithHeader
        <footer class="well">
                <div class="container">
                        <div class="row">
-                               <div class="span9 bottom-nav">
+                               <div class="span3 bottom-nav">
                                        <ul class="nav nav-list">
                                                <li class="nav-header">Get 
Helix</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Download">Download </a>
+                                               <li>
+                                                       <a href="download.html" 
title="Download">Download </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Building">Building </a>
+                                               <li>
+                                                       <a href="Building.html" 
title="Building">Building </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Release Notes">Release Notes </a>
+                                               <li>
+                                                       <a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Hands-On</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Quick Start">Quick Start </a>
+                                               <li>
+                                                       <a 
href="Quickstart.html" title="Quick Start">Quick Start </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Tutorial">Tutorial </a>
+                                               <li>
+                                                       <a href="Tutorial.html" 
title="Tutorial">Tutorial </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Javadocs">Javadocs </a>
+                                               <li>
+                                                       <a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Recipes</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed lock manager">Distributed lock manager </a>
+                                               <li>
+                                                       <a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rabbit MQ consumer group">Rabbit MQ consumer group </a>
+                                               <li>
+                                                       <a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rsync replicated file store">Rsync replicated file store </a>
+                                               <li>
+                                                       <a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Service discovery">Service discovery </a>
+                                               <li>
+                                                       <a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed task DAG execution">Distributed task DAG execution </a>
+                                               <li>
+                                                       <a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a>
                                                </li>
                                        </ul>
                                </div>
@@ -168,9 +349,14 @@ $bodyWithHeader
                <div class="row">
                        <div class="span12">
                                <p class="pull-right"><a href="#">Back to 
top</a></p>
-                               <p class="copyright">Copyright &copy;2022 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
+                               <p class="copyright">Copyright &copy;2021 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
                                <p><a 
href="http://github.com/andriusvelykis/reflow-maven-skin"; title="Reflow Maven 
skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt"; 
target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
-                                       </div>
+               
+<div class="row span16">
+  <div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix 
project logos are trademarks of The Apache Software Foundation.
+        All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.</div>
+  <a href="http://helix.apache.org/0.9.9-docs/privacy-policy.html";>Privacy 
Policy</a>
+</div>                 </div>
                </div>
        </div>
 
@@ -188,7 +374,7 @@ $bodyWithHeader
                }
        </script>
        
-       <script 
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js";></script>
+       <script src="./js/bootstrap.min.js"></script>
        <script src="./js/lightbox.js"></script>
        <script src="./js/jquery.smooth-scroll.min.js"></script>
        <!-- back button support for smooth scroll -->

Modified: helix/site-content/0.9.9-docs/tutorial_controller.html
URL: 
http://svn.apache.org/viewvc/helix/site-content/0.9.9-docs/tutorial_controller.html?rev=1899879&r1=1899878&r2=1899879&view=diff
==============================================================================
--- helix/site-content/0.9.9-docs/tutorial_controller.html (original)
+++ helix/site-content/0.9.9-docs/tutorial_controller.html Fri Apr 15 07:06:37 
2022
@@ -1,20 +1,20 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2022-04-15
+ Generated by Apache Maven Doxia at 2021-11-21
  Rendered using Maven Reflow Skin 1.0.0 
(http://andriusvelykis.github.com/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
 
        <head>
                <meta charset="UTF-8" />
-               <title>Apache Helix &#x2013; Tutorial - Controller</title>
+               <title>Apache Helix -   Tutorial - Controller</title>
                <meta name="viewport" content="width=device-width, 
initial-scale=1.0" />
                <meta name="description" content="" />
                <meta http-equiv="content-language" content="en" />
 
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap.min.css";
 rel="stylesheet" />
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-responsive.min.css";
 rel="stylesheet" />
+               <link href="./css/bootstrap.min.css" rel="stylesheet" />
+               <link href="./css/bootstrap-responsive.min.css" 
rel="stylesheet" />
                <link href="./css/docs.css" rel="stylesheet" />
                <link href="./css/reflow-skin.css" rel="stylesheet" />
                
@@ -29,9 +29,18 @@
                        <script 
src="http://html5shim.googlecode.com/svn/trunk/html5.js";></script>
                <![endif]-->
                
+<script type="text/javascript">var _gaq = _gaq || [];
+        _gaq.push(['_setAccount', 'UA-3211522-12']);
+        _gaq.push(['_trackPageview']);
+
+        (function() {
+        var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+        })();</script>
        </head>
 
-       <body class="page-$config.fileId project-$config.projectId" 
data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
+       <body class="page-tutorial_controller project-099-docs" 
data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
 
                <div class="navbar navbar-fixed-top">
                        <div class="navbar-inner">
@@ -41,33 +50,34 @@
                                                <span class="icon-bar"></span>
                                                <span class="icon-bar"></span>
                                        </a>
+                                       <a class="brand" href="..">Apache 
Helix</a>
                                        <div class="nav-collapse">
                                                <ul class="nav pull-right">
-                                                       <li class="active"><a 
href="" title="Helix 0.9.9">Helix 0.9.9 </a></li>
-                                                       <li class="dropdown 
active">
+                                                       <li><a 
href="index.html" title="Helix 0.9.9">Helix 0.9.9 </a></li>
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Get Helix <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Download">Download </a></li>
-                                                                       <li 
class="active"><a href="" title="Building">Building </a></li>
-                                                                       <li 
class="active"><a href="" title="Release Notes">Release Notes </a></li>
+                                                                       <li><a 
href="download.html" title="Download">Download </a></li>
+                                                                       <li><a 
href="Building.html" title="Building">Building </a></li>
+                                                                       <li><a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes 
</a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Hands-On <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Quick Start">Quick Start </a></li>
-                                                                       <li 
class="active"><a href="" title="Tutorial">Tutorial </a></li>
-                                                                       <li 
class="active"><a href="" title="Javadocs">Javadocs </a></li>
+                                                                       <li><a 
href="Quickstart.html" title="Quick Start">Quick Start </a></li>
+                                                                       <li><a 
href="Tutorial.html" title="Tutorial">Tutorial </a></li>
+                                                                       <li><a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Recipes <b class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Distributed lock manager">Distributed lock 
manager </a></li>
-                                                                       <li 
class="active"><a href="" title="Rabbit MQ consumer group">Rabbit MQ consumer 
group </a></li>
-                                                                       <li 
class="active"><a href="" title="Rsync replicated file store">Rsync replicated 
file store </a></li>
-                                                                       <li 
class="active"><a href="" title="Service discovery">Service discovery </a></li>
-                                                                       <li 
class="active"><a href="" title="Distributed task DAG execution">Distributed 
task DAG execution </a></li>
+                                                                       <li><a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a></li>
+                                                                       <li><a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a></li>
+                                                                       <li><a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a></li>
+                                                                       <li><a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a></li>
+                                                                       <li><a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a></li>
                                                                </ul>
                                                        </li>
                                                </ul>
@@ -84,21 +94,22 @@
                <div class="row" id="banner">
                        <div class="span12">
                                <div class="pull-left">
-                                       <a href="" id="bannerLeft"><img src="" 
alt='"''"' /></a>
+                                       <a href="../" id="bannerLeft"><img 
src="../images/helix-logo.jpg" alt='"''"' /></a>
+                                       <p class="lead">A cluster management 
framework for partitioned and replicated distributed resources</p>
                                </div>
                                <div class="pull-right">
-                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="" alt='"''"' /></a>
+                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="../images/feather_small.gif" alt='"''"' /></a>
                                </div>
                        </div>
                </div>
                <div>
                        <ul class="breadcrumb">
-                               <li><a href="" title="Apache Helix">Apache 
Helix </a></li>
+                               <li><a href="../" title="Apache Helix">Apache 
Helix </a></li>
                                <li class="divider">/</li>
-                               <li><a href="" title="Release 0.9.9">Release 
0.9.9 </a></li>
+                               <li><a href="./" title="Release 0.9.9">Release 
0.9.9 </a></li>
                                <li class="divider">/</li>
-                               <li>Tutorial - Controller</li>
-                               <li class="publishDate version-date 
pull-right">Last Published: 2022-04-15</li>
+                               <li>  Tutorial - Controller</li>
+                               <li class="publishDate version-date 
pull-right">Last Published: 2021-11-21</li>
                        </ul>
                </div>
        </header>
@@ -107,7 +118,156 @@
        <div class="row">
                <div class="span12">
                        <div class="body-content">
-$bodyWithHeader
+<!-- -
+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. --> 
+<p></p> 
+<div class="section"> 
+ <div class="page-header">
+  <h2 id="Helix_Tutorial:_Controller"><a href="./Tutorial.html">Helix 
Tutorial</a>: Controller</h2>
+ </div> 
+ <p>Next, let's implement the controller. This is the brain of the cluster. 
Helix makes sure there is exactly one active controller running the 
cluster.</p> 
+ <div class="section"> 
+  <h3 id="Start_a_Connection">Start a Connection</h3> 
+  <p>The Helix manager requires the following parameters:</p> 
+  <ul> 
+   <li>clusterName: A logical name to represent the group of nodes</li> 
+   <li>instanceName: A logical name of the process creating the manager 
instance. Generally this is host:port</li> 
+   <li>instanceType: Type of the process. This can be one of the following 
types, in this case use CONTROLLER: 
+    <ul> 
+     <li>CONTROLLER: Process that controls the cluster, any number of 
controllers can be started but only one will be active at any given time</li> 
+     <li>PARTICIPANT: Process that performs the actual task in the distributed 
system</li> 
+     <li>SPECTATOR: Process that observes the changes in the cluster</li> 
+     <li>ADMIN: To carry out system admin actions</li> 
+    </ul></li> 
+   <li>zkConnectString: Connection string to ZooKeeper. This is of the form 
host1:port1,host2:port2,host3:port3</li> 
+  </ul> 
+  <div class="source"> 
+   <pre>manager = HelixManagerFactory.getZKHelixManager(clusterName,
+                                                instanceName,
+                                                instanceType,
+                                                zkConnectString);
+</pre> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Controller_Code">Controller Code</h3> 
+  <p>The Controller needs to know about all changes in the cluster. Helix 
takes care of this with the default implementation. If you need additional 
functionality, see GenericHelixController on how to configure the pipeline.</p> 
+  <div class="source"> 
+   <pre>manager = HelixManagerFactory.getZKHelixManager(clusterName,
+                                                instanceName,
+                                                InstanceType.CONTROLLER,
+                                                zkConnectString);
+manager.connect();
+</pre> 
+  </div> 
+  <p>The snippet above shows how the controller is started. You can also start 
the controller using command line interface.</p> 
+  <div class="source"> 
+   <pre>cd helix/helix-core/target/helix-core-pkg/bin
+./run-helix-controller.sh --zkSvr &lt;Zookeeper ServerAddress (Required)&gt;  
--cluster &lt;Cluster name (Required)&gt;
+</pre> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Controller_Deployment_Modes">Controller Deployment Modes</h3> 
+  <p>Helix provides multiple options to deploy the controller.</p> 
+  <div class="section"> 
+   <h4 id="STANDALONE">STANDALONE</h4> 
+   <p>The Controller can be started as a separate process to manage a cluster. 
This is the recommended approach. However, since one controller can be a single 
point of failure, multiple controller processes are required for reliability. 
Even if multiple controllers are running, only one will be actively managing 
the cluster at any time and is decided by a leader-election process. If the 
leader fails, another leader will take over managing the cluster.</p> 
+   <p>Even though we recommend this method of deployment, it has the drawback 
of having to manage an additional service for each cluster. See the Controller 
as a Service option.</p> 
+  </div> 
+  <div class="section"> 
+   <h4 id="EMBEDDED">EMBEDDED</h4> 
+   <p>If setting up a separate controller process is not viable, then it is 
possible to embed the controller as a library in each of the participants.</p> 
+  </div> 
+  <div class="section"> 
+   <h4 id="CONTROLLER_AS_A_SERVICE">CONTROLLER AS A SERVICE</h4> 
+   <p>One of the cool features we added in Helix was to use a set of 
controllers to manage a large number of clusters.</p> 
+   <p>For example if you have X clusters to be managed, instead of deploying 
X*3 (3 controllers for fault tolerance) controllers for each cluster, one can 
deploy just 3 controllers. Each controller can manage X/3 clusters. If any 
controller fails, the remaining two will manage X/2 clusters.</p> 
+   <p>Next, let's implement the controller. This is the brain of the cluster. 
Helix makes sure there is exactly one active controller running the 
cluster.</p> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Start_the_Helix_agent">Start the Helix agent</h3> 
+  <p>It requires the following parameters:</p> 
+  <ul> 
+   <li>clusterName: A logical name to represent the group of nodes</li> 
+   <li>instanceName: A logical name of the process creating the manager 
instance. Generally this is host:port.</li> 
+   <li>instanceType: Type of the process. This can be one of the following 
types, in this case use CONTROLLER: 
+    <ul> 
+     <li>CONTROLLER: Process that controls the cluster, any number of 
controllers can be started but only one will be active at any given time.</li> 
+     <li>PARTICIPANT: Process that performs the actual task in the distributed 
system.</li> 
+     <li>SPECTATOR: Process that observes the changes in the cluster.</li> 
+     <li>ADMIN: To carry out system admin actions.</li> 
+    </ul></li> 
+   <li>zkConnectString: Connection string to Zookeeper. This is of the form 
host1:port1,host2:port2,host3:port3.</li> 
+  </ul> 
+  <div class="source"> 
+   <pre>      manager = HelixManagerFactory.getZKHelixManager(clusterName,
+                                                      instanceName,
+                                                      instanceType,
+                                                      zkConnectString);
+</pre> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Controller_Code">Controller Code</h3> 
+  <p>The Controller needs to know about all changes in the cluster. Helix 
takes care of this with the default implementation. If you need additional 
functionality, see GenericHelixController on how to configure the pipeline.</p> 
+  <div class="source"> 
+   <pre>      manager = HelixManagerFactory.getZKHelixManager(clusterName,
+                                                          instanceName,
+                                                          
InstanceType.CONTROLLER,
+                                                          zkConnectString);
+     manager.connect();
+     GenericHelixController controller = new GenericHelixController();
+     manager.addControllerListener(controller);
+     manager.addInstanceConfigChangeListener(controller);
+     manager.addResourceConfigChangeListener(controller);
+     manager.addClusterfigChangeListener(controller);
+     manager.addLiveInstanceChangeListener(controller);
+     manager.addIdealStateChangeListener(controller);
+</pre> 
+  </div> 
+  <p>The snippet above shows how the controller is started. You can also start 
the controller using command line interface.</p> 
+  <div class="source"> 
+   <pre>cd helix/helix-core/target/helix-core-pkg/bin
+./run-helix-controller.sh --zkSvr &lt;Zookeeper ServerAddress (Required)&gt;  
--cluster &lt;Cluster name (Required)&gt;
+</pre> 
+  </div> 
+ </div> 
+ <div class="section"> 
+  <h3 id="Controller_Deployment_Modes">Controller Deployment Modes</h3> 
+  <p>Helix provides multiple options to deploy the controller.</p> 
+  <div class="section"> 
+   <h4 id="STANDALONE">STANDALONE</h4> 
+   <p>The Controller can be started as a separate process to manage a cluster. 
This is the recommended approach. However, since one controller can be a single 
point of failure, multiple controller processes are required for reliability. 
Even if multiple controllers are running, only one will be actively managing 
the cluster at any time and is decided by a leader-election process. If the 
leader fails, another leader will take over managing the cluster.</p> 
+   <p>Even though we recommend this method of deployment, it has the drawback 
of having to manage an additional service for each cluster. See Controller As a 
Service option.</p> 
+  </div> 
+  <div class="section"> 
+   <h4 id="EMBEDDED">EMBEDDED</h4> 
+   <p>If setting up a separate controller process is not viable, then it is 
possible to embed the controller as a library in each of the participants.</p> 
+  </div> 
+  <div class="section"> 
+   <h4 id="CONTROLLER_AS_A_SERVICE">CONTROLLER AS A SERVICE</h4> 
+   <p>One of the cool features we added in Helix is to use a set of 
controllers to manage a large number of clusters.</p> 
+   <p>For example if you have X clusters to be managed, instead of deploying 
X*3 (3 controllers for fault tolerance) controllers for each cluster, one can 
deploy just 3 controllers. Each controller can manage X/3 clusters. If any 
controller fails, the remaining two will manage X/2 clusters.</p> 
+  </div> 
+ </div> 
+</div>
                        </div>
                </div>
        </div>
@@ -120,43 +280,51 @@ $bodyWithHeader
        <footer class="well">
                <div class="container">
                        <div class="row">
-                               <div class="span9 bottom-nav">
+                               <div class="span3 bottom-nav">
                                        <ul class="nav nav-list">
                                                <li class="nav-header">Get 
Helix</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Download">Download </a>
+                                               <li>
+                                                       <a href="download.html" 
title="Download">Download </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Building">Building </a>
+                                               <li>
+                                                       <a href="Building.html" 
title="Building">Building </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Release Notes">Release Notes </a>
+                                               <li>
+                                                       <a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Hands-On</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Quick Start">Quick Start </a>
+                                               <li>
+                                                       <a 
href="Quickstart.html" title="Quick Start">Quick Start </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Tutorial">Tutorial </a>
+                                               <li>
+                                                       <a href="Tutorial.html" 
title="Tutorial">Tutorial </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Javadocs">Javadocs </a>
+                                               <li>
+                                                       <a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Recipes</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed lock manager">Distributed lock manager </a>
+                                               <li>
+                                                       <a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rabbit MQ consumer group">Rabbit MQ consumer group </a>
+                                               <li>
+                                                       <a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rsync replicated file store">Rsync replicated file store </a>
+                                               <li>
+                                                       <a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Service discovery">Service discovery </a>
+                                               <li>
+                                                       <a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed task DAG execution">Distributed task DAG execution </a>
+                                               <li>
+                                                       <a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a>
                                                </li>
                                        </ul>
                                </div>
@@ -168,9 +336,14 @@ $bodyWithHeader
                <div class="row">
                        <div class="span12">
                                <p class="pull-right"><a href="#">Back to 
top</a></p>
-                               <p class="copyright">Copyright &copy;2022 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
+                               <p class="copyright">Copyright &copy;2021 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
                                <p><a 
href="http://github.com/andriusvelykis/reflow-maven-skin"; title="Reflow Maven 
skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt"; 
target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
-                                       </div>
+               
+<div class="row span16">
+  <div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix 
project logos are trademarks of The Apache Software Foundation.
+        All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.</div>
+  <a href="http://helix.apache.org/0.9.9-docs/privacy-policy.html";>Privacy 
Policy</a>
+</div>                 </div>
                </div>
        </div>
 
@@ -188,7 +361,7 @@ $bodyWithHeader
                }
        </script>
        
-       <script 
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js";></script>
+       <script src="./js/bootstrap.min.js"></script>
        <script src="./js/lightbox.js"></script>
        <script src="./js/jquery.smooth-scroll.min.js"></script>
        <!-- back button support for smooth scroll -->

Modified: helix/site-content/0.9.9-docs/tutorial_health.html
URL: 
http://svn.apache.org/viewvc/helix/site-content/0.9.9-docs/tutorial_health.html?rev=1899879&r1=1899878&r2=1899879&view=diff
==============================================================================
--- helix/site-content/0.9.9-docs/tutorial_health.html (original)
+++ helix/site-content/0.9.9-docs/tutorial_health.html Fri Apr 15 07:06:37 2022
@@ -1,20 +1,20 @@
 
 <!DOCTYPE html>
 <!--
- Generated by Apache Maven Doxia at 2022-04-15
+ Generated by Apache Maven Doxia at 2021-11-21
  Rendered using Maven Reflow Skin 1.0.0 
(http://andriusvelykis.github.com/reflow-maven-skin)
 -->
 <html  xml:lang="en" lang="en">
 
        <head>
                <meta charset="UTF-8" />
-               <title>Apache Helix &#x2013; Tutorial - Customizing Heath 
Checks</title>
+               <title>Apache Helix -   Tutorial - Customizing Heath 
Checks</title>
                <meta name="viewport" content="width=device-width, 
initial-scale=1.0" />
                <meta name="description" content="" />
                <meta http-equiv="content-language" content="en" />
 
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap.min.css";
 rel="stylesheet" />
-               <link 
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-responsive.min.css";
 rel="stylesheet" />
+               <link href="./css/bootstrap.min.css" rel="stylesheet" />
+               <link href="./css/bootstrap-responsive.min.css" 
rel="stylesheet" />
                <link href="./css/docs.css" rel="stylesheet" />
                <link href="./css/reflow-skin.css" rel="stylesheet" />
                
@@ -29,9 +29,18 @@
                        <script 
src="http://html5shim.googlecode.com/svn/trunk/html5.js";></script>
                <![endif]-->
                
+<script type="text/javascript">var _gaq = _gaq || [];
+        _gaq.push(['_setAccount', 'UA-3211522-12']);
+        _gaq.push(['_trackPageview']);
+
+        (function() {
+        var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+        })();</script>
        </head>
 
-       <body class="page-$config.fileId project-$config.projectId" 
data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">
+       <body class="page-tutorial_health project-099-docs" data-spy="scroll" 
data-offset="60" data-target="#toc-scroll-target">
 
                <div class="navbar navbar-fixed-top">
                        <div class="navbar-inner">
@@ -41,33 +50,34 @@
                                                <span class="icon-bar"></span>
                                                <span class="icon-bar"></span>
                                        </a>
+                                       <a class="brand" href="..">Apache 
Helix</a>
                                        <div class="nav-collapse">
                                                <ul class="nav pull-right">
-                                                       <li class="active"><a 
href="" title="Helix 0.9.9">Helix 0.9.9 </a></li>
-                                                       <li class="dropdown 
active">
+                                                       <li><a 
href="index.html" title="Helix 0.9.9">Helix 0.9.9 </a></li>
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Get Helix <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Download">Download </a></li>
-                                                                       <li 
class="active"><a href="" title="Building">Building </a></li>
-                                                                       <li 
class="active"><a href="" title="Release Notes">Release Notes </a></li>
+                                                                       <li><a 
href="download.html" title="Download">Download </a></li>
+                                                                       <li><a 
href="Building.html" title="Building">Building </a></li>
+                                                                       <li><a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes 
</a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Hands-On <b 
class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Quick Start">Quick Start </a></li>
-                                                                       <li 
class="active"><a href="" title="Tutorial">Tutorial </a></li>
-                                                                       <li 
class="active"><a href="" title="Javadocs">Javadocs </a></li>
+                                                                       <li><a 
href="Quickstart.html" title="Quick Start">Quick Start </a></li>
+                                                                       <li><a 
href="Tutorial.html" title="Tutorial">Tutorial </a></li>
+                                                                       <li><a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a></li>
                                                                </ul>
                                                        </li>
-                                                       <li class="dropdown 
active">
+                                                       <li class="dropdown">
                                                                <a href="#" 
class="dropdown-toggle" data-toggle="dropdown">Recipes <b class="caret"></b></a>
                                                                <ul 
class="dropdown-menu">
-                                                                       <li 
class="active"><a href="" title="Distributed lock manager">Distributed lock 
manager </a></li>
-                                                                       <li 
class="active"><a href="" title="Rabbit MQ consumer group">Rabbit MQ consumer 
group </a></li>
-                                                                       <li 
class="active"><a href="" title="Rsync replicated file store">Rsync replicated 
file store </a></li>
-                                                                       <li 
class="active"><a href="" title="Service discovery">Service discovery </a></li>
-                                                                       <li 
class="active"><a href="" title="Distributed task DAG execution">Distributed 
task DAG execution </a></li>
+                                                                       <li><a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a></li>
+                                                                       <li><a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a></li>
+                                                                       <li><a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a></li>
+                                                                       <li><a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a></li>
+                                                                       <li><a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a></li>
                                                                </ul>
                                                        </li>
                                                </ul>
@@ -84,21 +94,22 @@
                <div class="row" id="banner">
                        <div class="span12">
                                <div class="pull-left">
-                                       <a href="" id="bannerLeft"><img src="" 
alt='"''"' /></a>
+                                       <a href="../" id="bannerLeft"><img 
src="../images/helix-logo.jpg" alt='"''"' /></a>
+                                       <p class="lead">A cluster management 
framework for partitioned and replicated distributed resources</p>
                                </div>
                                <div class="pull-right">
-                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="" alt='"''"' /></a>
+                                       <a href="http://www.apache.org/"; 
id="bannerRight"><img src="../images/feather_small.gif" alt='"''"' /></a>
                                </div>
                        </div>
                </div>
                <div>
                        <ul class="breadcrumb">
-                               <li><a href="" title="Apache Helix">Apache 
Helix </a></li>
+                               <li><a href="../" title="Apache Helix">Apache 
Helix </a></li>
                                <li class="divider">/</li>
-                               <li><a href="" title="Release 0.9.9">Release 
0.9.9 </a></li>
+                               <li><a href="./" title="Release 0.9.9">Release 
0.9.9 </a></li>
                                <li class="divider">/</li>
-                               <li>Tutorial - Customizing Heath Checks</li>
-                               <li class="publishDate version-date 
pull-right">Last Published: 2022-04-15</li>
+                               <li>  Tutorial - Customizing Heath Checks</li>
+                               <li class="publishDate version-date 
pull-right">Last Published: 2021-11-21</li>
                        </ul>
                </div>
        </header>
@@ -107,7 +118,44 @@
        <div class="row">
                <div class="span12">
                        <div class="body-content">
-$bodyWithHeader
+<!-- -
+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. --> 
+<p></p> 
+<div class="section"> 
+ <div class="page-header">
+  <h2 id="Helix_Tutorial:_Customizing_Health_Checks"><a 
href="./Tutorial.html">Helix Tutorial</a>: Customizing Health Checks</h2>
+ </div> 
+ <p>In this chapter, we'll learn how to customize health checks based on 
metrics of your distributed system.</p> 
+ <div class="section"> 
+  <h3 id="Health_Checks">Health Checks</h3> 
+  <p>Note: <i>this in currently in development mode, not yet ready for 
production.</i></p> 
+  <p>Helix provides the ability for each node in the system to report health 
metrics on a periodic basis.</p> 
+  <p>Helix supports multiple ways to aggregate these metrics:</p> 
+  <ul> 
+   <li>SUM</li> 
+   <li>AVG</li> 
+   <li>EXPONENTIAL DECAY</li> 
+   <li>WINDOW</li> 
+  </ul> 
+  <p>Helix persists the aggregated value only.</p> 
+  <p>Applications can define a threshold on the aggregate values according to 
the SLAs, and when the SLA is violated Helix will fire an alert. Currently 
Helix only fires an alert, but in a future release we plan to use these metrics 
to either mark the node dead or load balance the partitions. This feature will 
be valuable for distributed systems that support multi-tenancy and have a large 
variation in work load patterns. In addition, this can be used to detect skewed 
partitions (hotspots) and rebalance the cluster.</p> 
+ </div> 
+</div>
                        </div>
                </div>
        </div>
@@ -120,43 +168,51 @@ $bodyWithHeader
        <footer class="well">
                <div class="container">
                        <div class="row">
-                               <div class="span9 bottom-nav">
+                               <div class="span3 bottom-nav">
                                        <ul class="nav nav-list">
                                                <li class="nav-header">Get 
Helix</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Download">Download </a>
+                                               <li>
+                                                       <a href="download.html" 
title="Download">Download </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Building">Building </a>
+                                               <li>
+                                                       <a href="Building.html" 
title="Building">Building </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Release Notes">Release Notes </a>
+                                               <li>
+                                                       <a 
href="releasenotes/release-0.9.9.html" title="Release Notes">Release Notes </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Hands-On</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Quick Start">Quick Start </a>
+                                               <li>
+                                                       <a 
href="Quickstart.html" title="Quick Start">Quick Start </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Tutorial">Tutorial </a>
+                                               <li>
+                                                       <a href="Tutorial.html" 
title="Tutorial">Tutorial </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Javadocs">Javadocs </a>
+                                               <li>
+                                                       <a 
href="../javadocs/0.9.9" title="Javadocs">Javadocs </a>
                                                </li>
+                                       </ul>
+                               </div>
+                               <div class="span3 bottom-nav">
+                                       <ul class="nav nav-list">
                                                <li 
class="nav-header">Recipes</li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed lock manager">Distributed lock manager </a>
+                                               <li>
+                                                       <a 
href="recipes/lock_manager.html" title="Distributed lock manager">Distributed 
lock manager </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rabbit MQ consumer group">Rabbit MQ consumer group </a>
+                                               <li>
+                                                       <a 
href="recipes/rabbitmq_consumer_group.html" title="Rabbit MQ consumer 
group">Rabbit MQ consumer group </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Rsync replicated file store">Rsync replicated file store </a>
+                                               <li>
+                                                       <a 
href="recipes/rsync_replicated_file_store.html" title="Rsync replicated file 
store">Rsync replicated file store </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Service discovery">Service discovery </a>
+                                               <li>
+                                                       <a 
href="recipes/service_discovery.html" title="Service discovery">Service 
discovery </a>
                                                </li>
-                                               <li class="active">
-                                                       <a href="#" 
title="Distributed task DAG execution">Distributed task DAG execution </a>
+                                               <li>
+                                                       <a 
href="recipes/task_dag_execution.html" title="Distributed task DAG 
execution">Distributed task DAG execution </a>
                                                </li>
                                        </ul>
                                </div>
@@ -168,9 +224,14 @@ $bodyWithHeader
                <div class="row">
                        <div class="span12">
                                <p class="pull-right"><a href="#">Back to 
top</a></p>
-                               <p class="copyright">Copyright &copy;2022 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
+                               <p class="copyright">Copyright &copy;2021 <a 
href="https://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</p>
                                <p><a 
href="http://github.com/andriusvelykis/reflow-maven-skin"; title="Reflow Maven 
skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt"; 
target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
-                                       </div>
+               
+<div class="row span16">
+  <div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix 
project logos are trademarks of The Apache Software Foundation.
+        All other marks mentioned may be trademarks or registered trademarks 
of their respective owners.</div>
+  <a href="http://helix.apache.org/0.9.9-docs/privacy-policy.html";>Privacy 
Policy</a>
+</div>                 </div>
                </div>
        </div>
 
@@ -188,7 +249,7 @@ $bodyWithHeader
                }
        </script>
        
-       <script 
src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js";></script>
+       <script src="./js/bootstrap.min.js"></script>
        <script src="./js/lightbox.js"></script>
        <script src="./js/jquery.smooth-scroll.min.js"></script>
        <!-- back button support for smooth scroll -->


Reply via email to