You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by do...@apache.org on 2015/12/30 22:09:32 UTC

svn commit: r1722413 [1/2] - /reef/site/

Author: dongjoon
Date: Wed Dec 30 21:09:32 2015
New Revision: 1722413

URL: http://svn.apache.org/viewvc?rev=1722413&view=rev
Log:
Fix typos

Modified:
    reef/site/dependency-convergence.html
    reef/site/dependency-info.html
    reef/site/dependency-management.html
    reef/site/distribution-management.html
    reef/site/downloads.html
    reef/site/faq.html
    reef/site/glossary.html
    reef/site/index.html
    reef/site/introduction.html
    reef/site/issue-tracking.html
    reef/site/license.html
    reef/site/mail-lists.html
    reef/site/mailing-list.html
    reef/site/plugin-management.html
    reef/site/plugins.html
    reef/site/privacy-policy.html
    reef/site/project-info.html
    reef/site/project-summary.html
    reef/site/source-repository.html
    reef/site/talks.html
    reef/site/tang.html
    reef/site/team.html
    reef/site/wake.html

Modified: reef/site/dependency-convergence.html
URL: http://svn.apache.org/viewvc/reef/site/dependency-convergence.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/dependency-convergence.html (original)
+++ reef/site/dependency-convergence.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/dependency-info.html
URL: http://svn.apache.org/viewvc/reef/site/dependency-info.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/dependency-info.html (original)
+++ reef/site/dependency-info.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/dependency-management.html
URL: http://svn.apache.org/viewvc/reef/site/dependency-management.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/dependency-management.html (original)
+++ reef/site/dependency-management.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/distribution-management.html
URL: http://svn.apache.org/viewvc/reef/site/distribution-management.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/distribution-management.html (original)
+++ reef/site/distribution-management.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Distribution Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/downloads.html
URL: http://svn.apache.org/viewvc/reef/site/downloads.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/downloads.html (original)
+++ reef/site/downloads.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/faq.html
URL: http://svn.apache.org/viewvc/reef/site/faq.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/faq.html (original)
+++ reef/site/faq.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - FAQ</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/glossary.html
URL: http://svn.apache.org/viewvc/reef/site/glossary.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/glossary.html (original)
+++ reef/site/glossary.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Glossary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -456,21 +456,21 @@ under the License. --><h1>Glossary</h1>
 <div class="section">
 <div class="section">
 <h3><a name="context"></a>Context<a name="Context"></a></h3>
-<p>Contexts are a way to structure the state and Configuration of an Evaluator. A Context exists on one and only one individual Evaluator. Each Evaluator has at least one Context, which we refer to as the <i>root</i> Context. This root context is special, as it is <i>required</i> on all Evaluators and because closing it is synonymous to releasing the Evaluator. In many simple REEF programs, this is the only Context used and it is therefore convenient to think of it as synonymous to &#x201c;the Evaluator&#x201d;: The Driver can submit Tasks to it, is notifified when they are done and can close the root context when it wants to dispose of the Evaluator. </p>
-<p>Contexts are formed by calls to <tt>submitContext()</tt> to the event types that allow this (<tt>AllocatedEvaluator</tt> and <tt>ActiveContext</tt>) Contexts are the main way for an Evaluator to be exposed and accessed. For instance, Tasks are submitted to an <tt>ActiveContext</tt> which represents the top Context on the Evaluator.</p>
-<p>Beyond this, a Driver can submit a Context to the root, or in fact any, Context, as long as the resulting structure is that of a stack: The root Context forms the bottom of the stack, the top-most Context is called <i>active</i>, hence the <tt>ActiveContext</tt> event. The two can be one and the same, and often are: The root Context is the subject of the first <tt>ActiveContext</tt> event on an Evaluator.</p>
-<p>Nomenclature: When Context B is submitted to an already existing Context A, we say that Context A is the parent Context of Context B. Also, Context B is the child of Context A.</p>
+<p>Contexts are a way to structure the state and Configuration of an Evaluator. A Context exists on one and only one individual Evaluator. Each Evaluator has at least one Context, which we refer to as the <i>root</i> Context. This root context is special, as it is <i>required</i> on all Evaluators and because closing it is synonymous to releasing the Evaluator. In many simple REEF programs, this is the only Context used and it is therefore convenient to think of it as synonymous to &#x201c;the Evaluator&#x201d;: The Driver can submit Tasks to it, is notified when they are done and can close the root context when it wants to dispose of the Evaluator.</p>
+<p>Contexts are formed by calls to <tt>submitContext()</tt> to the event types that allow this (<tt>AllocatedEvaluator</tt> and <tt>ActiveContext</tt>). Contexts are the main way for an Evaluator to be exposed and accessed. For instance, Tasks are submitted to an <tt>ActiveContext</tt> which represents the top Context on the Evaluator.</p>
+<p>Beyond this, a Driver can submit a Context to the root, or in fact any, Context, as long as the resulting structure is that of a stack: the root Context forms the bottom of the stack, the top-most Context is called <i>active</i>, hence the <tt>ActiveContext</tt> event. The two can be one and the same, and often are: the root Context is the subject of the first <tt>ActiveContext</tt> event on an Evaluator.</p>
+<p>Nomenclature: when Context B is submitted to an already existing Context A, we say that Context A is the parent Context of Context B. Also, Context B is the child of Context A.</p>
 <p>It is only the <tt>ActiveContext</tt> that allows the submission of Tasks or child Contexts. Hence, one can think of the whole Evaluator structure as that of a stack: the root Context at the bottom, layers of Contexts in the middle and either the current <tt>ActiveContext</tt> or the current Task at the top.</p>
 <div class="section">
 <h4>Objects and Configuration: What&#x2019;s in a Context?<a name="Objects_and_Configuration:_Whats_in_a_Context"></a></h4>
 <p>It is convenient to think of a Context as a <tt>Configuration</tt> that gets merged with the <tt>Configuration</tt> supplied for Tasks and child Contexts. While not entirely true (see below), this view allows us to show just <i>why</i> Contexts are a convenient construct.</p>
-<p>It is often the case that subsequent tasks that get executed on an Evaluator want access to the same Configuration variables and / or the same objects. Consider a simple <tt>LinkedList</tt> bound to a named parameter. If that linked list is part of the subsequent Task <tt>Configurations</tt> submited, each Task will get its very <i>own</i> <tt>LinkedList</tt>. If the named parameter is bound in the Context <tt>Configuration</tt>, all Tasks subsequently submitted to the Context will get the very <i>same</i> <tt>LinkedList</tt> instance.</p></div>
+<p>It is often the case that subsequent tasks that get executed on an Evaluator want access to the same Configuration variables and / or the same objects. Consider a simple <tt>LinkedList</tt> bound to a named parameter. If that linked list is part of the subsequent Task <tt>Configurations</tt> submitted, each Task will get its very <i>own</i> <tt>LinkedList</tt>. If the named parameter is bound in the Context <tt>Configuration</tt>, all Tasks subsequently submitted to the Context will get the very <i>same</i> <tt>LinkedList</tt> instance.</p></div>
 <div class="section">
 <h4>Contexts are (Tang) Injectors<a name="Contexts_are_Tang_Injectors"></a></h4>
