http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/libs/spargel_guide.html
----------------------------------------------------------------------
diff --git a/content/docs/0.9/libs/spargel_guide.html 
b/content/docs/0.9/libs/spargel_guide.html
new file mode 100644
index 0000000..6e45e00
--- /dev/null
+++ b/content/docs/0.9/libs/spargel_guide.html
@@ -0,0 +1,313 @@
+<!--
+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.
+-->
+<!DOCTYPE html>
+
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    
+    <title>Apache Flink 0.9.0 Documentation: Spargel Graph Processing API - 
DEPRECATED</title>
+    
+    <link rel="shortcut icon" 
href="http://flink.apache.org/docs/0.9/page/favicon.ico"; type="image/x-icon">
+    <link rel="icon" href="http://flink.apache.org/docs/0.9/page/favicon.ico"; 
type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css";>
+    <link rel="stylesheet" 
href="http://flink.apache.org/docs/0.9/page/css/flink.css";>
+    <link rel="stylesheet" 
href="http://flink.apache.org/docs/0.9/page/css/syntax.css";>
+    <link rel="stylesheet" 
href="http://flink.apache.org/docs/0.9/page/css/codetabs.css";>
+    
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+  <body>
+    
+    
+
+
+
+
+    <!-- Top navbar. -->
+    <nav class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="http://flink.apache.org";><img alt="Apache Flink" 
src="http://flink.apache.org/docs/0.9/page/img/navbar-brand-logo.jpg";></a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" 
id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav">
+            <li><a 
href="http://flink.apache.org/docs/0.9/index.html";>Overview<span 
class="hidden-sm hidden-xs"> 0.9.0</span></a></li>
+
+            <!-- Setup -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/setup"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Setup <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/building.html";>Get Flink 
0.9-SNAPSHOT</a></li>
+
+                <li class="divider"></li>
+                <li role="presentation" 
class="dropdown-header"><strong>Deployment</strong></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/local_setup.html"; 
class="active">Local</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/cluster_setup.html";>Cluster 
(Standalone)</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/yarn_setup.html";>YARN</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/gce_setup.html";>GCloud</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/flink_on_tez.html";>Flink on Tez 
<span class="badge">Beta</span></a></li>
+
+                <li class="divider"></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/config.html";>Configuration</a></li>
+              </ul>
+            </li>
+
+            <!-- Programming Guides -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/apis"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Programming Guides <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/programming_guide.html";><strong>Batch:
 DataSet API</strong></a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/streaming_guide.html";><strong>Streaming:
 DataStream API</strong> <span class="badge">Beta</span></a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/python.html";>Python API <span 
class="badge">Beta</span></a></li>
+
+                <li class="divider"></li>
+                <li><a href="scala_shell.html">Interactive Scala Shell</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/dataset_transformations.html";>Dataset
 Transformations</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/best_practices.html";>Best 
Practices</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/example_connectors.html";>Connectors</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/examples.html";>Examples</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/local_execution.html";>Local 
Execution</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/cluster_execution.html";>Cluster 
Execution</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/cli.html";>Command Line 
Interface</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/web_client.html";>Web Client</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/iterations.html";>Iterations</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/java8.html";>Java 8</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/hadoop_compatibility.html";>Hadoop 
Compatability <span class="badge">Beta</span></a></li>
+              </ul>
+            </li>
+
+            <!-- Libraries -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/libs"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Libraries <span class="caret"></span></a>
+                <ul class="dropdown-menu" role="menu">
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/spargel_guide.html";>Graphs: 
Spargel</a></li>
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/gelly_guide.html";>Graphs: Gelly 
<span class="badge">Beta</span></a></li>
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/ml/";>Machine Learning <span 
class="badge">Beta</span></a></li>
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/table.html";>Relational: Table <span 
class="badge">Beta</span></a></li>
+              </ul>
+            </li>
+
+            <!-- Internals -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/internals"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Internals <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li role="presentation" 
class="dropdown-header"><strong>Contribute</strong></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/how_to_contribute.html";>How to 
Contribute</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/coding_guidelines.html";>Coding 
Guidelines</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/ide_setup.html";>IDE 
Setup</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/logging.html";>Logging</a></li>
+                <li class="divider"></li>
+                <li role="presentation" 
class="dropdown-header"><strong>Internals</strong></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/general_arch.html";>Architecture
 &amp; Process Model</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/types_serialization.html";>Type 
Extraction &amp; Serialization</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/job_scheduling.html";>Jobs 
&amp; Scheduling</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/add_operator.html";>How-To: Add 
an Operator</a></li>
+              </ul>
+            </li>
+          </ul>
+          <form class="navbar-form navbar-right hidden-sm hidden-md" 
role="search" action="http://flink.apache.org/docs/0.9/search-results.html";>
+            <div class="form-group">
+              <input type="text" class="form-control" name="q" 
placeholder="Search all pages">
+            </div>
+            <button type="submit" class="btn btn-default">Search</button>
+          </form>
+        </div><!-- /.navbar-collapse -->
+      </div><!-- /.container -->
+    </nav>
+
+
+    
+
+    <!-- Main content. -->
+    <div class="container">
+      
+      
+<div class="row">
+  <div class="col-sm-10 col-sm-offset-1">
+    <h1>Spargel Graph Processing API - DEPRECATED</h1>
+
+
+
+<p>Spargel is our <a href="http://giraph.apache.org";>Giraph</a> like 
<strong>graph processing</strong> Java API. It supports basic graph 
computations, which are run as a sequence of <a 
href="http://flink.apache.org/docs/0.9/apis/iterations.html#supersteps";>supersteps</a>.
 Spargel and Giraph both implement the <a 
