Repository: incubator-edgent-website
Updated Branches:
  refs/heads/master 53214dead -> 8c5aa8802


[EDGENT-233] Fix broken Javadoc and GitHub links


Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/commit/8c5aa880
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/tree/8c5aa880
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/diff/8c5aa880

Branch: refs/heads/master
Commit: 8c5aa88024cf9a25d1e4af4ec7d1f6b06c96ae3f
Parents: 53214de
Author: Queenie Ma <queeniema.apa...@gmail.com>
Authored: Tue Sep 6 13:33:36 2016 -0700
Committer: Queenie Ma <queeniema.apa...@gmail.com>
Committed: Tue Sep 6 13:38:16 2016 -0700

----------------------------------------------------------------------
 site/_config.yml                                        |  2 +-
 site/docs/console.md                                    |  6 +++---
 site/docs/edgent-getting-started.md                     |  4 ++--
 site/docs/quickstart.md                                 | 12 ++++++------
 site/docs/samples.md                                    |  2 +-
 site/recipes/recipe_adaptable_deadtime_filter.md        |  2 +-
 site/recipes/recipe_adaptable_filter_range.md           |  2 +-
 site/recipes/recipe_adaptable_polling_source.md         |  2 +-
 .../recipe_combining_streams_processing_results.md      |  6 +++---
 .../recipe_different_processing_against_stream.md       |  2 +-
 site/recipes/recipe_external_filter_range.md            |  4 ++--
 site/recipes/recipe_value_out_of_range.md               |  6 +++---
 12 files changed, 25 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/_config.yml
----------------------------------------------------------------------
diff --git a/site/_config.yml b/site/_config.yml
index f1e6c40..a170b80 100755
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -125,4 +125,4 @@ host:    127.0.0.1
 #Base URLs
 sourceurl: https://github.com/apache/incubator-edgent
 projurl: http://edgent.incubator.apache.org