-<p>This mechanism is implemented by using Tang&#x2019;s <tt>Injector</tt>s. On the Evaluator, a Task is launched by first <i>forking</i> the Context&#x2019;s <tt>Injector</tt> with the Task<tt>Configuration</tt> and then requesting an instance of the <tt>Task</tt> interface from that forked <tt>Injector</tt>. By this mechanism and the fact that objects are singletons with respect to an <tt>Injector</tt> in Tang, object sharing can be implemented. All objects already instantiated on the Context <tt>Injector</tt> will also be referenced by the Task<tt>Injector</tt>. Hence, the <tt>LinkedList</tt> in the example above would be shared amongst subsequent Task <tt>Injectors</tt> in the construction of the <tt>Task</tt> instance.</p></div></div>
+<p>This mechanism is implemented by using Tang&#x2019;s <tt>Injector</tt>s. On the Evaluator, a Task is launched by first <i>forking</i> the Context&#x2019;s <tt>Injector</tt> with the Task <tt>Configuration</tt> and then requesting an instance of the <tt>Task</tt> interface from that forked <tt>Injector</tt>. By this mechanism and the fact that objects are singletons with respect to an <tt>Injector</tt> in Tang, object sharing can be implemented. All objects already instantiated on the Context <tt>Injector</tt> will also be referenced by the Task <tt>Injector</tt>. Hence, the <tt>LinkedList</tt> in the example above would be shared amongst subsequent Task <tt>Injectors</tt> in the construction of the <tt>Task</tt> instance.</p></div></div>
 <div class="section">
 <h3><a name="driver"></a>Driver<a name="Driver"></a></h3>