href="https://en.wikipedia.org/wiki/Bulk_Synchronous_Parallel";>Bulk Synchronous 
Parallel (BSP)</a> programming model, propsed by Google’s <a 
href="http://googleresearch.blogspot.de/2009/06/large-scale-graph-computing-at-google.html";>Pregel</a>.</p>
+
+<p>The API provides a <strong>vertex-centric</strong> view on graph processing 
with two basic operations per superstep:</p>
+
+<ol>
+  <li><strong>Send messages</strong> to other vertices, and</li>
+  <li><strong>Receive messages</strong> from other vertices and <strong>update 
own vertex state</strong>.</li>
+</ol>
+
+<p>This vertex-centric view makes it easy to express a large class of graph 
problems efficiently. We will list all <em>relevant interfaces</em> of the 
<strong>Spargel API</strong> to implement and walk through an <strong>example 
Spargel program</strong>.</p>
+
+<ul id="markdown-toc">
+  <li><a href="#spargel-api---deprecated" 
id="markdown-toc-spargel-api---deprecated">Spargel API - DEPRECATED</a></li>
+  <li><a href="#example-propagate-minimum-vertex-id-in-graph" 
id="markdown-toc-example-propagate-minimum-vertex-id-in-graph">Example: 
Propagate Minimum Vertex ID in Graph</a></li>
+</ul>
+
+<h2 id="spargel-api---deprecated">Spargel API - DEPRECATED</h2>
+<p>The Spargel API is Deprecated. Please check out the new <a 
href="gelly_guide.html">Gelly API</a> for graph processing with Apache Flink. 
If you want to port your Spargel code into Gelly,
+please check the <a 
href="gelly_guide.html#migrating-spargel-code-to-gelly">migration guide</a>.</p>
+
+<p>The Spargel API is part of the <em>addons</em> Maven project. All relevant 
classes are located in the <em>org.apache.flink.spargel.java</em> package.</p>
+
+<p>Add the following dependency to your <code>pom.xml</code> to use the 
Spargel.</p>
+
+<div class="highlight"><pre><code class="language-xml"><span 
class="nt">&lt;dependency&gt;</span>
+       <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span 
class="nt">&lt;/groupId&gt;</span>
+       <span class="nt">&lt;artifactId&gt;</span>flink-spargel<span 
class="nt">&lt;/artifactId&gt;</span>
+       <span class="nt">&lt;version&gt;</span>0.9.0<span 
class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span></code></pre></div>
+
+<p>Extend <strong>VertexUpdateFunction&lt;</strong><em>VertexKeyType</em>, 
<em>VertexValueType</em>, <em>MessageType</em><strong>&gt;</strong> to 
implement your <em>custom vertex update logic</em>.</p>
+
+<p>Extend <strong>MessagingFunction&lt;</strong><em>VertexKeyType</em>, 
<em>VertexValueType</em>, <em>MessageType</em>, 
<em>EdgeValueType</em><strong>&gt;</strong> to implement your <em>custom 
message logic</em>.</p>
+
+<p>Create a <strong>SpargelIteration</strong> operator to include Spargel in 
your data flow.</p>
+
+<h2 id="example-propagate-minimum-vertex-id-in-graph">Example: Propagate 
Minimum Vertex ID in Graph</h2>
+
+<p>The Spargel operator <strong>SpargelIteration</strong> includes Spargel 
graph processing into your data flow. As usual, it can be combined with other 
operators like <em>map</em>, <em>reduce</em>, <em>join</em>, etc.</p>
+
+<div class="highlight"><pre><code class="language-java"><span 
class="n">FileDataSource</span> <span class="n">vertices</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nf">FileDataSource</span><span class="o">(...);</span>
+<span class="n">FileDataSource</span> <span class="n">edges</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nf">FileDataSource</span><span class="o">(...);</span>
+
+<span class="n">SpargelIteration</span> <span class="n">iteration</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nf">SpargelIteration</span><span class="o">(</span><span 
class="k">new</span> <span class="nf">MinMessager</span><span 
class="o">(),</span> <span class="k">new</span> <span 
class="nf">MinNeighborUpdater</span><span class="o">());</span>
+<span class="n">iteration</span><span class="o">.</span><span 
class="na">setVertexInput</span><span class="o">(</span><span 
class="n">vertices</span><span class="o">);</span>
+<span class="n">iteration</span><span class="o">.</span><span 
class="na">setEdgesInput</span><span class="o">(</span><span 
class="n">edges</span><span class="o">);</span>
+<span class="n">iteration</span><span class="o">.</span><span 
class="na">setNumberOfIterations</span><span class="o">(</span><span 
class="n">maxIterations</span><span class="o">);</span>
+
+<span class="n">FileDataSink</span> <span class="n">result</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nf">FileDataSink</span><span class="o">(...);</span>
+<span class="n">result</span><span class="o">.</span><span 
class="na">setInput</span><span class="o">(</span><span 
class="n">iteration</span><span class="o">.</span><span 
class="na">getOutput</span><span class="o">());</span>
+
+<span class="k">new</span> <span class="nf">Plan</span><span 
class="o">(</span><span class="n">result</span><span 
class="o">);</span></code></pre></div>
+
+<p>Besides the <strong>program logic</strong> of vertex updates in 
<em>MinNeighborUpdater</em> and messages in <em>MinMessager</em>, you have to 
specify the <strong>initial vertex</strong> and <strong>edge input</strong>. 
Every vertex has a <strong>key</strong> and <strong>value</strong>. In each 
superstep, it <strong>receives messages</strong> from other vertices and 
updates its state:</p>
+
+<ul>
+  <li><strong>Vertex</strong> input: <strong>(id</strong>: 
<em>VertexKeyType</em>, <strong>value</strong>: 
<em>VertexValueType</em><strong>)</strong></li>
+  <li><strong>Edge</strong> input: <strong>(source</strong>: 
<em>VertexKeyType</em>, <strong>target</strong>: <em>VertexKeyType</em>[, 
<strong>value</strong>: <em>EdgeValueType</em>])</li>
+</ul>
+
+<p>For our example, we set the vertex ID as both <em>id and value</em> 
(initial minimum) and <em>leave out the edge values</em> as we don’t need 
them:</p>
+
+<p class="text-center">
+    <img alt="Spargel Example Input" width="75%" 
src="fig/spargel_example_input.png" />
+</p>
+
+<p>In order to <strong>propagate the minimum vertex ID</strong>, we iterate 
over all received messages (which contain the neighboring IDs) and update our 
value, if we found a new minimum:</p>
+
+<div class="highlight"><pre><code class="language-java"><span 
class="kd">public</span> <span class="kd">class</span> <span 
class="nc">MinNeighborUpdater</span> <span class="kd">extends</span> <span 
class="n">VertexUpdateFunction</span><span class="o">&lt;</span><span 
class="n">IntValue</span><span class="o">,</span> <span 
class="n">IntValue</span><span class="o">,</span> <span 
class="n">IntValue</span><span class="o">&gt;</span> <span class="o">{</span>
+       
+       <span class="nd">@Override</span>
+       <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">updateVertex</span><span class="o">(</span><span 
class="n">IntValue</span> <span class="n">id</span><span class="o">,</span> 
<span class="n">IntValue</span> <span class="n">currentMin</span><span 
class="o">,</span> <span class="n">Iterator</span><span 
class="o">&lt;</span><span class="n">IntValue</span><span class="o">&gt;</span> 
<span class="n">messages</span><span class="o">)</span> <span class="o">{</span>
+               <span class="kt">int</span> <span class="n">min</span> <span 
class="o">=</span> <span class="n">Integer</span><span class="o">.</span><span 
class="na">MAX_VALUE</span><span class="o">;</span>
+
+               <span class="c1">// iterate over all received messages</span>
+               <span class="k">while</span> <span class="o">(</span><span 
class="n">messages</span><span class="o">.</span><span 
class="na">hasNext</span><span class="o">())</span> <span class="o">{</span>
+                       <span class="kt">int</span> <span class="n">next</span> 
<span class="o">=</span> <span class="n">messages</span><span 
class="o">.</span><span class="na">next</span><span class="o">().</span><span 
class="na">getValue</span><span class="o">();</span>
+                       <span class="n">min</span> <span class="o">=</span> 
<span class="n">next</span> <span class="o">&lt;</span> <span 
class="n">min</span> <span class="o">?</span> <span class="n">next</span> <span 
class="o">:</span> <span class="n">min</span><span class="o">;</span>
+               <span class="o">}</span>
+
+               <span class="c1">// update vertex value, if new minimum</span>
+               <span class="k">if</span> <span class="o">(</span><span 
class="n">min</span> <span class="o">&lt;</span> <span 
class="n">currentMin</span><span class="o">.</span><span 
class="na">getValue</span><span class="o">())</span> <span class="o">{</span>
+                       <span class="n">setNewVertexValue</span><span 
class="o">(</span><span class="k">new</span> <span 
class="nf">IntValue</span><span class="o">(</span><span 
class="n">min</span><span class="o">));</span>
+               <span class="o">}</span>
+       <span class="o">}</span>
+<span class="o">}</span></code></pre></div>
+
+<p>The <strong>messages in each superstep</strong> consist of the 
<strong>current minimum ID</strong> seen by the vertex:</p>
+
+<div class="highlight"><pre><code class="language-java"><span 
class="kd">public</span> <span class="kd">class</span> <span 
class="nc">MinMessager</span> <span class="kd">extends</span> <span 
class="n">MessagingFunction</span><span class="o">&lt;</span><span 
class="n">IntValue</span><span class="o">,</span> <span 
class="n">IntValue</span><span class="o">,</span> <span 
class="n">IntValue</span><span class="o">,</span> <span 
class="n">NullValue</span><span class="o">&gt;</span> <span class="o">{</span>
+       
+       <span class="nd">@Override</span>
+       <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">sendMessages</span><span class="o">(</span><span 
class="n">IntValue</span> <span class="n">id</span><span class="o">,</span> 
<span class="n">IntValue</span> <span class="n">currentMin</span><span 
class="o">)</span> <span class="o">{</span>
+               <span class="c1">// send current minimum to neighbors</span>
+               <span class="n">sendMessageToAllNeighbors</span><span 
class="o">(</span><span class="n">currentMin</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span></code></pre></div>
+
+<p>The <strong>API-provided method</strong> 
<code>sendMessageToAllNeighbors(MessageType)</code> sends the message to all 
neighboring vertices. It is also possible to address specific vertices with 
<code>sendMessageTo(VertexKeyType, MessageType)</code>.</p>
+
+<p>If the value of a vertex does not change during a superstep, it will 
<strong>not send</strong> any messages in the superstep. This allows to do 
incremental updates to the <strong>hot (changing) parts</strong> of the graph, 
while leaving <strong>cold (steady) parts</strong> untouched.</p>
+
+<p>The computation <strong>terminates</strong> after a specified <em>maximum 
number of supersteps</em> <strong>-OR-</strong> the <em>vertex states stop 
changing</em>.</p>
+
+<p class="text-center">
+    <img alt="Spargel Example" width="75%" src="fig/spargel_example.png" />
+</p>
+
+  </div>
+
+  <div class="col-sm-10 col-sm-offset-1">
+    <!-- Disqus thread and some vertical offset -->
+    <div style="margin-top: 75px; margin-bottom: 50px" 
id="disqus_thread"></div>
+  </div>
+</div>
+
+    </div><!-- /.container -->
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js";></script>
+    <!-- Include all compiled plugins (below), or include individual files as 
needed -->
+    <script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js";></script>
+    <script 
src="http://flink.apache.org/docs/0.9/page/js/codetabs.js";></script>
+
+    <!-- Google Analytics -->
+    <script>
+      
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+      
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+
+    <!-- Disqus -->
+    <script type="text/javascript">
+    var disqus_shortname = 'stratosphere-eu';
+    (function() {
+        var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
+        dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+        (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
+    })();
+</script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/libs/table.html
----------------------------------------------------------------------
diff --git a/content/docs/0.9/libs/table.html b/content/docs/0.9/libs/table.html
new file mode 100644
index 0000000..73bd084
--- /dev/null
+++ b/content/docs/0.9/libs/table.html
@@ -0,0 +1,302 @@
+<!--
+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.
+-->
+<!DOCTYPE html>
+
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <!-- The above 3 meta tags *must* come first in the head; any other head 
content must come *after* these tags -->
+    
+    <title>Apache Flink 0.9.0 Documentation: Table API - Relational 
Queries</title>
+    
+    <link rel="shortcut icon" 
href="http://flink.apache.org/docs/0.9/page/favicon.ico"; type="image/x-icon">
+    <link rel="icon" href="http://flink.apache.org/docs/0.9/page/favicon.ico"; 
type="image/x-icon">
+
+    <!-- Bootstrap -->
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css";>
+    <link rel="stylesheet" 
href="http://flink.apache.org/docs/0.9/page/css/flink.css";>
+    <link rel="stylesheet" 
href="http://flink.apache.org/docs/0.9/page/css/syntax.css";>
+    <link rel="stylesheet" 
href="http://flink.apache.org/docs/0.9/page/css/codetabs.css";>
+    
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+  <body>
+    
+    
+
+
+
+
+    <!-- Top navbar. -->
+    <nav class="navbar navbar-default navbar-fixed-top">
+      <div class="container">
+        <!-- The logo. -->
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <div class="navbar-logo">
+            <a href="http://flink.apache.org";><img alt="Apache Flink" 
src="http://flink.apache.org/docs/0.9/page/img/navbar-brand-logo.jpg";></a>
+          </div>
+        </div><!-- /.navbar-header -->
+
+        <!-- The navigation links. -->
+        <div class="collapse navbar-collapse" 
id="bs-example-navbar-collapse-1">
+          <ul class="nav navbar-nav">
+            <li><a 
href="http://flink.apache.org/docs/0.9/index.html";>Overview<span 
class="hidden-sm hidden-xs"> 0.9.0</span></a></li>
+
+            <!-- Setup -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/setup"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Setup <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/building.html";>Get Flink 
0.9-SNAPSHOT</a></li>
+
+                <li class="divider"></li>
+                <li role="presentation" 
class="dropdown-header"><strong>Deployment</strong></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/local_setup.html"; 
class="active">Local</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/cluster_setup.html";>Cluster 
(Standalone)</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/yarn_setup.html";>YARN</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/gce_setup.html";>GCloud</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/flink_on_tez.html";>Flink on Tez 
<span class="badge">Beta</span></a></li>
+
+                <li class="divider"></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/setup/config.html";>Configuration</a></li>
+              </ul>
+            </li>
+
+            <!-- Programming Guides -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/apis"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Programming Guides <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/programming_guide.html";><strong>Batch:
 DataSet API</strong></a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/streaming_guide.html";><strong>Streaming:
 DataStream API</strong> <span class="badge">Beta</span></a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/python.html";>Python API <span 
class="badge">Beta</span></a></li>
+
+                <li class="divider"></li>
+                <li><a href="scala_shell.html">Interactive Scala Shell</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/dataset_transformations.html";>Dataset
 Transformations</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/best_practices.html";>Best 
Practices</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/example_connectors.html";>Connectors</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/examples.html";>Examples</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/local_execution.html";>Local 
Execution</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/cluster_execution.html";>Cluster 
Execution</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/cli.html";>Command Line 
Interface</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/web_client.html";>Web Client</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/iterations.html";>Iterations</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/java8.html";>Java 8</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/apis/hadoop_compatibility.html";>Hadoop 
Compatability <span class="badge">Beta</span></a></li>
+              </ul>
+            </li>
+
+            <!-- Libraries -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/libs"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Libraries <span class="caret"></span></a>
+                <ul class="dropdown-menu" role="menu">
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/spargel_guide.html";>Graphs: 
Spargel</a></li>
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/gelly_guide.html";>Graphs: Gelly 
<span class="badge">Beta</span></a></li>
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/ml/";>Machine Learning <span 
class="badge">Beta</span></a></li>
+                  <li><a 
href="http://flink.apache.org/docs/0.9/libs/table.html";>Relational: Table <span 
class="badge">Beta</span></a></li>
+              </ul>
+            </li>
+
+            <!-- Internals -->
+            <li class="dropdown">
+              <a href="http://flink.apache.org/docs/0.9/internals"; 
class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-expanded="false">Internals <span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu">
+                <li role="presentation" 
class="dropdown-header"><strong>Contribute</strong></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/how_to_contribute.html";>How to 
Contribute</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/coding_guidelines.html";>Coding 
Guidelines</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/ide_setup.html";>IDE 
Setup</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/logging.html";>Logging</a></li>
+                <li class="divider"></li>
+                <li role="presentation" 
class="dropdown-header"><strong>Internals</strong></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/general_arch.html";>Architecture
 &amp; Process Model</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/types_serialization.html";>Type 
Extraction &amp; Serialization</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/job_scheduling.html";>Jobs 
&amp; Scheduling</a></li>
+                <li><a 
href="http://flink.apache.org/docs/0.9/internals/add_operator.html";>How-To: Add 
an Operator</a></li>
+              </ul>
+            </li>
+          </ul>
+          <form class="navbar-form navbar-right hidden-sm hidden-md" 
role="search" action="http://flink.apache.org/docs/0.9/search-results.html";>
+            <div class="form-group">
+              <input type="text" class="form-control" name="q" 
placeholder="Search all pages">
+            </div>
+            <button type="submit" class="btn btn-default">Search</button>
+          </form>
+        </div><!-- /.navbar-collapse -->
+      </div><!-- /.container -->
+    </nav>
+
+
+    
+
+    <!-- Main content. -->
+    <div class="container">
+      
+      
+<div class="row">
+  <div class="col-sm-10 col-sm-offset-1">
+    <h1>Table API - Relational Queries <span class="badge">Beta</span></h1>
+
+
+
+<p><strong>The Table API an experimental feature</strong></p>
+
+<p>Flink provides an API that allows specifying operations using SQL-like 
expressions. Instead of 
+manipulating <code>DataSet</code> or <code>DataStream</code> you work with 
<code>Table</code> on which relational operations can
+be performed.</p>
+
+<p>The following dependency must be added to your project when using the Table 
API:</p>
+
+<div class="highlight"><pre><code class="language-xml" data-lang="xml"><span 
class="nt">&lt;dependency&gt;</span>
+  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span 
class="nt">&lt;/groupId&gt;</span>
+  <span class="nt">&lt;artifactId&gt;</span>flink-table<span 
class="nt">&lt;/artifactId&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.9.0<span 
class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span></code></pre></div>
+
+<p>Note that the Table API is currently not part of the binary distribution. 
See linking with it for cluster execution <a 
href="../apis/cluster_execution.html#linking-with-modules-not-contained-in-the-binary-distribution">here</a>.</p>
+
+<h2 id="scala-table-api">Scala Table API</h2>
+
+<p>The Table API can be enabled by importing 
<code>org.apache.flink.api.scala.table._</code>.  This enables
+implicit conversions that allow
+converting a DataSet or DataStream to a Table. This example shows how a 
DataSet can
+be converted, how relational queries can be specified and how a Table can be
+converted back to a DataSet:</p>
+
+<div class="highlight"><pre><code class="language-scala" 
data-lang="scala"><span class="k">import</span> <span 
class="nn">org.apache.flink.api.scala._</span>
+<span class="k">import</span> <span 
class="nn">org.apache.flink.api.scala.table._</span> 
+
+<span class="k">case</span> <span class="k">class</span> <span 
class="nc">WC</span><span class="o">(</span><span class="n">word</span><span 
class="k">:</span> <span class="kt">String</span><span class="o">,</span> <span 
class="n">count</span><span class="k">:</span> <span class="kt">Int</span><span 
class="o">)</span>
+<span class="k">val</span> <span class="n">input</span> <span 
class="k">=</span> <span class="n">env</span><span class="o">.</span><span 
class="n">fromElements</span><span class="o">(</span><span 
class="nc">WC</span><span class="o">(</span><span 
class="s">&quot;hello&quot;</span><span class="o">,</span> <span 
class="mi">1</span><span class="o">),</span> <span class="nc">WC</span><span 
class="o">(</span><span class="s">&quot;hello&quot;</span><span 
class="o">,</span> <span class="mi">1</span><span class="o">),</span> <span 
class="nc">WC</span><span class="o">(</span><span 
class="s">&quot;ciao&quot;</span><span class="o">,</span> <span 
class="mi">1</span><span class="o">))</span>
+<span class="k">val</span> <span class="n">expr</span> <span 
class="k">=</span> <span class="n">input</span><span class="o">.</span><span 
class="n">toTable</span>
+<span class="k">val</span> <span class="n">result</span> <span 
class="k">=</span> <span class="n">expr</span><span class="o">.</span><span 
class="n">groupBy</span><span class="o">(</span><span 
class="-Symbol">&#39;word</span><span class="o">).</span><span 
class="n">select</span><span class="o">(</span><span 
class="-Symbol">&#39;word</span><span class="o">,</span> <span 
class="-Symbol">&#39;count</span><span class="o">.</span><span 
class="n">sum</span> <span class="n">as</span> <span 
class="-Symbol">&#39;count</span><span class="o">).</span><span 
class="n">toDataSet</span><span class="o">[</span><span 
class="kt">WC</span><span class="o">]</span></code></pre></div>
+
+<p>The expression DSL uses Scala symbols to refer to field names and we use 
code generation to
+transform expressions to efficient runtime code. Please note that the 
conversion to and from
+Tables only works when using Scala case classes or Flink POJOs. Please check 
out
+the <a href="programming_guide.html">programming guide</a> to learn the 
requirements for a class to be 
+considered a POJO.</p>
+
+<p>This is another example that shows how you
+can join to Tables:</p>
+
+<div class="highlight"><pre><code class="language-scala" 
data-lang="scala"><span class="k">case</span> <span class="k">class</span> 
<span class="nc">MyResult</span><span class="o">(</span><span 
class="n">a</span><span class="k">:</span> <span class="kt">String</span><span 
class="o">,</span> <span class="n">d</span><span class="k">:</span> <span 
class="kt">Int</span><span class="o">)</span>
+
+<span class="k">val</span> <span class="n">input1</span> <span 
class="k">=</span> <span class="n">env</span><span class="o">.</span><span 
class="n">fromElements</span><span class="o">(...).</span><span 
class="n">toTable</span><span class="o">(</span><span 
class="-Symbol">&#39;a</span><span class="o">,</span> <span 
class="-Symbol">&#39;b</span><span class="o">)</span>
+<span class="k">val</span> <span class="n">input2</span> <span 
class="k">=</span> <span class="n">env</span><span class="o">.</span><span 
class="n">fromElements</span><span class="o">(...).</span><span 
class="n">toTable</span><span class="o">(</span><span 
class="-Symbol">&#39;c</span><span class="o">,</span> <span 
class="-Symbol">&#39;d</span><span class="o">)</span>
+<span class="k">val</span> <span class="n">joined</span> <span 
class="k">=</span> <span class="n">input1</span><span class="o">.</span><span 
class="n">join</span><span class="o">(</span><span class="n">input2</span><span 
class="o">).</span><span class="n">where</span><span class="o">(</span><span 
class="s">&quot;b = a &amp;&amp; d &gt; 42&quot;</span><span 
class="o">).</span><span class="n">select</span><span class="o">(</span><span 
class="s">&quot;a, d&quot;</span><span class="o">).</span><span 
class="n">toDataSet</span><span class="o">[</span><span 
class="kt">MyResult</span><span class="o">]</span></code></pre></div>
+
+<p>Notice, how a DataSet can be converted to a Table by using <code>as</code> 
and specifying new
+names for the fields. This can also be used to disambiguate fields before a 
join operation. Also,
+in this example we see that you can also use Strings to specify relational 
expressions.</p>
+
+<p>Please refer to the Scaladoc (and Javadoc) for a full list of supported 
operations and a
+description of the expression syntax.</p>
+
+<h2 id="java-table-api">Java Table API</h2>
+
+<p>When using Java, Tables can be converted to and from DataSet and DataStream 
using <code>TableEnvironment</code>.
+This example is equivalent to the above Scala Example:</p>
+
+<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">public</span> <span class="kd">class</span> <span 
class="nc">WC</span> <span class="o">{</span>
+
+  <span class="kd">public</span> <span class="nf">WC</span><span 
class="o">(</span><span class="n">String</span> <span 
class="n">word</span><span class="o">,</span> <span class="kt">int</span> <span 
class="n">count</span><span class="o">)</span> <span class="o">{</span>
+    <span class="k">this</span><span class="o">.</span><span 
class="na">word</span> <span class="o">=</span> <span 
class="n">word</span><span class="o">;</span> <span class="k">this</span><span 
class="o">.</span><span class="na">count</span> <span class="o">=</span> <span 
class="n">count</span><span class="o">;</span>
+  <span class="o">}</span>
+
+  <span class="kd">public</span> <span class="nf">WC</span><span 
class="o">()</span> <span class="o">{}</span> <span class="c1">// empty 
constructor to satisfy POJO requirements</span>
+
+  <span class="kd">public</span> <span class="n">String</span> <span 
class="n">word</span><span class="o">;</span>
+  <span class="kd">public</span> <span class="kt">int</span> <span 
class="n">count</span><span class="o">;</span>
+<span class="o">}</span>
+
+<span class="o">...</span>
+
+<span class="n">ExecutionEnvironment</span> <span class="n">env</span> <span 
class="o">=</span> <span class="n">ExecutionEnvironment</span><span 
class="o">.</span><span class="na">createCollectionsEnvironment</span><span 
class="o">();</span>
+<span class="n">TableEnvironment</span> <span class="n">tableEnv</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nf">TableEnvironment</span><span class="o">();</span>
+
+<span class="n">DataSet</span><span class="o">&lt;</span><span 
class="n">WC</span><span class="o">&gt;</span> <span class="n">input</span> 
<span class="o">=</span> <span class="n">env</span><span 
class="o">.</span><span class="na">fromElements</span><span class="o">(</span>
+        <span class="k">new</span> <span class="nf">WC</span><span 
class="o">(</span><span class="s">&quot;Hello&quot;</span><span 
class="o">,</span> <span class="mi">1</span><span class="o">),</span>
+        <span class="k">new</span> <span class="nf">WC</span><span 
class="o">(</span><span class="s">&quot;Ciao&quot;</span><span 
class="o">,</span> <span class="mi">1</span><span class="o">),</span>
+        <span class="k">new</span> <span class="nf">WC</span><span 
class="o">(</span><span class="s">&quot;Hello&quot;</span><span 
class="o">,</span> <span class="mi">1</span><span class="o">));</span>
+
+<span class="n">Table</span> <span class="n">table</span> <span 
class="o">=</span> <span class="n">tableEnv</span><span class="o">.</span><span 
class="na">fromDataSet</span><span class="o">(</span><span 
class="n">input</span><span class="o">);</span>
+
+<span class="n">Table</span> <span class="n">filtered</span> <span 
class="o">=</span> <span class="n">table</span>
+        <span class="o">.</span><span class="na">groupBy</span><span 
class="o">(</span><span class="s">&quot;word&quot;</span><span 
class="o">)</span>
+        <span class="o">.</span><span class="na">select</span><span 
class="o">(</span><span class="s">&quot;word.count as count, 
word&quot;</span><span class="o">)</span>
+        <span class="o">.</span><span class="na">filter</span><span 
class="o">(</span><span class="s">&quot;count = 2&quot;</span><span 
class="o">);</span>
+
+<span class="n">DataSet</span><span class="o">&lt;</span><span 
class="n">WC</span><span class="o">&gt;</span> <span class="n">result</span> 
<span class="o">=</span> <span class="n">tableEnv</span><span 
class="o">.</span><span class="na">toDataSet</span><span 
class="o">(</span><span class="n">filtered</span><span class="o">,</span> <span 
class="n">WC</span><span class="o">.</span><span class="na">class</span><span 
class="o">);</span></code></pre></div>
+
+<p>When using Java, the embedded DSL for specifying expressions cannot be 
used. Only String expressions
+are supported. They support exactly the same feature set as the expression 
DSL.</p>
+
+<p>Please refer to the Javadoc for a full list of supported operations and a 
description of the
+expression syntax.</p>
+
+
+  </div>
+
+  <div class="col-sm-10 col-sm-offset-1">
+    <!-- Disqus thread and some vertical offset -->
+    <div style="margin-top: 75px; margin-bottom: 50px" 
id="disqus_thread"></div>
+  </div>
+</div>
+
+    </div><!-- /.container -->
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js";></script>
+    <!-- Include all compiled plugins (below), or include individual files as 
needed -->
+    <script 
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js";></script>
+    <script 
src="http://flink.apache.org/docs/0.9/page/js/codetabs.js";></script>
+
+    <!-- Google Analytics -->
+    <script>
+      
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
+      
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-52545728-1', 'auto');
+      ga('send', 'pageview');
+    </script>
+
+    <!-- Disqus -->
+    <script type="text/javascript">
+    var disqus_shortname = 'stratosphere-eu';
+    (function() {
+        var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
+        dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+        (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
+    })();
+</script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/css/codetabs.css
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/css/codetabs.css 
b/content/docs/0.9/page/css/codetabs.css
new file mode 100644
index 0000000..420d559
--- /dev/null
+++ b/content/docs/0.9/page/css/codetabs.css
@@ -0,0 +1,62 @@
+/**
+ * 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.
+**/
+
+/**
+ * Make dropdown menus in nav bars show on hover instead of click
+ * using solution at http://stackoverflow.com/questions/8878033/how-
+ * to-make-twitter-bootstrap-menu-dropdown-on-hover-rather-than-click
+ **/
+ul.nav li.dropdown:hover ul.dropdown-menu{
+  display: block;
+}
+
+a.menu:after, .dropdown-toggle:after {
+  content: none;
+}
+
+/** Make the submenus open on hover on the parent menu item */
+ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu:hover ul.dropdown-menu 
{
+  display: block;
+}
+
+/** Make the submenus be invisible until the parent menu item is hovered upon 
*/
+ul.nav li.dropdown ul.dropdown-menu li.dropdown-submenu ul.dropdown-menu {
+  display: none;
+}
+
+/**
+ * Made the navigation bar buttons not grey out when clicked.
+ * Essentially making nav bar buttons not react to clicks, only hover events.
+ */
+.navbar .nav li.dropdown.open > .dropdown-toggle {
+  background-color: transparent;
+}
+
+/**
+ * Made the active tab caption blue. Otherwise the active tab is black, and 
inactive tab is blue.
+ * That looks weird. Changed the colors to active - blue, inactive - black, and
+ * no color change on hover.
+ */
+.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
+  color: #08c;
+}
+
+.nav-tabs > li > a, .nav-tabs > li > a:hover {
+  color: #333;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/css/flink.css
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/css/flink.css 
b/content/docs/0.9/page/css/flink.css
new file mode 100644
index 0000000..9074e23
--- /dev/null
+++ b/content/docs/0.9/page/css/flink.css
@@ -0,0 +1,123 @@
+/*
+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.
+*/
+/*=============================================================================
+                         Navbar at the top of the page
+=============================================================================*/
+
+/* Padding at top because of the fixed navbar. */
+body {
+       padding-top: 70px;
+}
+
+/* Our logo. */
+.navbar-logo {
+       padding: 5px 15px 5px 15px;
+}
+.navbar-logo img {
+       height: 40px;
+}
+
+/* Links */
+.navbar-default .navbar-nav > li > a {
+       color: black;
+       font-weight: bold;
+}
+.navbar-default .navbar-nav > li > a:hover {
+       background: #E7E7E7;
+}
+
+.navbar-collapse .dropdown-header {
+       color: black;
+}
+
+.version {
+       display: block-inline;
+       font-size: 90%;
+}
+
+/*=============================================================================
+                        Navbar at the side of the page
+=============================================================================*/
+
+/* Move the side nav a little bit down to align with the main heading */
+#markdown-toc {
+       font-size: 90%;
+}
+
+/* Custom list styling */
+#markdown-toc, #markdown-toc ul {
+       list-style: none;
+       display: block;
+       position: relative;
+       padding-left: 0;
+       margin-bottom: 0;
+}
+
+/* All element */
+#markdown-toc li > a {
+       display: block;
+       padding: 5px 10px;
+       border: 1px solid #E5E5E5;
+       margin:-1px;
+}
+#markdown-toc li > a:hover,
+#markdown-toc li > a:focus {
+  text-decoration: none;
+  background-color: #eee;
+}
+
+/* 1st-level elements */
+#markdown-toc > li > a {
+       font-weight: bold;
+}
+
+/* 2nd-level element */
+#markdown-toc > li li > a {
+       padding-left: 20px; /* A little more indentation*/
+}
+
+/* >= 3rd-level element */
+#markdown-toc > li li li {
+       display: none; /* hide */
+}
+
+#markdown-toc li:last-child > a {
+       border-bottom: 1px solid #E5E5E5;
+}
+
+/*=============================================================================
+                                    Text
+=============================================================================*/
+
+h2, h3 {
+       padding-top: 1em;
+       padding-bottom: 5px;
+       border-bottom: 1px solid #E5E5E5;
+}
+
+code {
+       background: #f5f5f5;
+  padding: 0;
+  color: #333333;
+  font-family: "Menlo", "Lucida Console", monospace;
+}
+
+pre {
+       font-size: 85%;
+}

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/css/syntax.css
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/css/syntax.css 
b/content/docs/0.9/page/css/syntax.css
new file mode 100644
index 0000000..ba3c0ba
--- /dev/null
+++ b/content/docs/0.9/page/css/syntax.css
@@ -0,0 +1,79 @@
+/**
+ * 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.
+**/
+
+.highlight  { background: #ffffff; }
+.highlight .c { color: #999988; font-style: italic } /* Comment */
+.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.highlight .k { font-weight: bold } /* Keyword */
+.highlight .o { font-weight: bold } /* Operator */
+.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* 
Comment.Special */
+.highlight .gd { color: #000000; background-color: #ffdddd } /* 
Generic.Deleted */
+.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* 
Generic.Deleted.Specific */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #aa0000 } /* Generic.Error */
+.highlight .gh { color: #999999 } /* Generic.Heading */
+.highlight .gi { color: #000000; background-color: #ddffdd } /* 
Generic.Inserted */
+.highlight .gi .x { color: #000000; background-color: #aaffaa } /* 
Generic.Inserted.Specific */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #555555 } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
+.highlight .gt { color: #aa0000 } /* Generic.Traceback */
+.highlight .kc { font-weight: bold } /* Keyword.Constant */
+.highlight .kd { font-weight: bold } /* Keyword.Declaration */
+.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
+.highlight .kr { font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #009999 } /* Literal.Number */
+.highlight .s { color: #d14 } /* Literal.String */
+.highlight .na { color: #008080 } /* Name.Attribute */
+.highlight .nb { color: #0086B3 } /* Name.Builtin */
+.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
+.highlight .no { color: #008080 } /* Name.Constant */
+.highlight .ni { color: #800080 } /* Name.Entity */
+.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
+.highlight .nn { color: #555555 } /* Name.Namespace */
+.highlight .nt { color: #000080 } /* Name.Tag */
+.highlight .nv { color: #008080 } /* Name.Variable */
+.highlight .ow { font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #009999 } /* Literal.Number.Float */
+.highlight .mh { color: #009999 } /* Literal.Number.Hex */
+.highlight .mi { color: #009999 } /* Literal.Number.Integer */
+.highlight .mo { color: #009999 } /* Literal.Number.Oct */
+.highlight .sb { color: #d14 } /* Literal.String.Backtick */
+.highlight .sc { color: #d14 } /* Literal.String.Char */
+.highlight .sd { color: #d14 } /* Literal.String.Doc */
+.highlight .s2 { color: #d14 } /* Literal.String.Double */
+.highlight .se { color: #d14 } /* Literal.String.Escape */
+.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
+.highlight .si { color: #d14 } /* Literal.String.Interpol */
+.highlight .sx { color: #d14 } /* Literal.String.Other */
+.highlight .sr { color: #009926 } /* Literal.String.Regex */
+.highlight .s1 { color: #d14 } /* Literal.String.Single */
+.highlight .ss { color: #990073 } /* Literal.String.Symbol */
+.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #008080 } /* Name.Variable.Class */
+.highlight .vg { color: #008080 } /* Name.Variable.Global */
+.highlight .vi { color: #008080 } /* Name.Variable.Instance */
+.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/favicon.ico
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/favicon.ico 
b/content/docs/0.9/page/favicon.ico
new file mode 100644
index 0000000..34a467a
Binary files /dev/null and b/content/docs/0.9/page/favicon.ico differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/LICENSE.txt
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/LICENSE.txt 
b/content/docs/0.9/page/img/LICENSE.txt
new file mode 100644
index 0000000..35b8673
--- /dev/null
+++ b/content/docs/0.9/page/img/LICENSE.txt
@@ -0,0 +1,17 @@
+All image files in the folder and its subfolders are
+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.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/navbar-brand-logo.jpg
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/navbar-brand-logo.jpg 
b/content/docs/0.9/page/img/navbar-brand-logo.jpg
new file mode 100644
index 0000000..5993ee8
Binary files /dev/null and b/content/docs/0.9/page/img/navbar-brand-logo.jpg 
differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/compiler-webclient-new.png
----------------------------------------------------------------------
diff --git 
a/content/docs/0.9/page/img/quickstart-example/compiler-webclient-new.png 
b/content/docs/0.9/page/img/quickstart-example/compiler-webclient-new.png
new file mode 100644
index 0000000..e60689e
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/compiler-webclient-new.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/jobmanager-running-new.png
----------------------------------------------------------------------
diff --git 
a/content/docs/0.9/page/img/quickstart-example/jobmanager-running-new.png 
b/content/docs/0.9/page/img/quickstart-example/jobmanager-running-new.png
new file mode 100644
index 0000000..6255022
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/jobmanager-running-new.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/kmeans003.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/kmeans003.png 
b/content/docs/0.9/page/img/quickstart-example/kmeans003.png
new file mode 100644
index 0000000..32f8dbb
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/kmeans003.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/kmeans008.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/kmeans008.png 
b/content/docs/0.9/page/img/quickstart-example/kmeans008.png
new file mode 100644
index 0000000..b372fd1
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/kmeans008.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/kmeans015.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/kmeans015.png 
b/content/docs/0.9/page/img/quickstart-example/kmeans015.png
new file mode 100644
index 0000000..8b6fb51
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/kmeans015.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/result003.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/result003.png 
b/content/docs/0.9/page/img/quickstart-example/result003.png
new file mode 100644
index 0000000..bdcef44
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/result003.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/result008.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/result008.png 
b/content/docs/0.9/page/img/quickstart-example/result008.png
new file mode 100644
index 0000000..921c73c
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/result008.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/result015.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/result015.png 
b/content/docs/0.9/page/img/quickstart-example/result015.png
new file mode 100644
index 0000000..9dbc6c4
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/result015.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart-example/run-webclient.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart-example/run-webclient.png 
b/content/docs/0.9/page/img/quickstart-example/run-webclient.png
new file mode 100644
index 0000000..8b3d535
Binary files /dev/null and 
b/content/docs/0.9/page/img/quickstart-example/run-webclient.png differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/img/quickstart_cluster.png
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/img/quickstart_cluster.png 
b/content/docs/0.9/page/img/quickstart_cluster.png
new file mode 100644
index 0000000..9e24795
Binary files /dev/null and b/content/docs/0.9/page/img/quickstart_cluster.png 
differ

http://git-wip-us.apache.org/repos/asf/flink-web/blob/396616d4/content/docs/0.9/page/js/codetabs.js
----------------------------------------------------------------------
diff --git a/content/docs/0.9/page/js/codetabs.js 
b/content/docs/0.9/page/js/codetabs.js
new file mode 100644
index 0000000..878aa32
--- /dev/null
+++ b/content/docs/0.9/page/js/codetabs.js
@@ -0,0 +1,121 @@
+/*
+ * 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.
+ */
+
+/* Note: This file is originally from the Apache Spark project. */
+
+/* Custom JavaScript code in the MarkDown docs */
+
+// Enable language-specific code tabs
+function codeTabs() {
+  var counter = 0;
+  var langImages = {
+    "scala": "img/scala-sm.png",
+    "python": "img/python-sm.png",
+    "java": "img/java-sm.png"
+  };
+  $("div.codetabs").each(function() {
+    $(this).addClass("tab-content");
+
+    // Insert the tab bar
+    var tabBar = $('<ul class="nav nav-tabs" data-tabs="tabs"></ul>');
+    $(this).before(tabBar);
+
+    // Add each code sample to the tab bar:
+    var codeSamples = $(this).children("div");
+    codeSamples.each(function() {
+      $(this).addClass("tab-pane");
+      var lang = $(this).data("lang");
+      var image = $(this).data("image");
+      var notabs = $(this).data("notabs");
+      var capitalizedLang = lang.substr(0, 1).toUpperCase() + lang.substr(1);
+      var id = "tab_" + lang + "_" + counter;
+      $(this).attr("id", id);
+      if (image != null && langImages[lang]) {
+        var buttonLabel = "<img src='" +langImages[lang] + "' alt='" + 
capitalizedLang + "' />";
+      } else if (notabs == null) {
+        var buttonLabel = "<b>" + capitalizedLang + "</b>";
+      } else {
+        var buttonLabel = ""
+      }
+      tabBar.append(
+        '<li><a class="tab_' + lang + '" href="#' + id + '">' + buttonLabel + 
'</a></li>'
+      );
+    });
+
+    codeSamples.first().addClass("active");
+    tabBar.children("li").first().addClass("active");
+    counter++;
+  });
+  $("ul.nav-tabs a").click(function (e) {
+    // Toggling a tab should switch all tabs corresponding to the same language
+    // while retaining the scroll position
+    e.preventDefault();
+    var scrollOffset = $(this).offset().top - $(document).scrollTop();
+    $("." + $(this).attr('class')).tab('show');
+    $(document).scrollTop($(this).offset().top - scrollOffset);
+  });
+}
+
+function makeCollapsable(elt, accordionClass, accordionBodyId, title) {
+  $(elt).addClass("accordion-inner");
+  $(elt).wrap('<div class="accordion ' + accordionClass + '"></div>')
+  $(elt).wrap('<div class="accordion-group"></div>')
+  $(elt).wrap('<div id="' + accordionBodyId + '" class="accordion-body 
collapse"></div>')
+  $(elt).parent().before(
+    '<div class="accordion-heading">' +
+      '<a class="accordion-toggle" data-toggle="collapse" href="#' + 
accordionBodyId + '">' +
+             title +
+      '</a>' +
+    '</div>'
+  );
+}
+
+// Enable "view solution" sections (for exercises)
+function viewSolution() {
+  var counter = 0
+  $("div.solution").each(function() {
+    var id = "solution_" + counter
+    makeCollapsable(this, "", id,
+      '<i class="icon-ok-sign" style="text-decoration: none; color: #0088cc">' 
+
+      '</i>' + "View Solution");
+    counter++;
+  });
+}
+
+// A script to fix internal hash links because we have an overlapping top bar.
+// Based on 
https://github.com/twitter/bootstrap/issues/193#issuecomment-2281510
+function maybeScrollToHash() {
+  console.log("HERE");
+  if (window.location.hash && $(window.location.hash).length) {
+    console.log("HERE2", $(window.location.hash), 
$(window.location.hash).offset().top);
+    var newTop = $(window.location.hash).offset().top - 57;
+    $(window).scrollTop(newTop);
+  }
+}
+
+$(function() {
+  codeTabs();
+  viewSolution();
+
+  $(window).bind('hashchange', function() {
+    maybeScrollToHash();
+  });
+
+  // Scroll now too in case we had opened the page on a hash, but wait a bit 
because some browsers
+  // will try to do *their* initial scroll after running the onReady handler.
+  $(window).load(function() { setTimeout(function() { maybeScrollToHash(); }, 
25); }); 
+});

Reply via email to