-docsurl: http://edgent.incubator.apache.org/javadoc
+docsurl: http://edgent.incubator.apache.org/javadoc/latest

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/docs/console.md
----------------------------------------------------------------------
diff --git a/site/docs/console.md b/site/docs/console.md
index 86eba52..0d25a62 100644
--- a/site/docs/console.md
+++ b/site/docs/console.md
@@ -50,7 +50,7 @@ try {
 dp.submit(topology);
 ```
 
-The other way to embed the console in your application is shown in the 
`HttpServerSample.java` example (on [GitHub]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/console/src/main/java/{{ site.data.project.unix_name 
}}/samples/console/HttpServerSample.java)). It gets the `HttpServer` instance, 
starts it, and prints out the console URL. Note that it does not submit a job, 
so when the console is displayed in the browser, there are no running jobs and 
therefore no topology graph. The example is meant to show how to get the 
`HttpServer` instance, start the console web app and get the URL of the console.
+The other way to embed the console in your application is shown in the 
`HttpServerSample.java` example (on [GitHub]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/console/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/samples/console/HttpServerSample.java)). It gets 
the `HttpServer` instance, starts it, and prints out the console URL. Note that 
it does not submit a job, so when the console is displayed in the browser, 
there are no running jobs and therefore no topology graph. The example is meant 
to show how to get the `HttpServer` instance, start the console web app and get 
the URL of the console.
 
 ## Accessing the console
 
@@ -64,7 +64,7 @@ If you cannot access the console at this URL, ensure there is 
a `console.war` fi
 
 ## ConsoleWaterDetector sample
 
-To see the features of the console in action and as a way to demonstrate how 
to monitor a topology in the console, let's look at the `ConsoleWaterDetector` 
sample (on [GitHub]({{ site.data.project.source_repository_mirror 
}}/blob/master/samples/console/src/main/java/{{ site.data.project.unix_name 
}}/samples/console/ConsoleWaterDetector.java)).
+To see the features of the console in action and as a way to demonstrate how 
to monitor a topology in the console, let's look at the `ConsoleWaterDetector` 
sample (on [GitHub]({{ site.data.project.source_repository_mirror 
}}/blob/master/samples/console/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/samples/console/ConsoleWaterDetector.java)).
 
 Prior to running any console applications, the `console.war` file must be 
built as mentioned above. If you are building Edgent from a Git repository, go 
to the top level Edgent directory and run `ant`.
 
@@ -402,7 +402,7 @@ If you scroll the browser window down, you can see a 
Metrics section. This secti
 
 ## Counters
 
-In the `ConsoleWaterDetector` application we used a `DevelopmentProvider`. 
Therefore, counters were added to most streams (edges) with the following 
exceptions (from the [Javadoc]({{ site.docsurl }}/latest/{{ 
site.data.project.unix_name }}/metrics/Metrics.html#counter-{{ 
site.data.project.unix_name }}.topology.TStream-) for `edgent.metrics.Metrics`):
+In the `ConsoleWaterDetector` application we used a `DevelopmentProvider`. 
Therefore, counters were added to most streams (edges) with the following 
exceptions (from the [Javadoc]({{ site.docsurl }}/org/apache/{{ 
site.data.project.unix_name }}/metrics/Metrics.html#counter-org.apache.{{ 
site.data.project.unix_name }}.topology.TStream-) for `edgent.metrics.Metrics`):
 
 *Oplets are only inserted upstream from a FanOut oplet.*
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/docs/edgent-getting-started.md
----------------------------------------------------------------------
diff --git a/site/docs/edgent-getting-started.md 
b/site/docs/edgent-getting-started.md
index 6a433cd..4587d57 100644
--- a/site/docs/edgent-getting-started.md
+++ b/site/docs/edgent-getting-started.md
@@ -109,7 +109,7 @@ To understand how the application processes the stream, 
let's review each line.
 
 ### Specifying a provider
 
-Your first step when you write an Edgent application is to create a 
[`DirectProvider`]({{ site.docsurl 
}}/latest/index.html?edgent/providers/direct/DirectProvider.html):
+Your first step when you write an Edgent application is to create a 
[`DirectProvider`]({{ site.docsurl }}/index.html?org/apache/{{ 
site.data.project.unix_name }}/providers/direct/DirectProvider.html):
 
 ```java
 DirectProvider dp = new DirectProvider();
@@ -119,7 +119,7 @@ A `Provider` is an object that contains information on how 
and where your Edgent
 
 ### Creating a topology
 
-Additionally a Provider is used to create a [`Topology`]({{ site.docsurl 
}}/latest/index.html?edgent/topology/Topology.html) instance:
+Additionally a Provider is used to create a [`Topology`]({{ site.docsurl 
}}/index.html?org/apache/{{ site.data.project.unix_name 
}}/topology/Topology.html) instance:
 
 ```java
 Topology topology = dp.newTopology();

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/docs/quickstart.md
----------------------------------------------------------------------
diff --git a/site/docs/quickstart.md b/site/docs/quickstart.md
index 5ea19e3..619d1d7 100644
--- a/site/docs/quickstart.md
+++ b/site/docs/quickstart.md
@@ -7,11 +7,11 @@ title: Quickstart IBM Watson IoT Platform sample
 IoT devices running Edgent applications typically connect to back-end analytic 
systems through a message hub. Message hubs are used to isolate the back-end 
system from having to handle connections from thousands to millions of devices.
 
 An example of such a message hub designed for the Internet of Things is [IBM 
Watson IoT Platform](https://internetofthings.ibmcloud.com/). This cloud 
service runs on IBM's Bluemix cloud platform
-and Edgent provides a [connector]({{ site.docsurl }}/latest/index.html?{{ 
site.data.project.unix_name }}/connectors/iotf/IotfDevice.html).
+and Edgent provides a [connector]({{ site.docsurl }}/index.html?org/apache/{{ 
site.data.project.unix_name }}/connectors/iotp/IotpDevice.html).
 
-You can test out the service without any registration by using its Quickstart 
service and the Edgent sample application: [code]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/connectors/src/main/java/{{ site.data.project.unix_name 
}}/samples/connectors/iotf/IotfQuickstart.java), [Javadoc]({{ site.docsurl 
}}/latest/index.html?{{ site.data.project.unix_name 
}}/samples/connectors/iotf/IotfQuickstart.html).
+You can test out the service without any registration by using its Quickstart 
service and the Edgent sample application: [code]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/connectors/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/samples/connectors/iotp/IotpQuickstart.java), 
[Javadoc]({{ site.docsurl }}/index.html?org/apache/{{ 
site.data.project.unix_name }}/samples/connectors/iotp/IotpQuickstart.html).
 
-You can execute the class directly from Eclipse, or using the script: 
[`edgent/java8/scripts/connectors/iotf/runiotfquickstart.sh`]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/scripts/connectors/iotf/runiotfquickstart.sh)
+You can execute the class directly from Eclipse, or using the script: 
[`edgent/java8/scripts/connectors/iotp/runiotpquickstart.sh`]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/scripts/connectors/iotp/runiotpquickstart.sh)
 
 When run it produces output like this, with a URL as the third line.
 
@@ -25,14 +25,14 @@ Here's an example view:
 
 ## Edgent code
 
-The full source is at: [IotfQuickstart.java]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/connectors/src/main/java/{{ site.data.project.unix_name 
}}/samples/connectors/iotf/IotfQuickstart.java).
+The full source is at: [IotpQuickstart.java]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/connectors/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/samples/connectors/iotp/IotpQuickstart.java).
 
 The first step to is to create a `IotDevice` instance that represents the 
connection to IBM Watson IoT Platform Quickstart service.
 
 ```java
-// Declare a connection to IoTF Quickstart service
+// Declare a connection to IoTP Quickstart service
 String deviceId = "qs" + Long.toHexString(new Random().nextLong());
-IotDevice device = IotfDevice.quickstart(topology, deviceId);
+IotDevice device = IotpDevice.quickstart(topology, deviceId);
 ```
 
 Now any stream can send device events to the Quickstart service by simply 
calling its `events()` method. Here we map a stream of random numbers into JSON 
as the payload for a device event is typically JSON.

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/docs/samples.md
----------------------------------------------------------------------
diff --git a/site/docs/samples.md b/site/docs/samples.md
index 2f335ac..52f3dc3 100644
--- a/site/docs/samples.md
+++ b/site/docs/samples.md
@@ -40,4 +40,4 @@ In addition to the sample application in the [Getting started 
guide](edgent-gett
   - Samples that demonstrate how to use IBM Watson IoT Platform as the IoT 
scale message hub between Edgent and back-end analytic systems:
       * [Sample using the no-registration Quickstart service](quickstart)
 
-Additional samples are documented in the [Edgent Overview]({{ site.docsurl 
}}/latest/overview-summary.html#overview.description) section of the Javadoc.
+Additional samples are documented in the [Edgent Overview]({{ site.docsurl 
}}/overview-summary.html#overview.description) section of the Javadoc.

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_adaptable_deadtime_filter.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_adaptable_deadtime_filter.md 
b/site/recipes/recipe_adaptable_deadtime_filter.md
index 7257a8a..0faab21 100644
--- a/site/recipes/recipe_adaptable_deadtime_filter.md
+++ b/site/recipes/recipe_adaptable_deadtime_filter.md
@@ -12,7 +12,7 @@ Note this is a different case than simply changing the 
polling frequency for the
 
 This case needs a *deadtime filter* and Edgent provides one for your use! In 
contrast to a *deadband filter*, which skips tuples based on a deadband value 
range, a deadtime filter skips tuples based on a *deadtime period* following a 
tuple that is allowed to pass through. For example, if the deadtime period is 
30 minutes, after allowing a tuple to pass, the filter skips any tuples 
received for the next 30 minutes. The next tuple received after that is allowed 
to pass through, and a new deadtime period is begun.
 
-See `edgent.analytics.sensors.Filters.deadtime()` (on [GitHub]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/analytics/sensors/src/main/java/{{ site.data.project.unix_name 
}}/analytics/sensors/Filters.java)) and `edgent.analytics.sensors.Deadtime` (on 
[GitHub]({{ site.data.project.source_repository_mirror 
}}/blob/master/analytics/sensors/src/main/java/{{ site.data.project.unix_name 
}}/analytics/sensors/Deadtime.java)).
+See `edgent.analytics.sensors.Filters.deadtime()` (on [GitHub]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/analytics/sensors/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/analytics/sensors/Filters.java)) and 
`edgent.analytics.sensors.Deadtime` (on [GitHub]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/analytics/sensors/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/analytics/sensors/Deadtime.java)).
 
 This recipe demonstrates how to use an adaptable deadtime filter.
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_adaptable_filter_range.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_adaptable_filter_range.md 
b/site/recipes/recipe_adaptable_filter_range.md
index 50a5eb1..ec1c4a2 100644
--- a/site/recipes/recipe_adaptable_filter_range.md
+++ b/site/recipes/recipe_adaptable_filter_range.md
@@ -2,7 +2,7 @@
 title: Changing a filter's range
 ---
 
-The [Detecting a sensor value out of range](recipe_value_out_of_range.html) 
recipe introduced the basics of filtering as well as the use of a [Range]({{ 
site.docsurl }}/latest/{{ site.data.project.unix_name 
}}/analytics/sensors/Range.html).
+The [Detecting a sensor value out of range](recipe_value_out_of_range.html) 
recipe introduced the basics of filtering as well as the use of a [Range]({{ 
site.docsurl }}/index.html?org/apache/{{ site.data.project.unix_name 
}}/analytics/sensors/Range.html).
 
 Oftentimes, a user wants a filter's behavior to be adaptable rather than 
static. A filter's range can be made changeable via commands from some external 
source or just changed as a result of some other local analytics.
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_adaptable_polling_source.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_adaptable_polling_source.md 
b/site/recipes/recipe_adaptable_polling_source.md
index 33d4dde..5a1acae 100644
--- a/site/recipes/recipe_adaptable_polling_source.md
+++ b/site/recipes/recipe_adaptable_polling_source.md
@@ -8,7 +8,7 @@ Oftentimes, a user wants the poll frequency to be adaptable 
rather than static.
 
 An Edgent `IotProvider` and `IoTDevice` with its command streams would be a 
natural way to control the application. In this recipe we will just simulate a 
"set poll period" command stream.
 
-The `Topology.poll()` [documentation]({{ site.docsurl }}/latest/{{ 
site.data.project.unix_name }}/topology/Topology.html#poll-{{ 
site.data.project.unix_name 
}}.function.Supplier-long-java.util.concurrent.TimeUnit-) describes how the 
poll period may be changed at runtime.
+The `Topology.poll()` [documentation]({{ site.docsurl }}/org/apache/{{ 
site.data.project.unix_name }}/topology/Topology.html#poll-org.apache.{{ 
site.data.project.unix_name 
}}.function.Supplier-long-java.util.concurrent.TimeUnit-) describes how the 
poll period may be changed at runtime.
 
 The mechanism is based on a more general Edgent runtime 
`edgent.execution.services.ControlService` service. The runtime registers 
"control beans" for entities that are controllable. These controls can be 
retrieved at runtime via the service.
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_combining_streams_processing_results.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_combining_streams_processing_results.md 
b/site/recipes/recipe_combining_streams_processing_results.md
index 5e79b41..1184bf0 100644
--- a/site/recipes/recipe_combining_streams_processing_results.md
+++ b/site/recipes/recipe_combining_streams_processing_results.md
@@ -99,7 +99,7 @@ TStream<Map<String, Integer>> readings = top
 
 ## Splitting the readings
 
-We are now ready to split the `readings` stream by the blood pressure 
category. Let's look more closely at the method declaration of `split` below. 
For more details about `split`, refer to the [Javadoc]({{ site.docsurl 
}}/latest/{{ site.data.project.unix_name }}/topology/TStream.html#split-int-{{ 
site.data.project.unix_name }}.function.ToIntFunction-).
+We are now ready to split the `readings` stream by the blood pressure 
category. Let's look more closely at the method declaration of `split` below. 
For more details about `split`, refer to the [Javadoc]({{ site.docsurl 
}}/org/apache/{{ site.data.project.unix_name 
}}/topology/TStream.html#split-int-org.apache.{{ site.data.project.unix_name 
}}.function.ToIntFunction-).
 
 ```java
 java.util.List<TStream<T>> split(int n, ToIntFunction<T> splitter)
@@ -208,7 +208,7 @@ TStream<String> hypertensiveAlerts = hypertensive
 
 ## Combining the alert streams
 
-At this point, we have five streams of alerts. Suppose the doctors are 
interested in seeing a combination of the *Normal* alerts and *Prehypertension* 
alerts. Or, suppose that they would like to see all of the alerts from all 
categories together. Here, `union` comes in handy. For more details about 
`union`, refer to the [Javadoc]({{ site.docsurl }}/latest/{{ 
site.data.project.unix_name }}/topology/TStream.html#union-{{ 
site.data.project.unix_name }}.topology.TStream-).
+At this point, we have five streams of alerts. Suppose the doctors are 
interested in seeing a combination of the *Normal* alerts and *Prehypertension* 
alerts. Or, suppose that they would like to see all of the alerts from all 
categories together. Here, `union` comes in handy. For more details about 
`union`, refer to the [Javadoc]({{ site.docsurl }}/org/apache/{{ 
site.data.project.unix_name }}/topology/TStream.html#union-org.apache.{{ 
site.data.project.unix_name }}.topology.TStream-).
 
 There are two ways to define a union. You can either union a `TStream` with 