-<p>REEF imposes a centralized control flow design on applications: All events are routed to the master node, called the Driver. REEF also prescribes event-driven programming for the Driver. In that sense, the application provided Driver is a collection of event handlers for the various events exposed in <tt>DriverConfiguration</tt>. While most of these deal with occurrences during the computation (Evaluator allocation, Task launch, &#x2026;), several stand out as life-cycle events of the Driver, and therefore the application:</p>
+<p>REEF imposes a centralized control flow design on applications: all events are routed to the master node, called the Driver. REEF also prescribes event-driven programming for the Driver. In that sense, the application-provided Driver is a collection of event handlers for the various events exposed in <tt>DriverConfiguration</tt>. While most of these deal with occurrences during the computation (Evaluator allocation, Task launch, &#x2026;), several stand out as life-cycle events of the Driver, and therefore the application:</p>
 <div class="section">
 <h4>ON_START<a name="ON_START"></a></h4>
 <p>This event is triggered by REEF when the Driver is ready to start executing. At this point communication with the Resource Manager has been established, all event handlers have been instantiated and the event graph in the Driver was deemed to be complete enough to start. In a typical application, this is when the Driver requests the first set of Evaluators.</p></div>
@@ -491,14 +491,14 @@ under the License. --><h1>Glossary</h1>
 <h3><a name="evaluator"></a>Evaluator<a name="Evaluator"></a></h3>
 <div class="section">
 <h4>Evaluators and Tasks<a name="Evaluators_and_Tasks"></a></h4>
-<p>The Evaluator is the runtime environment for Tasks. On one Evaluator, there is either no or one Task executing at any given point in time. Different or multiple executions of the same Tasks can be executed in sequence on an Evaluator. The Evaluator and Task lifecycle are decoupled: Whenever a Task finishes, the Driver receives the CompletedTask event, which contains a reference to the Evaluator the Task executed on. It is then up to the Driver to decide whether to return the Evaluator to the resource manager or to make other use of it, e.g. by submitting another task.</p></div>
+<p>The Evaluator is the runtime environment for Tasks. On one Evaluator, there is either no or one Task executing at any given point in time. Different or multiple executions of the same Tasks can be executed in sequence on an Evaluator. The Evaluator and Task lifecycle are decoupled: whenever a Task finishes, the Driver receives the CompletedTask event, which contains a reference to the Evaluator the Task executed on. It is then up to the Driver to decide whether to return the Evaluator to the resource manager or to make other use of it, e.g. by submitting another task.</p></div>
 <div class="section">
 <h4>Evaluators and Contexts<a name="Evaluators_and_Contexts"></a></h4>
 <p>Contexts are REEF&#x2019;s form of state management inside of the Evaluator. See the <a href="#context">Context</a> section for more information.</p></div>
 <div class="section">
 <h4>Evaluators and the Resource Manager<a name="Evaluators_and_the_Resource_Manager"></a></h4>
 <p>On typical resource managers, an Evaluator is a process executing inside a container. Depending on the resource manager, that process may or may not be guarded by a resource or security isolation layer.</p>
-<p>This also means that the Evaluator, not the Task, is the unit of resource consumption: while an Evaluator is occupying a Container, that Container is &#x201c;used&#x201d; from the perspective of the Resource Manager.That is true even if the Evaluator is idle from the perspective of the Driver, i.e. when no Task is running on it.</p></div></div>
+<p>This also means that the Evaluator, not the Task, is the unit of resource consumption: while an Evaluator is occupying a Container, that Container is &#x201c;used&#x201d; from the perspective of the Resource Manager. That is true even if the Evaluator is idle from the perspective of the Driver, i.e. when no Task is running on it.</p></div></div>
 <div class="section">
 <h3><a name="task"></a>Task<a name="Task"></a></h3>
 <div class="section">
@@ -507,18 +507,18 @@ under the License. --><h1>Glossary</h1>
 
 <div class="source"><pre class="prettyprint">public byte[] call(byte[] input);
 </pre></div>
-<p>From REEF&#x2019;s perspective, a Task is therefore a single threaded method call. It starts when entering the call method. It is a <tt>RunningTask</tt> while it hasn&#x2019;t returned from it and is a <tt>CompletedTask</tt> when it has. Should there be an Exception thrown by <tt>call()</tt>, we call it a <tt>FailedTask</tt>.</p>
+<p>From REEF&#x2019;s perspective, a Task is therefore a single-threaded method call. It starts when entering the call method. It is a <tt>RunningTask</tt> while it hasn&#x2019;t returned from it and is a <tt>CompletedTask</tt> when it has. Should there be an Exception thrown by <tt>call()</tt>, we call it a <tt>FailedTask</tt>.</p>
 <p>Task identity is established by a user-defined string set in <tt>TaskConfiguration.IDENTIFIER</tt>. All subsequent task-related events in the Driver will carry that ID. Note that REEF doesn&#x2019;t take any particular precautions to ensure unique Task identifiers. It is up to the application to do so. While technically feasible to assign the same identifier to multiple Tasks, this isn&#x2019;t advised as it makes error handling, debugging and logging unnecessarily hard.</p></div>
 <div class="section">
 <h4>Inputs and outputs of a Task<a name="Inputs_and_outputs_of_a_Task"></a></h4>
 <p>The return value of the <tt>call</tt> method will be made available to the Driver as part of the <tt>CompletedTask</tt> event. Note that it isn&#x2019;t advised to return large values in this fashion, but merely small control flow or status information. Sending large data on this channel creates the risk of overloading the Driver at scale. The networking APIs provided by REEF IO are much better suited for data transmissions than this channel.</p>
-<p>The parameter given to the call method is also to be used in a similar fashion: The Driver passes its value as part of the Task submission. It is meant e.g. to convey a restart point for the task. Note that the same functionality can now be better provided by Tang and a constructor parameter.</p></div>
+<p>The parameter given to the call method is also to be used in a similar fashion: the Driver passes its value as part of the Task submission. It is meant e.g. to convey a restart point for the task. Note that the same functionality can now be better provided by Tang and a constructor parameter.</p></div>
 <div class="section">
 <h4>Communicating between a Task and a Driver<a name="Communicating_between_a_Task_and_a_Driver"></a></h4>
 <p>REEF provides some facilities to communicate between a Driver and a Task. These mostly stem from allowing application code to &#x201c;free-ride&#x201d; on REEF&#x2019;s control flow channels such as the heartbeat between the Evaluator and the Task.</p>
 <div class="section">
 <h5>Sending a message from the Driver to a Task<a name="Sending_a_message_from_the_Driver_to_a_Task"></a></h5>
-<p>REEF maintains a heartbeat between any Evaluator and the Driver. There are two ways by which a heartbeat can be triggered.</p>
+<p>REEF maintains a heartbeat between any Evaluator and the Driver. There are two ways by which a heartbeat can be triggered:</p>
 
 <ul>
   
@@ -531,7 +531,7 @@ under the License. --><h1>Glossary</h1>
 <p>Whenever the Evaluator performs a heartbeat, it will ask the Task whether it has any message to share with the Driver by inquiring the class registered in <tt>TaskConfiguration.ON_SEND_MESSAGE</tt>. It is wise for that message to be small, as we otherwise run the risk of overwhelming the Driver with heartbeat traffic at scale.</p></div></div>
 <div class="section">
 <h4>Multithreaded Tasks<a name="Multithreaded_Tasks"></a></h4>
-<p>Just because REEF views a Task as a method call doesn&#x2019;t restrict the Task to be single threaded. A Task is free to spawn threads in the course of its execution. However, a Task that does so needs to take care of a few considerations:</p>
+<p>Just because REEF views a Task as a method call doesn&#x2019;t restrict the Task to be single-threaded. A Task is free to spawn threads in the course of its execution. However, a Task that does so needs to take care of a few considerations:</p>
 
 <ul>
   
@@ -539,7 +539,7 @@ under the License. --><h1>Glossary</h1>
 <p>All Threads spawned need to exit before the <tt>Task.call()</tt> method returns. Otherwise, you run the risk of resource leakage.</p></li>
   
 <li>
-<p>Exceptions on spawned Threads need to be caught and re-thrown by the <tt>Thread.call()</tt> method. Before that, all spawned threads need to be shut down, just like during a normal exit of <tt>Task.call()</tt>. If an exception from an another thread isn&#x2019;t caught, REEF&#x2019;s JVM level exception handler will catch it and declare a FailedEvaluator. This is inefficient, but not technically wrong: The Driver will then have to allocate another Evaluator and try again.</p></li>
+<p>Exceptions on spawned Threads need to be caught and re-thrown by the <tt>Thread.call()</tt> method. Before that, all spawned threads need to be shut down, just like during a normal exit of <tt>Task.call()</tt>. If an exception from an another thread isn&#x2019;t caught, REEF&#x2019;s JVM level exception handler will catch it and declare a FailedEvaluator. This is inefficient, but not technically wrong: the Driver will then have to allocate another Evaluator and try again.</p></li>
 </ul></div></div></div>
                   </div>
             </div>

Modified: reef/site/index.html
URL: http://svn.apache.org/viewvc/reef/site/index.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/index.html (original)
+++ reef/site/index.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Apache REEF&trade;</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/introduction.html
URL: http://svn.apache.org/viewvc/reef/site/introduction.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/introduction.html (original)
+++ reef/site/introduction.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Introduction to REEF</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -444,7 +444,7 @@ specific language governing permissions
 under the License. --><h1>Introduction to REEF</h1>
 <p>It is instructive to first remind us of how MapReduce works: Hadoop Map-Reduce schedules compute tasks on containers for executing map and reduce functions on record data. The basic structure of a Map-Reduce job is as follows. For each input block, schedule a map task that passes each internal record to a user-defined map function and materializes the output in key-sorted order. Further, assign a user-defined number of reduce tasks to non-overlapping portions of the key-space from the map output, then shuffle it across the network to where the respective reduce task is scheduled. For each reduce task, perform a global key-based sort on the shuffled data, group it by key and call the reduce function on each record group; storing the output in a durable fashion (i.e., HDFS).</p>
 <p>From the perspective of the scheduler, a number of issues arise that must be appropriately handled in order to scale-out to massive datasets. First, each map task should be scheduled close to where the input block resides; ideally on the same machine or rack. Second, failures can occur at the task level at any step; requiring backup tasks to be scheduled or the job being aborted. Third, performance bottlenecks can cause an imbalance in the task-level progress. The scheduler must react to these stragglers by scheduling clones and incorporating the logical task that crosses the finish line first.</p>
-<p>Anyone of these issues can limit the scale-out degree of a Map-Reduce job. In what follows, we perscribe a scheduler framework that provides task life-cycle management mechanisms. Using this framework, we developed a complete version of the Map-Reduce runtime that addresses the above issues. Our framework is designed around three components.</p>
+<p>Anyone of these issues can limit the scale-out degree of a Map-Reduce job. In what follows, we prescribe a scheduler framework that provides task life-cycle management mechanisms. Using this framework, we developed a complete version of the Map-Reduce runtime that addresses the above issues. Our framework is designed around three components.</p>
 
 <ol style="list-style-type: decimal">
   
@@ -471,11 +471,11 @@ under the License. --><h1>Introduction t
 
 <p><i>States of <tt>Evaluator</tt>, <tt>Contexts</tt>, and <tt>Tasks</tt></i></p>
 <p><br /></br></p>
-<p>The Figure above describes the state transitions for (a) <tt>Evaluator</tt> and <tt>Context</tt> and (b) <tt>Task</tt> components. Each state transition is associated with an object reference that is surfaced to the <tt>Driver</tt> in an Rx-style interface. For instance, when the YARN-RM notifies the REEF-AM of an allocated container, the <tt>Driver</tt> is given an <tt>AllocatedEvaluator</tt> object; containing methods for adding configurations (i.e., for data services, see below) and file resources, and submit methods that bootstraps the <tt>Evaluator</tt> runtime on the YARN-NM. When an <tt>Evaluator</tt> bootstrap successfully completes, the <tt>Driver</tt> is given an <tt>ActiveContext</tt> object, which can be used to launch <tt>Tasks</tt> or to initiate a close, which triggers a shutdown event at the <tt>Evaluator</tt> runtime and a subsequent container release at the YARN-RM. If at any point a failure occurs, the <tt>Driver</tt> is passed a <tt>FailedEvaluator</tt> object
 ; containing an exception trace when possible.</p>
-<p>Recall that the <tt>Driver</tt> launches a <tt>Task</tt> on a submit method call from the <tt>ActiveContext</tt> reference. This state transition is denoted in the Figure above by the edge labeled submit; spanning the two state machines. The REEF-AM passes a <tt>RunningTask</tt> object to the <tt>Driver</tt> after receiving confirmation of a successful <tt>Task</tt> start or resume. The <tt>Driver</tt> may use the <tt>RunningTask</tt> reference to close or suspend the execution; triggering a <tt>CompletedTask</tt> or <tt>SuspendedTask</tt> object reference to the <tt>Driver</tt>. The <tt>SuspendedTask</tt> object contains a memento used to resume the execution on some (possibly alternative) <tt>ActiveContext</tt>. Exceptions during the <tt>Task</tt> execution are surfaced to the <tt>Driver</tt> in the form of a <tt>FailedTask</tt>, which contains the actual exception object.</p></div>
+<p>The Figure above describes the state transitions for (a) <tt>Evaluator</tt> and <tt>Context</tt> and (b) <tt>Task</tt> components. Each state transition is associated with an object reference that is surfaced to the <tt>Driver</tt> in an Rx-style interface. For instance, when the YARN-RM notifies the REEF-AM of an allocated container, the <tt>Driver</tt> is given an <tt>AllocatedEvaluator</tt> object; containing methods for adding configurations (i.e., for data services, see below) and file resources, and submit methods that bootstraps the <tt>Evaluator</tt> runtime on the YARN-NM. When an <tt>Evaluator</tt> bootstrap successfully completes, the <tt>Driver</tt> is given an <tt>ActiveContext</tt> object, which can be used to launch <tt>Tasks</tt> or to initiate a close, which triggers a shutdown event at the <tt>Evaluator</tt> runtime and a subsequent container release at the YARN-RM. If at any point a failure occurs, the <tt>Driver</tt> is passed a <tt>FailedEvaluator</tt> object
 , containing an exception trace when possible.</p>
+<p>Recall that the <tt>Driver</tt> launches a <tt>Task</tt> on a submit method call from the <tt>ActiveContext</tt> reference. This state transition is denoted in the Figure above by the edge labeled submit, spanning the two state machines. The REEF-AM passes a <tt>RunningTask</tt> object to the <tt>Driver</tt> after receiving confirmation of a successful <tt>Task</tt> start or resume. The <tt>Driver</tt> may use the <tt>RunningTask</tt> reference to close or suspend the execution, triggering a <tt>CompletedTask</tt> or <tt>SuspendedTask</tt> object reference to the <tt>Driver</tt>. The <tt>SuspendedTask</tt> object contains a memento used to resume the execution on some (possibly alternative) <tt>ActiveContext</tt>. Exceptions during the <tt>Task</tt> execution are surfaced to the <tt>Driver</tt> in the form of a <tt>FailedTask</tt>, which contains the actual exception object.</p></div>
 <div class="section">
 <h3>Task Component<a name="Task_Component"></a></h3>
-<p>A <tt>Task</tt> encapsulates the task work of a job. The client interface contains a single synchronous call method that takes an optional memento argument and returns a byte array, which will be packaged with the <tt>CompletedTask</tt> object surfaced to the <tt>Driver</tt>. An exception may be thrown at any point during the call method; returning control back to the <tt>Evaluator</tt>, which packages the exception and sends it to the <tt>Driver</tt> where it is surfaced as a <tt>FailedTask</tt>. The <tt>Evaluator</tt> periodically performs a heartbeat with the REEF-AM to convey its status information. A <tt>Task</tt> can optionally implement a method interface that, when called, returns a (bounded) byte array, which the <tt>Evaluator</tt> includes in its heartbeat to the REEF-AM and surfaced to the <tt>Driver</tt>.</p></div></div>
+<p>A <tt>Task</tt> encapsulates the task work of a job. The client interface contains a single synchronous call method that takes an optional memento argument and returns a byte array, which will be packaged with the <tt>CompletedTask</tt> object surfaced to the <tt>Driver</tt>. An exception may be thrown at any point during the call method, returning control back to the <tt>Evaluator</tt>, which packages the exception and sends it to the <tt>Driver</tt> where it is surfaced as a <tt>FailedTask</tt>. The <tt>Evaluator</tt> periodically performs a heartbeat with the REEF-AM to convey its status information. A <tt>Task</tt> can optionally implement a method interface that, when called, returns a (bounded) byte array, which the <tt>Evaluator</tt> includes in its heartbeat to the REEF-AM and surfaced to the <tt>Driver</tt>.</p></div></div>
                   </div>
             </div>
           </div>

Modified: reef/site/issue-tracking.html
URL: http://svn.apache.org/viewvc/reef/site/issue-tracking.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/issue-tracking.html (original)
+++ reef/site/issue-tracking.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/license.html
URL: http://svn.apache.org/viewvc/reef/site/license.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/license.html (original)
+++ reef/site/license.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/mail-lists.html
URL: http://svn.apache.org/viewvc/reef/site/mail-lists.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/mail-lists.html (original)
+++ reef/site/mail-lists.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -440,10 +440,10 @@
 <th>Archive</th></tr>
 <tr class="b">
 <td>Dev Mailing List</td>
-<td><a class="externalLink" href="mailto:dev-subscribe@reef.incubator.apache.org">Subscribe</a></td>
-<td><a class="externalLink" href="mailto:dev-unsubscribe@reef.incubator.apache.org">Unsubscribe</a></td>
-<td><a class="externalLink" href="mailto:dev@reef.incubator.apache.org">Post</a></td>
-<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/incubator-reef-dev/">mail-archives.apache.org</a></td></tr></table></div>
+<td><a class="externalLink" href="mailto:dev-subscribe@reef.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:dev-unsubscribe@reef.apache.org">Unsubscribe</a></td>
+<td><a class="externalLink" href="mailto:dev@reef.apache.org">Post</a></td>
+<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/reef-dev/">mail-archives.apache.org</a></td></tr></table></div>
                   </div>
             </div>
           </div>

Modified: reef/site/mailing-list.html
URL: http://svn.apache.org/viewvc/reef/site/mailing-list.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/mailing-list.html (original)
+++ reef/site/mailing-list.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Mailing List</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -449,7 +449,7 @@ under the License. --><h1>Mailing List</
   
 <li><a href="#commits">Commits</a></li>
 </ul>
-<p><b>Note:</b> These email addresses are automated. Just writing &#x201c;Subscribe&#x201d; or &#x201c;Unsusbscribe&#x201d; in both the subject line and the body will suffice and a confirmation email with further instructions will be sent as a reply to your email after some delay.</p>
+<p><b>Note:</b> These email addresses are automated. Just writing &#x201c;Subscribe&#x201d; or &#x201c;Unsubscribe&#x201d; in both the subject line and the body will suffice and a confirmation email with further instructions will be sent as a reply to your email after some delay.</p>
 <div class="section">
 <div class="section">
 <h3><a name="reef-dev"></a>REEF Dev Mailing List<a name="REEF_Dev_Mailing_List"></a></h3>
@@ -459,7 +459,7 @@ under the License. --><h1>Mailing List</
   
 <li><a class="externalLink" href="mailto:dev-subscribe@reef.apache.org">Subscribe</a> (<a class="externalLink" href="mailto:dev-subscribe@reef.apache.org">dev-subscribe@reef.apache.org</a>)</li>
   
-<li><a class="externalLink" href="mailto:dev-unsubscribe@reef.apache.org">Unsusbscribe</a> (<a class="externalLink" href="mailto:dev-unsubscribe@reef.apache.org">dev-unsubscribe@reef.apache.org</a>)</li>
+<li><a class="externalLink" href="mailto:dev-unsubscribe@reef.apache.org">Unsubscribe</a> (<a class="externalLink" href="mailto:dev-unsubscribe@reef.apache.org">dev-unsubscribe@reef.apache.org</a>)</li>
   
 <li><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/reef-dev/">Archive</a></li>
 </ul></div>
@@ -471,7 +471,7 @@ under the License. --><h1>Mailing List</
   
 <li><a class="externalLink" href="mailto:commits-subscribe@reef.apache.org">Subscribe</a> (<a class="externalLink" href="mailto:commits-subscribe@reef.apache.org">commits-subscribe@reef.apache.org</a>)</li>
   
-<li><a class="externalLink" href="mailto:commits-unsubscribe@reef.apache.org">Unsusbscribe</a> (<a class="externalLink" href="mailto:commits-unsubscribe@reef.apache.org">commits-unsubscribe@reef.apache.org</a>)</li>
+<li><a class="externalLink" href="mailto:commits-unsubscribe@reef.apache.org">Unsubscribe</a> (<a class="externalLink" href="mailto:commits-unsubscribe@reef.apache.org">commits-unsubscribe@reef.apache.org</a>)</li>
   
 <li><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/reef-commits/">Archive</a></li>
 </ul></div></div>

Modified: reef/site/plugin-management.html
URL: http://svn.apache.org/viewvc/reef/site/plugin-management.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/plugin-management.html (original)
+++ reef/site/plugin-management.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/plugins.html
URL: http://svn.apache.org/viewvc/reef/site/plugins.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/plugins.html (original)
+++ reef/site/plugins.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Build Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/privacy-policy.html
URL: http://svn.apache.org/viewvc/reef/site/privacy-policy.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/privacy-policy.html (original)
+++ reef/site/privacy-policy.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Privacy Policy</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/project-info.html
URL: http://svn.apache.org/viewvc/reef/site/project-info.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/project-info.html (original)
+++ reef/site/project-info.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/project-summary.html
URL: http://svn.apache.org/viewvc/reef/site/project-summary.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/project-summary.html (original)
+++ reef/site/project-summary.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -444,7 +444,7 @@
 <td>Retainable Evaluator Execution Framework</td></tr>
 <tr class="b">
 <td>Homepage</td>
-<td><a class="externalLink" href="http://reef.incubator.apache.org/website">http://reef.incubator.apache.org/website</a></td></tr></table></div>
+<td><a class="externalLink" href="http://reef.apache.org/website">http://reef.apache.org/website</a></td></tr></table></div>
 <div class="section">
 <h3>Project Organization<a name="Project_Organization"></a></h3><a name="Project_Organization"></a>
 <table border="0" class="table table-striped">

Modified: reef/site/source-repository.html
URL: http://svn.apache.org/viewvc/reef/site/source-repository.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/source-repository.html (original)
+++ reef/site/source-repository.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Source Repository</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -434,15 +434,15 @@
 <div class="section">
 <h2>Web Browser Access<a name="Web_Browser_Access"></a></h2><a name="Web_Browser_Access"></a>
 <p>The following is a link to a browsable version of the source repository:</p>
-<div class="source"><pre class="prettyprint"><a href="scm:git:git@github.com:apache/incubator-reef/website">scm:git:git@github.com:apache/incubator-reef/website</a></pre></div></div>
+<div class="source"><pre class="prettyprint"><a href="scm:git:git@github.com:apache/reef/website">scm:git:git@github.com:apache/reef/website</a></pre></div></div>
 <div class="section">
 <h2>Anonymous Access<a name="Anonymous_Access"></a></h2><a name="Anonymous_Access"></a>
 <p>The source can be checked out anonymously from Git with this command (See <a class="externalLink" href="http://git-scm.com/docs/git-clone">http://git-scm.com/docs/git-clone</a>):</p>
-<div class="source"><pre class="prettyprint">$ git clone git@github.com:apache/incubator-reef/website</pre></div></div>
+<div class="source"><pre class="prettyprint">$ git clone git@github.com:apache/reef/website</pre></div></div>
 <div class="section">
 <h2>Developer Access<a name="Developer_Access"></a></h2><a name="Developer_Access"></a>
 <p>Only project developers can access the Git tree via this method (See <a class="externalLink" href="http://git-scm.com/docs/git-clone">http://git-scm.com/docs/git-clone</a>).</p>
-<div class="source"><pre class="prettyprint">$ git clone https://git-wip-us.apache.org/repos/asf/incubator-reef/website</pre></div></div>
+<div class="source"><pre class="prettyprint">$ git clone https://git-wip-us.apache.org/repos/asf/reef/website</pre></div></div>
 <div class="section">
 <h2>Access from Behind a Firewall<a name="Access_from_Behind_a_Firewall"></a></h2><a name="Access_from_Behind_a_Firewall"></a>
 <p>Refer to the documentation of the SCM used for more information about access behind a firewall.</p></div>

Modified: reef/site/talks.html
URL: http://svn.apache.org/viewvc/reef/site/talks.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/talks.html (original)
+++ reef/site/talks.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Talks</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />

Modified: reef/site/tang.html
URL: http://svn.apache.org/viewvc/reef/site/tang.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/tang.html (original)
+++ reef/site/tang.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Tang</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />
@@ -442,8 +442,8 @@ software distributed under the License i
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License. --><h1>Tang</h1>
-<p>Tang is a configuration managment and checking framework that emphasizes explicit documentation and automatic checkability of configurations and applications instead of ad-hoc, application-specific configuration and bootstrapping logic. It supports distributed, multi-language applications, but gracefully handles simpler use cases as well.</p>
-<p>Tang makes use of dependency injection to automatically instantiate applications. Dependency injectors can be thought of as &#x201c;make for objects&#x201d; &#x2013; given a request for some type of object, and information that explains how dependencies between objects should be resolved, dependency injectors automatically instantiate the requested object and all of the objects it dependes upon. Tang makes use of a few simple wire formats to support remote and even cross-language dependency injection.</p>
+<p>Tang is a configuration management and checking framework that emphasizes explicit documentation and automatic checkability of configurations and applications instead of ad-hoc, application-specific configuration and bootstrapping logic. It supports distributed, multi-language applications, but gracefully handles simpler use cases as well.</p>
+<p>Tang makes use of dependency injection to automatically instantiate applications. Dependency injectors can be thought of as &#x201c;make for objects&#x201d; &#x2013; given a request for some type of object, and information that explains how dependencies between objects should be resolved, dependency injectors automatically instantiate the requested object and all of the objects it depends upon. Tang makes use of a few simple wire formats to support remote and even cross-language dependency injection.</p>
 <div class="section">
 <h2>Outline<a name="Outline"></a></h2>
 
@@ -486,24 +486,24 @@ under the License. --><h1>Tang</h1>
 <p>Distributed systems suffer from problems that arise due to complex compositions of software modules and configuration errors. These problems compound over time: best-practice object oriented design dictates that code be factored into independent reusable modules, and today&#x2019;s distributed applications are increasingly expected to run atop multiple runtime environments. This leads application developers to push complexity into configuration settings, to the point where misconfiguration is now a primary cause of unavailability in fault tolerant systems.</p>
 <p>Tang is our attempt to address these problems. It consists of a dependency injection framework and a set of configuration and debugging tools that automatically and transparently bootstrap applications. We have focused on providing a narrow set of primitives that support the full range of design patterns that arise in distributed system development, and that encourage application developers to build their systems in a maintainable and debuggable way.</p>
 <p>Tang leverages existing language type systems, allowing unmodified IDEs such as Eclipse or NetBeans to surface configuration information in tooltips, provide auto-complete of configuration parameters, and to detect a wide range of configuration problems as you edit your code. Since such functionality is surfaced in the tools you are already familiar with, there is no need to install (or learn) additional development software to get started with Tang. Furthermore, we provide a set of sophisticated build time and runtime tools that detect a wide range of common architectural problems and configuration errors.</p>
-<p>This documentation consists of tutorials that present prefered Tang design patterns. By structuring your application according to the patterns we suggest throughout the tutorials, you will allow our static analysis framework, Tint (&#x201c;Tang Lint&#x201d;), to detect problematic design patterns and high-level configuration problems as part of your build. These patterns provide the cornerstone for a number of more advanced features, such as interacting with legacy configuration systems, designing for cross-language applications, and multi-tenancy issues, such as secure injections of untrusted application code. To the best of our knowledge, implementing such tools and addressing these real-world implementation constraints would be difficult, or even impossible, atop competing frameworks.</p>
+<p>This documentation consists of tutorials that present preferred Tang design patterns. By structuring your application according to the patterns we suggest throughout the tutorials, you will allow our static analysis framework, Tint (&#x201c;Tang Lint&#x201d;), to detect problematic design patterns and high-level configuration problems as part of your build. These patterns provide the cornerstone for a number of more advanced features, such as interacting with legacy configuration systems, designing for cross-language applications, and multi-tenancy issues, such as secure injections of untrusted application code. To the best of our knowledge, implementing such tools and addressing these real-world implementation constraints would be difficult, or even impossible, atop competing frameworks.</p>
 <h1><a name="design-principles"></a>Design principles</h1>
 <p>Tang encourages application developers to specify default implementations and constructor parameters in terms of code annotations and configuration modules. This avoids the need for a number of subtle (and often confusing) dependency injection software patterns, though it does lead to a different approach to dependency injection than other frameworks encourage.</p>
 <p>In the process of building complicated systems built atop Tang, we found that, as the length of configurations that are passed around at runtime increased, it rapidly became impossible to debug or maintain our higher-level applications. In an attempt to address this problem, traditional dependency injection systems actually compound this issue. They encourage the developers of each application-level component to implement hand-written &#x201c;Modules&#x201d; that are executed at runtime. Hand-written modules introspect on the current runtime configuration, augment and modify it, and then return a new configuration that takes the new application component into account.</p>
-<p>In other systems, developers interact with modules by invoking ad-hoc builder methods, and passing configurations (in the correct order) from module to module. Modules frequently delgate to each other, either via inheritance or wrappers. This makes it difficult for developers and end-users to figure out which value of a given parameter will be used, or even to figure out why it was (or was not) set.</p>
+<p>In other systems, developers interact with modules by invoking ad-hoc builder methods, and passing configurations (in the correct order) from module to module. Modules frequently delegate to each other, either via inheritance or wrappers. This makes it difficult for developers and end-users to figure out which value of a given parameter will be used, or even to figure out why it was (or was not) set.</p>
 <p>Tang provides an alternative called <tt>ConfigurationModule</tt>s:</p>
 
 <ul>
   
-<li><tt>Configurations</tt> and <tt>ConfigurationModules</tt> are &#x201c;just data,&#x201d; and can be read and written in human readable formats.</li>
+<li><tt>Configurations</tt> and <tt>ConfigurationModules</tt> are &#x201c;just data&#x201d;, and can be read and written in human readable formats.</li>
   
 <li>Interfaces and configuration parameters are encouraged to specify defaults, significantly shortening the configurations generated at runtime, and making it easy to see what was &#x201c;strange&#x201d; about a given run of the application.</li>
   
 <li>Tang&#x2019;s static analysis and documentation tools sanity check <tt>ConfigurationModule</tt>s, and document their behavior and any extra parameters they export.</li>
   
-<li>Configuration options can be set at most once. This avoids (or at least detects) situations in which users and application-level code inadvertantly &#x201c;fight&#x201d; over the setting of a particular option.</li>
+<li>Configuration options can be set at most once. This avoids (or at least detects) situations in which users and application-level code inadvertently &#x201c;fight&#x201d; over the setting of a particular option.</li>
 </ul>
-<p>The last property comes from Tang&#x2019;s use of <i>monotonic</i> set oriented primitives. This allows us to leverage recent theoretical results in commtative data types; particularly CRDTs, and the CALM theorem. Concretely:</p>
+<p>The last property comes from Tang&#x2019;s use of <i>monotonic</i> set oriented primitives. This allows us to leverage recent theoretical results in commutative data types, particularly CRDTs, and the CALM theorem. Concretely:</p>
 
 <ul>
   
@@ -511,10 +511,10 @@ under the License. --><h1>Tang</h1>
   
 <li>Tang can detect configuration and injection problems much earlier than is possible with other approaches. Also, upon detecting a conflict, Tang lists the configuration sources that contributed to the problem.</li>
 </ul>
-<p>Finally, Tang is divided into a set of &#x201c;core&#x201d; primtives, and higher-level configuration &#x201c;formats&#x201d;. Tang&#x2019;s core focuses on dependency injection and static checking of configurations. The formats provide higher-level configuration languages primitives, such as distributed, cross-language injection, configuration files, and <tt>ConfigurationModule</tt>. Each Tang format imports and/or exports standard Tang <tt>Configuration</tt> objects, which can then be composed with other configuration data at runtime.</p>
+<p>Finally, Tang is divided into a set of &#x201c;core&#x201d; primitives, and higher-level configuration &#x201c;formats&#x201d;. Tang&#x2019;s core focuses on dependency injection and static checking of configurations. The formats provide higher-level configuration languages primitives, such as distributed, cross-language injection, configuration files, and <tt>ConfigurationModule</tt>. Each Tang format imports and/or exports standard Tang <tt>Configuration</tt> objects, which can then be composed with other configuration data at runtime.</p>
 <p>Improvements to these formats are planned, such as command-line tab completion, and improved APIs for extremely complex applications that are built by composing multiple Tang configurations to inject arbitrary object graphs. Furthermore, Tang formats include documentation facilities, and automatic command line and configuration file parsing. From an end-user perspective, this takes a lot of the guesswork out of configuration file formats.</p>
 <p>Although Tang surfaces a text-based interface for end-users of the applications built atop it, all configuration options and their types are specified in terms of Java classes and annotations. As with the core Tang primitives, this allows the Java compiler to statically check Tang formats for problems such as inconsistent usage of configuration parameters, naming conflicts and so on. This eliminates broad classes of runtime errors. These checks can be run independently of the application&#x2019;s runtime environment, and can find problems both in the Java-level implementation of the system, and with user-provided configuration files. The tools that perform these checks are designed to run as a post-processing step of projects built atop Tang. Like the Java compiler checks, this prevents such errors from making it to production environments. It also prevents such errors from being exposed to application logic or end-users, greatly simplifying applications built atop Tang.</p>
-<p>Taken together, these properties greatly simplify dependency injection in distributed environments. We expect Tang to be used in environments that are dominated by &#x201c;plugin&#x201d;-style APIs with many alternative implementations. Tang cleanly separates concerns over configuration management, dependency injection and object implementations, which hides most of the complexity of dependency injection from plugin implementers. It also prevents plugin implementations from inadvertently conflicting with each other or their runtime environements. Such clean semantics are crucial in distributed, heterogeneous environments.</p>
+<p>Taken together, these properties greatly simplify dependency injection in distributed environments. We expect Tang to be used in environments that are dominated by &#x201c;plugin&#x201d;-style APIs with many alternative implementations. Tang cleanly separates concerns over configuration management, dependency injection and object implementations, which hides most of the complexity of dependency injection from plugin implementers. It also prevents plugin implementations from inadvertently conflicting with each other or their runtime environments. Such clean semantics are crucial in distributed, heterogeneous environments.</p>
 <h1><a name="tutorial-getting-started"></a>Tutorial: Getting started</h1>
 <p>This tutorial is geared toward people that would like to quickly get started with Tang, or that are modifying an existing Tang application.</p></div>
 <div class="section">
@@ -609,7 +609,7 @@ public class Timer {
 <h2><a name="configuration-modules"></a>Configuration modules<a name="Configuration_modules"></a></h2>
 <p>Configuration modules allow applications to perform most configuration generation and verification tasks at build time. This allows Tang to automatically generate rich configuration-related documentation, to detect problematic design patterns, and to report errors before the application even begins to run.</p>
 <p>In the example below, we extend the Timer API to include a second implementation that simply outputs the amount of time a real timer would have slept to stderr. In a real unit testing example, it would likely interact with a scheduler based on logical time. Of course, in isolation, having the ability to specify configuration parameters is not particularly useful; this example also adds a <tt>main()</tt> method that invokes Tang, and instantiates an object.</p>
-<p>The process of instantiting an object with Tang is called <i>injection</i>. As with configurations, Tang&#x2019;s injection process is designed to catch as many potential runtime errors as possible before application code begins to run. This simplifies debugging and eliminates many types of runtime error handling code, since many configurations can be caught before running (or examining) application-specific initialization code. </p>
+<p>The process of instantiating an object with Tang is called <i>injection</i>. As with configurations, Tang&#x2019;s injection process is designed to catch as many potential runtime errors as possible before application code begins to run. This simplifies debugging and eliminates many types of runtime error handling code, since many configurations can be caught before running (or examining) application-specific initialization code. </p>
 
 <div class="source"><pre class="prettyprint">package org.apache.reef.tang.examples.timer;
 
@@ -700,7 +700,7 @@ public class TimerMock implements Timer
   
 <li>The <tt>TimerMock</tt> class includes a dummy implementation of Timer, along with a <tt>ConfigurationModule</tt> final static field called <tt>CONF</tt>.</li>
   
-<li>The main method uses <tt>CONF</tt> to generate a configuration. Rather than set <tt>Timer.Sleep</tt> directly, it sets <tt>MOCK_SLEEP_TIME</tt>. In a more complicated example, this would allow <tt>CONF</tt> to route the sleep time to testing infrastructure, or other classes that are specific to the testing environment or implemenation of <tt>TimerMock</tt>.</li>
+<li>The main method uses <tt>CONF</tt> to generate a configuration. Rather than set <tt>Timer.Sleep</tt> directly, it sets <tt>MOCK_SLEEP_TIME</tt>. In a more complicated example, this would allow <tt>CONF</tt> to route the sleep time to testing infrastructure, or other classes that are specific to the testing environment or implementation of <tt>TimerMock</tt>.</li>
 </ul>
 <p><tt>ConfigurationModule</tt>s serve a number of purposes:</p>
 
@@ -739,7 +739,7 @@ Named parameter org.apache.reef.tang.imp
 Field org.apache.reef.tang.formats.MyMissingBindConfigurationModule.BAD_CONF: Found declared options that were not used in binds: { FOO_NESS }
 </pre></div></div>
 <div class="section">
-<h2><a name="injnecting-objects-with-getInstance"></a>Injecting objects with getInstance()<a name="Injecting_objects_with_getInstance"></a></h2>
+<h2><a name="injecting-objects-with-getinstance"></a>Injecting objects with getInstance()<a name="Injecting_objects_with_getInstance"></a></h2>
 <p>Above, we explain how to register constructors with Tang, and how to configure Tang to inject the desired objects at runtime. This section explains how Tang actually instantiates objects, and how the primitives it provides can be combined to support sophisticated application architectures.</p>
 <p>In order to instantiate objects with Tang, one must invoke Tang.Factory.getTang().newInjector(Configuration&#x2026;). This returns a new &#x201c;empty&#x201d; injector that will honor the configuration options that were set in the provided configurations, and that will have access to a merged version of the classpath they refer to.</p>
 <p>In a given Tang injector, all classes are treated as singletons: at most one instance of each class may exist. Furthermore, Tang Configuration objects are designed to be built up from trees of related (but non-conflicting) configuration files, command line parameters, and so on. At first, this may seem to be overly restrictive, since it prevents applications from creating multiple instances of the same class (or even two classes that require different values of the same named parameter).</p>
@@ -776,13 +776,13 @@ B(InjectionFuture&lt;A&gt; a) {...}
 </pre></div>
 <p>In order to inject an instance of <tt>A</tt>, Tang first injects an instance of <tt>B</tt> by passing it an <tt>InjectionFuture&lt;A&gt;</tt>. Tang then invoke&#x2019;s <tt>A</tt>&#x2019;s constructor, passing in the instance of <tt>B</tt>. Once the constructor returns, the new instance of <tt>A</tt> is passed into <tt>B</tt>&#x2019;s <tt>InjectionFuture&lt;A&gt;</tt>. At this point, it becomes safe for <tt>B</tt> to invoke <tt>get()</tt>, which establishes the circular reference.</p>
 <p>Therefore, along with <tt>forkInjector()</tt> and <tt>bindVolatile()</tt>, this allows Tang to inject arbitrary graphs of objects. This pattern avoids non-final fields (once set, all fields of all objects are constant), and it also avoids boiler plate error handling code that checks to see if <tt>B</tt>&#x2019;s instance of <tt>A</tt> has been set.</p>
-<p>When <tt>get()</tt> is called after the application-level call to <tt>getInstance()</tt> returns, it is guranteed to return a non-null reference to an injected instance of the object. However, if <tt>get()</tt> is called <i>before</i> the constructor it was passed to returns, then it is guaranteed to throw an exception. In between these two points in time, <tt>get()</tt>&#x2019;s behavior is undefined, but, for the sake of race-detection and forward compatibility it makes a best-effort attempt to throw an exception.</p>
+<p>When <tt>get()</tt> is called after the application-level call to <tt>getInstance()</tt> returns, it is guaranteed to return a non-null reference to an injected instance of the object. However, if <tt>get()</tt> is called <i>before</i> the constructor it was passed to returns, then it is guaranteed to throw an exception. In between these two points in time, <tt>get()</tt>&#x2019;s behavior is undefined, but, for the sake of race-detection and forward compatibility it makes a best-effort attempt to throw an exception.</p>
 <p>Following Tang&#x2019;s singleton semantics, the instance returned by <tt>get()</tt> will be the same instance the injector would pass into other constructors or return from <tt>getInstance()</tt>.</p>
 <h1><a name="alternative-configuration-sources"></a>Alternative configuration sources</h1>
 <p>Tang provides a number of so-called <i>formats</i> that interface with external configuration data. <tt>ConfigurationModule</tt> is one such example (see above). These formats transform configuration data to and from Tang&#x2019;s raw configuration API. The raw API provides an implementation of ConfigurationBuilder, which implements most of Tang&#x2019;s configuration checks. It also provides a <tt>JavaConfigurationBuilder</tt> interface provides convenience methods that take Java Classes, and leverage Java&#x2019;s generic type system to push a range of static type checks to Java compilation time.</p></div></div>
 <div class="section">
 <h2><a name="raw-configuration-api"></a>Raw configuration API<a name="Raw_configuration_API"></a></h2>
-<p>Tang also provides a lower level configurtion API for applications that need more dynamic control over their configurations:</p>
+<p>Tang also provides a lower level configuration API for applications that need more dynamic control over their configurations:</p>
 
 <div class="source"><pre class="prettyprint">...
 import org.apache.reef.tang.Tang;
@@ -817,9 +817,9 @@ import org.apache.reef.tang.exceptions.I
 
 <ul>
   
-<li>We use <tt>ConfigurationBuilder</tt> objects to tell Tang about the class hierarchy that it will be using to inject objects and (in later examples) to register the contents of configuration files, override default configuration values, and to set default implementations of classes. <tt>ConfigurationBuilder</tt> and <tt>ConfigurationModuleBuider</tt> export similar API&#x2019;s. The difference is that <tt>ConfigurationBuilder</tt> produces <tt>Configuration</tt> objects directly, and is designed to be used at runtime. <tt>ConfigurationModuleBuilder</tt> is desgined to produce data structures that will be generated and analyzed during the build, and at class load time.</li>
+<li>We use <tt>ConfigurationBuilder</tt> objects to tell Tang about the class hierarchy that it will be using to inject objects and (in later examples) to register the contents of configuration files, override default configuration values, and to set default implementations of classes. <tt>ConfigurationBuilder</tt> and <tt>ConfigurationModuleBuilder</tt> export similar API&#x2019;s. The difference is that <tt>ConfigurationBuilder</tt> produces <tt>Configuration</tt> objects directly, and is designed to be used at runtime. <tt>ConfigurationModuleBuilder</tt> is designed to produce data structures that will be generated and analyzed during the build, and at class load time.</li>
   
-<li><tt>bindNamedParameter()</tt> overrides the default value of Timer.Sleep, setting it to 5. Tang inteprets the 5 as a string, but allows instances of Number to be passed in as syntactic sugar.</li>
+<li><tt>bindNamedParameter()</tt> overrides the default value of Timer.Sleep, setting it to 5. Tang interprets the 5 as a string, but allows instances of Number to be passed in as syntactic sugar.</li>
   
 <li>We call <tt>.build()</tt> on the <tt>ConfigurationBuilder</tt>, creating an immutable <tt>Configuration</tt> object. At this point, Tang ensures that all of the classes it has encountered so far are consistent with each other, and that they are suitable for injection. When Tang encounters conflicting classes or configuration files, it throws a <tt>BindException</tt> to indicate that the problem is due to configuration issues. Note that <tt>ConfigurationBuilder</tt> and <tt>Configuration</tt> do not determine whether or not a particular injection will succeed; that is the business of the <i>Injector</i>.</li>
   
@@ -832,7 +832,7 @@ import org.apache.reef.tang.exceptions.I
 <p>Tang configuration information can be divided into two categories. The first type, <i>parameters</i>, pass values such as strings and integers into constructors. Users of Tang encode configuration parameters as strings, allowing them to be stored in configuration files, and passed in on the command line.</p>
 <p>The second type of configuration option, <i>implementation bindings</i>, are used to tell Tang which implementation should be used when an instance of an interface is requested. Like configuration parameters, implementation bindings are expressible as strings: Tang configuration files simply contain the raw (without the generic parameters) name of the Java Classes to be bound together.</p>
 <p>New parameters are created and passed into constructors as in the examples above, by creating implementations of <tt>Name&lt;T&gt;</tt>, and adding <tt>@NamedParameter</tt>, <tt>@Parameter</tt> and <tt>@Inject</tt> annotations as necessary. Specifying implementations for interfaces is a bit more involved, as a number of subtle use cases arise.</p>
-<p>However, all configuration settings in Tang can be unambiguously represented as a <tt>key=value</tt> pair that can be interpreted either asan <tt>interface=implementation</tt> pair or a <tt>configuration_parameter=value</tt> pair. This maps well to Java-style properties files. For example:</p>
+<p>However, all configuration settings in Tang can be unambiguously represented as a <tt>key=value</tt> pair that can be interpreted either as an <tt>interface=implementation</tt> pair or a <tt>configuration_parameter=value</tt> pair. This maps well to Java-style properties files. For example:</p>
 
 <div class="source"><pre class="prettyprint">com.examples.Interface=com.examples.Implementation
 </pre></div>
@@ -842,7 +842,7 @@ import org.apache.reef.tang.exceptions.I
 <h2><a name="looking-under-the-hood"></a>Looking under the hood<a name="Looking_under_the_hood"></a></h2>
 <div class="section">
 <h3><a name="injectionPlan"></a>InjectionPlan<a name="InjectionPlan"></a></h3>
-<p>InjectionPlan objects explain what Tang would do to instantiate a new object, but don&#x2019;t actually instantiate anything. Add the following lines to the Timer example;</p>
+<p>InjectionPlan objects explain what Tang would do to instantiate a new object, but don&#x2019;t actually instantiate anything. Add the following lines to the Timer example:</p>
 
 <div class="source"><pre class="prettyprint">import org.apache.reef.tang.implementation.InjectionPlan;
 import org.apache.reef.tang.implementation.InjectorImpl;

Modified: reef/site/team.html
URL: http://svn.apache.org/viewvc/reef/site/team.html?rev=1722413&r1=1722412&r2=1722413&view=diff
==============================================================================
--- reef/site/team.html (original)
+++ reef/site/team.html Wed Dec 30 21:09:32 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-12-04 
+ | Generated by Apache Maven Doxia at 2015-12-30 
  | Rendered using Apache Maven Fluido Skin 1.4
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20151204" />
+    <meta name="Date-Revision-yyyymmdd" content="20151230" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache REEF - Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4.min.css" />