another `TStream`, or with a set of streams (`Set<TStream<T>>`). In both cases, 
a single `TStream` is returned containing the tuples that flow on the input 
stream(s).
 
@@ -251,7 +251,7 @@ Finally, we can terminate the stream and print out all 
alerts.
 allAlerts.sink(tuple -> System.out.println(tuple));
 ```
 
-We end our application by submitting the `Topology`. Note that this 
application is available as a [sample]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/topology/src/main/java/{{ site.data.project.unix_name 
}}/samples/topology/CombiningStreamsProcessingResults.java).
+We end our application by submitting the `Topology`. Note that this 
application is available as a [sample]({{ 
site.data.project.source_repository_mirror 
}}/blob/master/samples/topology/src/main/java/org/apache/{{ 
site.data.project.unix_name 
}}/samples/topology/CombiningStreamsProcessingResults.java).
 
 ## Observing the output
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_different_processing_against_stream.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_different_processing_against_stream.md 
b/site/recipes/recipe_different_processing_against_stream.md
index 9338e7a..a4bf747 100644
--- a/site/recipes/recipe_different_processing_against_stream.md
+++ b/site/recipes/recipe_different_processing_against_stream.md
@@ -56,7 +56,7 @@ public class ApplyDifferentProcessingAgainstStream {
 
 ## Generating gas mileage sensor readings
 
-The next step is to simulate a stream of gas mileage readings using 
[`SimpleSimulatedSensor`]({{ site.data.project.source_repository_mirror 
}}/blob/master/samples/utils/src/main/java/{{ site.data.project.unix_name 
}}/samples/utils/sensor/SimpleSimulatedSensor.java). We set the initial gas 
mileage and delta factor in the first two arguments. The last argument ensures 
that the sensor reading falls in an acceptable range (between 7.0 mpg and 14.0 
mpg). In our `main()`, we use the `poll()` method to generate a flow of tuples 
(readings), where each tuple arrives every second.
+The next step is to simulate a stream of gas mileage readings using 
[`SimpleSimulatedSensor`]({{ site.data.project.source_repository_mirror 
}}/blob/master/samples/utils/src/main/java/org/apache/{{ 
site.data.project.unix_name 
}}/samples/utils/sensor/SimpleSimulatedSensor.java). We set the initial gas 
mileage and delta factor in the first two arguments. The last argument ensures 
that the sensor reading falls in an acceptable range (between 7.0 mpg and 14.0 
mpg). In our `main()`, we use the `poll()` method to generate a flow of tuples 
(readings), where each tuple arrives every second.
 
 ```java
 // Generate a stream of gas mileage sensor readings

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_external_filter_range.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_external_filter_range.md 
b/site/recipes/recipe_external_filter_range.md
index 959cea0..9b4a429 100644
--- a/site/recipes/recipe_external_filter_range.md
+++ b/site/recipes/recipe_external_filter_range.md
@@ -2,7 +2,7 @@
 title: Using an external configuration file for filter ranges
 ---
 
-The [Detecting a sensor value out of range](recipe_value_out_of_range.html) 
recipe introduced the basics of filtering as well as the use of a [Range]({{ 
site.docsurl }}/latest/{{ site.data.project.unix_name 
}}/analytics/sensors/Range.html).
+The [Detecting a sensor value out of range](recipe_value_out_of_range.html) 
recipe introduced the basics of filtering as well as the use of a [Range]({{ 
site.docsurl }}/index.html?org/apache/{{ site.data.project.unix_name 
}}/analytics/sensors/Range.html).
 
 Oftentimes, a user wants to initialize a range specification from an external 
configuration file so the application code is more easily configured and 
reusable.
 
@@ -12,7 +12,7 @@ We're going to assume familiarity with that earlier recipe 
and those concepts an
 
 ## Create a configuration file
 
-The file's syntax is that for a `java.util.Properties` object. See the `Range` 
[documentation]({{ site.data.project.source_repository_mirror 
}}/blob/master/analytics/sensors/src/main/java/{{ site.data.project.unix_name 
}}/analytics/sensors/Range.java) for its string syntax.
+The file's syntax is that for a `java.util.Properties` object. See the `Range` 
[documentation]({{ site.data.project.source_repository_mirror 
}}/blob/master/analytics/sensors/src/main/java/org/apache/{{ 
site.data.project.unix_name }}/analytics/sensors/Range.java) for its string 
syntax.
 
 Put this into a file:
 

http://git-wip-us.apache.org/repos/asf/incubator-edgent-website/blob/8c5aa880/site/recipes/recipe_value_out_of_range.md
----------------------------------------------------------------------
diff --git a/site/recipes/recipe_value_out_of_range.md 
b/site/recipes/recipe_value_out_of_range.md
index 1089557..b7d4d02 100644
--- a/site/recipes/recipe_value_out_of_range.md
+++ b/site/recipes/recipe_value_out_of_range.md
@@ -46,7 +46,7 @@ public class DetectValueOutOfRange {
 
 ## Generating temperature sensor readings
 
-The next step is to simulate a stream of temperature readings using 
[`SimulatedTemperatureSensor`]({{ site.data.project.source_repository_mirror 
}}/blob/master/samples/utils/src/main/java/{{ site.data.project.unix_name 
}}/samples/utils/sensor/SimulatedTemperatureSensor.java). By default, the 
sensor sets the initial temperature to 80°F and ensures that new readings are 
between 28°F and 112°F. In our `main()`, we use the `poll()` method to 
generate a flow of tuples, where a new tuple (temperature reading) arrives 
every second.
+The next step is to simulate a stream of temperature readings using 
[`SimulatedTemperatureSensor`]({{ site.data.project.source_repository_mirror 
}}/blob/master/samples/utils/src/main/java/org/apache/{{ 
site.data.project.unix_name 
}}/samples/utils/sensor/SimulatedTemperatureSensor.java). By default, the 
sensor sets the initial temperature to 80°F and ensures that new readings are 
between 28°F and 112°F. In our `main()`, we use the `poll()` method to 
generate a flow of tuples, where a new tuple (temperature reading) arrives 
every second.
 
 ```java
 // Generate a stream of temperature sensor readings
@@ -56,7 +56,7 @@ TStream<Double> temp = top.poll(tempSensor, 1, 
TimeUnit.SECONDS);
 
 ## Simple filtering
 
-If the corn grower is interested in determining when the temperature is 
strictly out of the optimal range of 77°F and 91°F, a simple filter can be 
used. The `filter` method can be applied to `TStream` objects, where a filter 
predicate determines which tuples to keep for further processing. For its 
method declaration, refer to the [Javadoc]({{ site.docsurl }}/latest/{{ 
site.data.project.unix_name }}/topology/TStream.html#filter-{{ 
site.data.project.unix_name }}.function.Predicate-).
+If the corn grower is interested in determining when the temperature is 
strictly out of the optimal range of 77°F and 91°F, a simple filter can be 
used. The `filter` method can be applied to `TStream` objects, where a filter 
predicate determines which tuples to keep for further processing. For its 
method declaration, refer to the [Javadoc]({{ site.docsurl }}/org/apache/{{ 
site.data.project.unix_name }}/topology/TStream.html#filter-org.apache.{{ 
site.data.project.unix_name }}.function.Predicate-).
 
 In this case, we want to keep temperatures below the lower range value *or* 
above the upper range value. This is expressed in the filter predicate, which 
follows Java's syntax for [lambda 
expressions](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax).
 Then, we terminate the stream (using `sink`) by printing out the warning to 
standard out. Note that `\u00b0` is the Unicode encoding for the degree (°) 
symbol.
 
@@ -77,7 +77,7 @@ The `deadband` filter is a part of the `edgent.analytics` 
package focused on han
 deadband(TStream<T> stream, Function<T,V> value, Predicate<V> inBand)
 ```
 
-The first parameter is the stream to the filtered, which is `temp` in our 
scenario. The second parameter is the value to examine. Here, we use the 
`identity()` method to return a tuple on the stream. The last parameter is the 
predicate that defines the optimal range, that is, between 77°F and 91°F. it 
is important to note that this differs from the `TStream` version of `filter` 
in which one must explicitly specify the values that are out of range. The code 
snippet below demonstrates how the method call is pieced together. The 
`deadbandFiltered` stream contains temperature readings that follow the rules 
as described in the [Javadoc]({{ site.docsurl }}/latest/{{ 
site.data.project.unix_name }}/analytics/sensors/Filters.html#deadband-{{ 
site.data.project.unix_name }}.topology.TStream-{{ site.data.project.unix_name 
}}.function.Function-{{ site.data.project.unix_name }}.function.Predicate-):
+The first parameter is the stream to the filtered, which is `temp` in our 
scenario. The second parameter is the value to examine. Here, we use the 
`identity()` method to return a tuple on the stream. The last parameter is the 
predicate that defines the optimal range, that is, between 77°F and 91°F. it 
is important to note that this differs from the `TStream` version of `filter` 
in which one must explicitly specify the values that are out of range. The code 
snippet below demonstrates how the method call is pieced together. The 
`deadbandFiltered` stream contains temperature readings that follow the rules 
as described in the [Javadoc]({{ site.docsurl }}/org/apache/{{ 
site.data.project.unix_name 
}}/analytics/sensors/Filters.html#deadband-org.apache.{{ 
site.data.project.unix_name }}.topology.TStream-org.apache.{{ 
site.data.project.unix_name }}.function.Function-org.apache.{{ 
site.data.project.unix_name }}.function.Predicate-):
 
 * the value is outside of the optimal range (deadband)
 * the first value inside the optimal range after a period being outside it

Reply via email to