You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2015/05/16 20:44:26 UTC

[02/12] incubator-streams-examples git commit: all files needed for decent maven site

all files needed for decent maven site


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/commit/107852b2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/tree/107852b2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/diff/107852b2

Branch: refs/heads/0.2-incubating-rc1
Commit: 107852b258d6a6d31ba9e9447105a1a2f88f0aed
Parents: a1836d0
Author: Steve Blackmon <sb...@apache.org>
Authored: Mon Apr 27 22:25:14 2015 -0500
Committer: Steve Blackmon <sb...@apache.org>
Committed: Mon Apr 27 22:25:14 2015 -0500

----------------------------------------------------------------------
 local/elasticsearch-hdfs/ElasticsearchHdfs.md   |  47 ----
 local/elasticsearch-hdfs/HdfsElasticsearch.md   |  50 ----
 local/elasticsearch-hdfs/README.md              |   4 +-
 local/elasticsearch-hdfs/pom.xml                |  19 +-
 .../main/resources/ElasticsearchHdfs.dot.png    | Bin 0 -> 23205 bytes
 .../main/resources/HdfsElasticsearch.dot.png    | Bin 0 -> 23439 bytes
 .../src/site/markdown/ElasticsearchHdfs.md      |  47 ++++
 .../src/site/markdown/HdfsElasticsearch.md      |  50 ++++
 .../src/site/markdown/index.md                  |  35 +++
 .../src/site/resources/ElasticsearchHdfs.dot    |  17 ++
 .../site/resources/ElasticsearchHdfs.dot.png    | Bin 0 -> 23205 bytes
 .../ElasticsearchHdfsConfiguration.json         |  10 +
 .../src/site/resources/HdfsElasticsearch.dot    |  17 ++
 .../site/resources/HdfsElasticsearch.dot.png    | Bin 0 -> 23439 bytes
 .../HdfsElasticsearchConfiguration.json         |  10 +
 .../src/site/resources/testBackup.json          |  24 ++
 .../src/site/resources/testRestore.json         |  20 ++
 .../ElasticsearchReindex.png                    | Bin 8913 -> 0 bytes
 local/elasticsearch-reindex/README.md           |   4 +-
 local/elasticsearch-reindex/pom.xml             |  18 +-
 .../main/resources/ElasticsearchReindex.dot.png | Bin 0 -> 23187 bytes
 .../src/site/markdown/index.md                  |  79 +++++++
 .../resources/ActivityChildObjectParent.json    |  15 ++
 .../src/site/resources/ElasticsearchReindex.dot |  17 ++
 .../site/resources/ElasticsearchReindex.dot.png | Bin 0 -> 23187 bytes
 .../ElasticsearchReindexConfiguration.json      |  10 +
 .../src/site/resources/application.json         |  26 ++
 .../src/site/resources/testReindex.json         |  26 ++
 .../src/site/resources/testReindexChild.json    |  26 ++
 .../src/site/resources/testReindexParent.json   |  26 ++
 .../MongoElasticsearchSync.png                  | Bin 11502 -> 0 bytes
 local/mongo-elasticsearch-sync/README.md        |   4 +-
 local/mongo-elasticsearch-sync/pom.xml          |   3 +
 .../resources/MongoElasticsearchSync.dot.png    | Bin 0 -> 27856 bytes
 .../src/site/markdown/index.md                  |  68 ++++++
 .../site/resources/MongoElasticsearchSync.dot   |  18 ++
 .../resources/MongoElasticsearchSync.dot.png    | Bin 0 -> 27856 bytes
 .../MongoElasticsearchSyncConfiguration.json    |  10 +
 .../src/site/resources/application.json         |  17 ++
 .../src/site/resources/testSync.json            |  18 ++
 local/twitter-follow-graph/README.md            |   2 +-
 .../twitter-follow-graph/TwitterFollowGraph.png | Bin 35826 -> 0 bytes
 local/twitter-follow-graph/pom.xml              |  21 +-
 .../main/resources/TwitterFollowGraph.dot.png   | Bin 0 -> 34724 bytes
 .../src/site/markdown/index.md                  |  97 ++++++++
 .../src/site/resources/TwitterFollowGraph.dot   |  21 ++
 .../site/resources/TwitterFollowGraph.dot.png   | Bin 0 -> 34724 bytes
 .../TwitterFollowGraphConfiguration.json        |  13 +
 local/twitter-history-elasticsearch/README.md   |   2 +-
 .../TwitterHistoryElasticsearch.png             | Bin 27497 -> 0 bytes
 local/twitter-history-elasticsearch/pom.xml     |  14 +-
 .../TwitterHistoryElasticsearch.dot.png         | Bin 0 -> 26774 bytes
 .../src/site/markdown/index.md                  |  78 ++++++
 .../resources/TwitterHistoryElasticsearch.dot   |  21 ++
 .../TwitterHistoryElasticsearch.dot.png         | Bin 0 -> 26774 bytes
 .../src/site/resources/application.conf         |  23 ++
 ...witterHistoryElasticsearchConfiguration.json |  13 +
 .../twitter-userstream-elasticsearch/README.md  |   4 +-
 .../TwitterUserstreamElasticsearch.png          | Bin 65713 -> 0 bytes
 local/twitter-userstream-elasticsearch/pom.xml  |  12 +-
 .../TwitterUserstreamElasticsearch.dot.png      | Bin 0 -> 64469 bytes
 .../src/site/markdown/index.md                  |  73 ++++++
 .../TwitterUserstreamElasticsearch.dot          |  28 +++
 .../TwitterUserstreamElasticsearch.dot.png      | Bin 0 -> 64469 bytes
 .../src/site/resources/application.conf         |  22 ++
 .../twitter/TwitterUserstreamElasticsearch.json |  14 ++
 pom.xml                                         | 235 ++++++++++++++++++-
 src/site/site.xml                               |  29 +++
 68 files changed, 1293 insertions(+), 164 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/ElasticsearchHdfs.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/ElasticsearchHdfs.md b/local/elasticsearch-hdfs/ElasticsearchHdfs.md
deleted file mode 100644
index b42d1a8..0000000
--- a/local/elasticsearch-hdfs/ElasticsearchHdfs.md
+++ /dev/null
@@ -1,47 +0,0 @@
-Apache Streams (incubating)
-Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
---------------------------------------------------------------------------------
-
-elasticsearch-hdfs
-==============================
-
-Description:
------------------
-
-Copies documents from elasticsearch to hdfs.
-
-Specification:
------------------
-
-[ElasticsearchHdfs.dot](src/main/resources/ElasticsearchHdfs.dot "ElasticsearchHdfs.dot" )
-
-Diagram:
------------------
-
-![ElasticsearchHdfs.png](./ElasticsearchHdfs.png?raw=true)
-
-Example Configuration:
-----------------------
-
-    {
-        "source": {
-            "host": "localhost",
-            "port": 27017,
-            "db": "streams",
-            "collection": "activities"
-        },
-        "destination": {
-            "hosts": [
-                "localhost"
-            ],
-            "port": 9300,
-            "clusterName": "elasticsearch",
-            "index": "destination",
-            "type": "activity"
-        }
-    }
-
-Run:
---------
-
-`docker run elasticsearch-hdfs:0.2-incubating-SNAPSHOT-PP.jar java -cp stash-migrate-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.elasticsearch.example.HdfsElasticsearch`

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/HdfsElasticsearch.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/HdfsElasticsearch.md b/local/elasticsearch-hdfs/HdfsElasticsearch.md
deleted file mode 100644
index c4ca261..0000000
--- a/local/elasticsearch-hdfs/HdfsElasticsearch.md
+++ /dev/null
@@ -1,50 +0,0 @@
-Apache Streams (incubating)
-Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
---------------------------------------------------------------------------------
-
-hdfs-elasticsearch
-==============================
-
-Description:
------------------
-
-Copies documents from hdfs to elasticsearch.
-
-Specification:
------------------
-
-[HdfsElasticsearch.dot](src/main/resources/HdfsElasticsearch.dot "HdfsElasticsearch.dot" )
-
-Diagram:
------------------
-
-![HdfsElasticsearch.png](./HdfsElasticsearch.png?raw=true)
-
-Example Configuration:
-----------------------
-
-    {
-        "source": {
-            "scheme": "file",
-            "host": "localhost",
-            "user": "cloudera",
-            "path": "/tmp",
-            "writerPath": "activity"
-        },
-        "destination": {
-            "hosts": [
-                "localhost"
-            ],
-            "port": 9300,
-            "clusterName": "elasticsearch",
-            "index": "activity2",
-            "type": "activity",
-            "forceUseConfig": true
-        }
-    }
-
-
-Run:
---------
-
-`docker run elasticsearch-hdfs:0.2-incubating-SNAPSHOT.jar java -cp elasticsearch-hdfs-0.2-incubating-SNAPSHOT.jar -Dconfig.file=file://<location_of_config_file>.json org.apache.streams.elasticsearch.example.HdfsElasticsearch`

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/README.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/README.md b/local/elasticsearch-hdfs/README.md
index 349046d..b3e2e3f 100644
--- a/local/elasticsearch-hdfs/README.md
+++ b/local/elasticsearch-hdfs/README.md
@@ -16,9 +16,9 @@ Copies documents between elasticsearch and file system using the hdfs persist mo
 Streams:
 --------
 
-[ElasticsearchHdfs](ElasticsearchHdfs.md "ElasticsearchHdfs" )
+[ElasticsearchHdfs](src/site/markdown/ElasticsearchHdfs.md "ElasticsearchHdfs" )
 
-[HdfsElasticsearch](HdfsElasticsearch.md "HdfsElasticsearch" )
+[HdfsElasticsearch](src/site/markdown/HdfsElasticsearch.md "HdfsElasticsearch" )
 
 Build:
 ---------

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/pom.xml
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/pom.xml b/local/elasticsearch-hdfs/pom.xml
index 8819319..3d07371 100644
--- a/local/elasticsearch-hdfs/pom.xml
+++ b/local/elasticsearch-hdfs/pom.xml
@@ -29,7 +29,9 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>elasticsearch-hdfs</artifactId>
-    <version>0.2-incubating-SNAPSHOT</version>
+    <name>elasticsearch-hdfs</name>
+
+    <description>Copies documents between elasticsearch and file system using the hdfs persist module.</description>
 
     <properties>
         <elasticsearch.version>1.1.0</elasticsearch.version>
@@ -71,45 +73,38 @@
         <scope>test</scope>
     </dependency>
         <dependency>
-            <groupId>org.apache.streams</groupId>
-            <artifactId>streams-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
             <groupId>com.typesafe</groupId>
             <artifactId>config</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
             <artifactId>streams-config</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-util</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-pojo</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-runtime-local</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-persist-elasticsearch</artifactId>
-            <version>0.2-incubating-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-persist-hdfs</artifactId>
-            <version>0.2-incubating-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.slf4j</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/main/resources/ElasticsearchHdfs.dot.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/main/resources/ElasticsearchHdfs.dot.png b/local/elasticsearch-hdfs/src/main/resources/ElasticsearchHdfs.dot.png
new file mode 100644
index 0000000..fd5f3b5
Binary files /dev/null and b/local/elasticsearch-hdfs/src/main/resources/ElasticsearchHdfs.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/main/resources/HdfsElasticsearch.dot.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/main/resources/HdfsElasticsearch.dot.png b/local/elasticsearch-hdfs/src/main/resources/HdfsElasticsearch.dot.png
new file mode 100644
index 0000000..d44f8db
Binary files /dev/null and b/local/elasticsearch-hdfs/src/main/resources/HdfsElasticsearch.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/markdown/ElasticsearchHdfs.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/markdown/ElasticsearchHdfs.md b/local/elasticsearch-hdfs/src/site/markdown/ElasticsearchHdfs.md
new file mode 100644
index 0000000..219516a
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/markdown/ElasticsearchHdfs.md
@@ -0,0 +1,47 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+elasticsearch-hdfs
+==============================
+
+Description:
+-----------------
+
+Copies documents from elasticsearch to hdfs.
+
+Specification:
+-----------------
+
+[ElasticsearchHdfs.dot](ElasticsearchHdfs.dot "ElasticsearchHdfs.dot" )
+
+Diagram:
+-----------------
+
+![ElasticsearchHdfs.dot.png](./ElasticsearchHdfs.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    {
+        "source": {
+            "host": "localhost",
+            "port": 27017,
+            "db": "streams",
+            "collection": "activities"
+        },
+        "destination": {
+            "hosts": [
+                "localhost"
+            ],
+            "port": 9300,
+            "clusterName": "elasticsearch",
+            "index": "destination",
+            "type": "activity"
+        }
+    }
+
+Run:
+--------
+
+`docker run elasticsearch-hdfs:0.2-incubating-SNAPSHOT-PP.jar java -cp stash-migrate-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.elasticsearch.example.HdfsElasticsearch`

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/markdown/HdfsElasticsearch.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/markdown/HdfsElasticsearch.md b/local/elasticsearch-hdfs/src/site/markdown/HdfsElasticsearch.md
new file mode 100644
index 0000000..db6b862
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/markdown/HdfsElasticsearch.md
@@ -0,0 +1,50 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+hdfs-elasticsearch
+==============================
+
+Description:
+-----------------
+
+Copies documents from hdfs to elasticsearch.
+
+Specification:
+-----------------
+
+[HdfsElasticsearch.dot](HdfsElasticsearch.dot "HdfsElasticsearch.dot" )
+
+Diagram:
+-----------------
+
+![HdfsElasticsearch.dot.png](./HdfsElasticsearch.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    {
+        "source": {
+            "scheme": "file",
+            "host": "localhost",
+            "user": "cloudera",
+            "path": "/tmp",
+            "writerPath": "activity"
+        },
+        "destination": {
+            "hosts": [
+                "localhost"
+            ],
+            "port": 9300,
+            "clusterName": "elasticsearch",
+            "index": "activity2",
+            "type": "activity",
+            "forceUseConfig": true
+        }
+    }
+
+
+Run:
+--------
+
+`docker run elasticsearch-hdfs:0.2-incubating-SNAPSHOT.jar java -cp elasticsearch-hdfs-0.2-incubating-SNAPSHOT.jar -Dconfig.file=file://<location_of_config_file>.json org.apache.streams.elasticsearch.example.HdfsElasticsearch`

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/markdown/index.md b/local/elasticsearch-hdfs/src/site/markdown/index.md
new file mode 100644
index 0000000..cfd5a30
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/markdown/index.md
@@ -0,0 +1,35 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+elasticsearch-hdfs
+==============================
+
+Requirements:
+-------------
+ - A running ElasticSearch 1.0.0+ instance
+
+Description:
+------------
+Copies documents between elasticsearch and file system using the hdfs persist module.
+
+Streams:
+--------
+
+<a href="HdfsElasticsearch.html" target="_self">HdfsElasticsearch</a>
+
+<a href="ElasticsearchHdfs.html" target="_self">ElasticsearchHdfs</a>
+
+Build:
+---------
+
+`mvn clean package`
+
+Note that an alternative version of hdfs is packaged, by excluding org.apache.hadoop.hadoop-hdfs when
+importing org.apache.streams.streams-persist-hdfs, and specifically depending on a different preferred version.
+
+Deploy:
+--------
+
+`mvn -Pdocker clean package docker:build`
+

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot b/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot
new file mode 100644
index 0000000..c953522
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot
@@ -0,0 +1,17 @@
+digraph g {
+
+  //providers
+  ElasticsearchPersistReader [label="ElasticsearchPersistReader",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistReader.java"];
+
+  //persisters
+  WebHdfsPersistWriter [label="WebHdfsPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];
+
+  //data
+  source [label="es://{indexes}/{types}",shape=box];
+  destination [label="hdfs://{index}/{type}",shape=box];
+
+  //stream
+  source -> ElasticsearchPersistReader
+  ElasticsearchPersistReader -> WebHdfsPersistWriter [label="String"];
+  WebHdfsPersistWriter -> destination
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot.png b/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot.png
new file mode 100644
index 0000000..fd5f3b5
Binary files /dev/null and b/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfs.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfsConfiguration.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfsConfiguration.json b/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfsConfiguration.json
new file mode 100644
index 0000000..91324dd
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/resources/ElasticsearchHdfsConfiguration.json
@@ -0,0 +1,10 @@
+{
+  "$schema": "http://json-schema.org/draft-03/schema",
+  "type": "object",
+  "javaType" : "org.apache.streams.elasticsearch.example.ElasticsearchHdfsConfiguration",
+  "javaInterfaces": ["java.io.Serializable"],
+  "properties": {
+    "source": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchReaderConfiguration", "type": "object", "required": true },
+    "destination": { "javaType": "org.apache.streams.hdfs.HdfsWriterConfiguration", "type": "object", "required": true }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot b/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot
new file mode 100644
index 0000000..f9a0efa
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot
@@ -0,0 +1,17 @@
+digraph g {
+
+  //providers
+  WebHdfsPersistReader [label="WebHdfsPersistReader",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistReader.java"];
+
+  //persisters
+  ElasticsearchPersistWriter [label="ElasticsearchPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];
+
+  //data
+  source [label="hdfs://{indexes}/{types}",shape=box];
+  destination [label="es://{index}/{type}",shape=box];
+
+  //stream
+  source -> WebHdfsPersistReader
+  WebHdfsPersistReader -> ElasticsearchPersistWriter [label="String"];
+  ElasticsearchPersistWriter -> destination
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot.png b/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot.png
new file mode 100644
index 0000000..d44f8db
Binary files /dev/null and b/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearch.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearchConfiguration.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearchConfiguration.json b/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearchConfiguration.json
new file mode 100644
index 0000000..c8072ba
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/resources/HdfsElasticsearchConfiguration.json
@@ -0,0 +1,10 @@
+{
+  "$schema": "http://json-schema.org/draft-03/schema",
+  "type": "object",
+  "javaType" : "org.apache.streams.elasticsearch.example.HdfsElasticsearchConfiguration",
+  "javaInterfaces": ["java.io.Serializable"],
+  "properties": {
+    "source": { "javaType": "org.apache.streams.hdfs.HdfsReaderConfiguration", "type": "object", "required": true },
+    "destination": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/testBackup.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/testBackup.json b/local/elasticsearch-hdfs/src/site/resources/testBackup.json
new file mode 100644
index 0000000..2002cb8
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/resources/testBackup.json
@@ -0,0 +1,24 @@
+{
+    "source": {
+        "hosts": [
+            "localhost"
+        ],
+        "port": 9300,
+        "clusterName": "elasticsearch",
+        "indexes": [
+            "source"
+        ],
+        "types": [
+            "activity"
+        ]
+    },
+    "destination": {
+      "scheme": "file",
+      "host": "localhost",
+      "user": "cloudera",
+      "path": "target",
+      "writerPath": "test",
+      "writerFilePrefix": "activities"
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-hdfs/src/site/resources/testRestore.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-hdfs/src/site/resources/testRestore.json b/local/elasticsearch-hdfs/src/site/resources/testRestore.json
new file mode 100644
index 0000000..63b42c5
--- /dev/null
+++ b/local/elasticsearch-hdfs/src/site/resources/testRestore.json
@@ -0,0 +1,20 @@
+{
+      "source": {
+        "scheme": "file",
+        "host": "localhost",
+        "user": "cloudera",
+        "path": "target",
+        "readerPath": "test"
+      },
+      "destination": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "index": "destination",
+          "type": "activity",
+          "forceUseConfig": true
+      }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/ElasticsearchReindex.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/ElasticsearchReindex.png b/local/elasticsearch-reindex/ElasticsearchReindex.png
deleted file mode 100644
index 9e59093..0000000
Binary files a/local/elasticsearch-reindex/ElasticsearchReindex.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/README.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/README.md b/local/elasticsearch-reindex/README.md
index 5fbace2..71e8c28 100644
--- a/local/elasticsearch-reindex/README.md
+++ b/local/elasticsearch-reindex/README.md
@@ -13,7 +13,7 @@ Requirements:
 
 Description:
 ------------
-Copies documents into a different index
+Copies documents  between indexes.
 
 Specification:
 -----------------
@@ -23,7 +23,7 @@ Specification:
 Diagram:
 -----------------
 
-![ElasticsearchReindex.png](./ElasticsearchReindex.png?raw=true)
+![ElasticsearchReindex.dot.png](src/main/resources/ElasticsearchReindex.dot.png?raw=true)
 
 Example Configuration:
 ----------------------

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/pom.xml
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/pom.xml b/local/elasticsearch-reindex/pom.xml
index a75fa2a..59e968b 100644
--- a/local/elasticsearch-reindex/pom.xml
+++ b/local/elasticsearch-reindex/pom.xml
@@ -29,7 +29,9 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>elasticsearch-reindex</artifactId>
-    <version>0.2-incubating-SNAPSHOT</version>
+    <name>elasticsearch-reindex</name>
+
+    <description>Copies documents between indexes.</description>
 
     <properties>
         <elasticsearch.version>1.1.0</elasticsearch.version>
@@ -63,40 +65,34 @@
         <scope>test</scope>
     </dependency>
         <dependency>
-            <groupId>org.apache.streams</groupId>
-            <artifactId>streams-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
             <groupId>com.typesafe</groupId>
             <artifactId>config</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
             <artifactId>streams-config</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-util</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-pojo</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-runtime-local</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-persist-elasticsearch</artifactId>
-            <version>0.2-incubating-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/main/resources/ElasticsearchReindex.dot.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/main/resources/ElasticsearchReindex.dot.png b/local/elasticsearch-reindex/src/main/resources/ElasticsearchReindex.dot.png
new file mode 100644
index 0000000..b6541bb
Binary files /dev/null and b/local/elasticsearch-reindex/src/main/resources/ElasticsearchReindex.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/markdown/index.md b/local/elasticsearch-reindex/src/site/markdown/index.md
new file mode 100644
index 0000000..df20698
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/markdown/index.md
@@ -0,0 +1,79 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+elasticsearch-reindex
+==============================
+
+Requirements:
+-------------
+ - A running ElasticSearch 1.0.0+ cluster
+ - Transport client access to cluster
+ - elasticsearch.version and lucene.version set to match cluster
+
+Description:
+------------
+Copies documents into a different index
+
+Specification:
+-----------------
+
+[ElasticsearchReindex.dot](src/main/resources/ElasticsearchReindex.dot "ElasticsearchReindex.dot" )
+
+Diagram:
+-----------------
+
+![ElasticsearchReindex.dot.png](./ElasticsearchReindex.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    {
+        "source": {
+            "hosts": [
+                "localhost"
+            ],
+            "port": 9300,
+            "clusterName": "elasticsearch",
+            "indexes": [
+                "activity"
+            ],
+            "types": [
+                "activity"
+            ],
+            "forceUseConfig": true
+        },
+        "destination": {
+            "hosts": [
+                "localhost"
+            ],
+            "port": 9300,
+            "clusterName": "elasticsearch",
+            "index": "activity2",
+            "type": "activity",
+            "forceUseConfig": true
+        }
+    }
+
+Populate source and destination in configuration with cluster / index / type details.
+
+Build:
+---------
+
+`mvn clean package verify`
+
+Run:
+--------
+
+`java -cp target/elasticsearch-reindex-0.1-SNAPSHOT.jar -Dconfig.file=src/main/resources/application.json org.apache.streams.example.elasticsearch.ElasticsearchReindex`
+
+Deploy:
+--------
+`mvn -Pdocker clean package docker:build`
+
+`docker tag elasticsearch-reindex:0.2-incubating-SNAPSHOT <dockerregistry>:elasticsearch-reindex:0.2-incubating-SNAPSHOT`
+
+`docker push <dockerregistry>:elasticsearch-reindex:0.2-incubating-SNAPSHOT`
+
+`docker run <dockerregistry>:elasticsearch-reindex:0.2-incubating-SNAPSHOT.jar java -cp elasticsearch-reindex-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.example.elasticsearch.ElasticsearchReindex`
+

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/ActivityChildObjectParent.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/ActivityChildObjectParent.json b/local/elasticsearch-reindex/src/site/resources/ActivityChildObjectParent.json
new file mode 100644
index 0000000..963fbe7
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/ActivityChildObjectParent.json
@@ -0,0 +1,15 @@
+{
+    "template": "*",
+    "order": 100,
+    "mappings": {
+        "object": {
+            "dynamic": true
+        },
+        "activity": {
+            "_parent": {
+              "type": "object"
+            },
+            "dynamic": true
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot b/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot
new file mode 100644
index 0000000..52456a9
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot
@@ -0,0 +1,17 @@
+digraph g {
+
+  //providers
+  ElasticsearchPersistReader [label="ElasticsearchPersistReader",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistReader.java"];
+
+  //persisters
+  ElasticsearchPersistWriter [label="ElasticsearchPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];
+
+  //data
+  source [label="es://{indexes}/{types}",shape=box];
+  destination [label="es://{index}/{type}",shape=box];
+
+  //stream
+  source -> ElasticsearchPersistReader
+  ElasticsearchPersistReader -> ElasticsearchPersistWriter [label="String"];
+  ElasticsearchPersistWriter -> destination
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot.png
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot.png b/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot.png
new file mode 100644
index 0000000..b6541bb
Binary files /dev/null and b/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindex.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindexConfiguration.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindexConfiguration.json b/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindexConfiguration.json
new file mode 100644
index 0000000..ffdc4d8
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/ElasticsearchReindexConfiguration.json
@@ -0,0 +1,10 @@
+{
+  "$schema": "http://json-schema.org/draft-03/schema",
+  "type": "object",
+  "javaType" : "org.apache.streams.elasticsearch.example.ElasticsearchReindexConfiguration",
+  "javaInterfaces": ["java.io.Serializable"],
+  "properties": {
+    "source": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchReaderConfiguration", "type": "object", "required": true },
+    "destination": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/application.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/application.json b/local/elasticsearch-reindex/src/site/resources/application.json
new file mode 100644
index 0000000..567b19d
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/application.json
@@ -0,0 +1,26 @@
+{
+    "source": {
+        "hosts": [
+            "localhost"
+        ],
+        "port": 9300,
+        "clusterName": "elasticsearch",
+        "indexes": [
+            "activity"
+        ],
+        "types": [
+            "activity"
+        ],
+        "forceUseConfig": true
+    },
+    "destination": {
+        "hosts": [
+            "localhost"
+        ],
+        "port": 9300,
+        "clusterName": "elasticsearch",
+        "index": "activity2",
+        "type": "activity",
+        "forceUseConfig": true
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/testReindex.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/testReindex.json b/local/elasticsearch-reindex/src/site/resources/testReindex.json
new file mode 100644
index 0000000..0cc5aa0
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/testReindex.json
@@ -0,0 +1,26 @@
+{
+      "source": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "indexes": [
+              "source"
+          ],
+          "types": [
+              "activity"
+          ]
+      },
+      "destination": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "index": "destination",
+          "type": "activity",
+          "forceUseConfig": true
+      }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/testReindexChild.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/testReindexChild.json b/local/elasticsearch-reindex/src/site/resources/testReindexChild.json
new file mode 100644
index 0000000..0cc5aa0
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/testReindexChild.json
@@ -0,0 +1,26 @@
+{
+      "source": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "indexes": [
+              "source"
+          ],
+          "types": [
+              "activity"
+          ]
+      },
+      "destination": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "index": "destination",
+          "type": "activity",
+          "forceUseConfig": true
+      }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/elasticsearch-reindex/src/site/resources/testReindexParent.json
----------------------------------------------------------------------
diff --git a/local/elasticsearch-reindex/src/site/resources/testReindexParent.json b/local/elasticsearch-reindex/src/site/resources/testReindexParent.json
new file mode 100644
index 0000000..c601cea
--- /dev/null
+++ b/local/elasticsearch-reindex/src/site/resources/testReindexParent.json
@@ -0,0 +1,26 @@
+{
+      "source": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "indexes": [
+              "source"
+          ],
+          "types": [
+              "object"
+          ]
+      },
+      "destination": {
+          "hosts": [
+              "localhost"
+          ],
+          "port": 9300,
+          "clusterName": "elasticsearch",
+          "index": "destination",
+          "type": "object",
+          "forceUseConfig": true
+      }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/MongoElasticsearchSync.png
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/MongoElasticsearchSync.png b/local/mongo-elasticsearch-sync/MongoElasticsearchSync.png
deleted file mode 100644
index a8fc4d7..0000000
Binary files a/local/mongo-elasticsearch-sync/MongoElasticsearchSync.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/README.md
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/README.md b/local/mongo-elasticsearch-sync/README.md
index 72b11db..ddfb84b 100644
--- a/local/mongo-elasticsearch-sync/README.md
+++ b/local/mongo-elasticsearch-sync/README.md
@@ -12,7 +12,7 @@ Requirements:
 
 Description:
 ------------
-Copies documents from mongodb to elasticsearch
+Copies documents from mongodb to elasticsearch.
 
 Specification:
 -----------------
@@ -22,7 +22,7 @@ Specification:
 Diagram:
 -----------------
 
-![MongoElasticsearchSync.png](./MongoElasticsearchSync.png?raw=true)
+![MongoElasticsearchSync.dot.png](src/main/resources/MongoElasticsearchSync.dot.png?raw=true)
 
 Example Configuration:
 ----------------------

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/pom.xml
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/pom.xml b/local/mongo-elasticsearch-sync/pom.xml
index 4d271e0..411bd9b 100644
--- a/local/mongo-elasticsearch-sync/pom.xml
+++ b/local/mongo-elasticsearch-sync/pom.xml
@@ -29,6 +29,9 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>mongo-elasticsearch-sync</artifactId>
+    <name>mongo-elasticsearch-sync</name>
+
+    <description>Copies documents from mongodb to elasticsearch.</description>
 
     <properties>
         <elasticsearch.version>1.1.0</elasticsearch.version>

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/main/resources/MongoElasticsearchSync.dot.png
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/main/resources/MongoElasticsearchSync.dot.png b/local/mongo-elasticsearch-sync/src/main/resources/MongoElasticsearchSync.dot.png
new file mode 100644
index 0000000..b898bfc
Binary files /dev/null and b/local/mongo-elasticsearch-sync/src/main/resources/MongoElasticsearchSync.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/site/markdown/index.md b/local/mongo-elasticsearch-sync/src/site/markdown/index.md
new file mode 100644
index 0000000..c4f0b9e
--- /dev/null
+++ b/local/mongo-elasticsearch-sync/src/site/markdown/index.md
@@ -0,0 +1,68 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+mongo-elasticsearch-sync
+==============================
+
+Requirements:
+-------------
+ - A running MongoDB 2.4+ instance
+ - A running ElasticSearch 1.0.0+ instance
+
+Description:
+------------
+Copies documents from mongodb to elasticsearch
+
+Specification:
+-----------------
+
+[MongoElasticsearchSync.dot](MongoElasticsearchSync.dot "MongoElasticsearchSync.dot" )
+
+Diagram:
+-----------------
+
+![MongoElasticsearchSync.dot.png](./MongoElasticsearchSync.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    {
+        "source": {
+            "host": "localhost",
+            "port": 27017,
+            "db": "streams",
+            "collection": "activities"
+        },
+        "destination": {
+            "hosts": [
+                "localhost"
+            ],
+            "port": 9300,
+            "clusterName": "elasticsearch",
+            "index": "destination",
+            "type": "activity"
+        }
+    }
+
+Build:
+---------
+
+`mvn clean package verify`
+
+Run:
+--------
+
+`java -cp target/mongo-elasticsearch-sync-0.1-SNAPSHOT.jar -Dconfig.file=src/main/resources/application.json org.apache.streams.example.elasticsearch.MongoElasticsearchSync`
+
+Deploy:
+--------
+
+`mvn -Pdocker clean package docker:build`
+
+`docker tag mongo-elasticsearch-sync:0.2-incubating-SNAPSHOT <dockerregistry>:mongo-elasticsearch-sync:0.2-incubating-SNAPSHOT`
+
+`docker push <dockerregistry>:mongo-elasticsearch-sync:0.2-incubating-SNAPSHOT`
+
+`docker run <dockerregistry>:mongo-elasticsearch-sync:0.2-incubating-SNAPSHOT java -cp mongo-elasticsearch-sync-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.example.elasticsearch.MongoElasticsearchSync`
+

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot b/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot
new file mode 100644
index 0000000..e3babf5
--- /dev/null
+++ b/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot
@@ -0,0 +1,18 @@
+digraph g {
+
+  //providers
+  MongoPersistReader [label="MongoPersistReader",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-mongo/src/main/java/org/apache/streams/mongo/MongoPersistReader.java"];
+
+  //persisters
+  ElasticsearchPersistWriter [label="ElasticsearchPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];
+
+  //data
+  source [label="mongdb://{db}/{collection}",shape=box];
+  destination [label="es://{index}/{type}",shape=box];
+ 
+  //stream
+  source -> MongoPersistReader [label="ObjectNode"];
+  MongoPersistReader -> ElasticsearchPersistWriter [label="ObjectNode"];
+  ElasticsearchPersistWriter -> destination [label="ObjectNode"];
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot.png
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot.png b/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot.png
new file mode 100644
index 0000000..b898bfc
Binary files /dev/null and b/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSync.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSyncConfiguration.json
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSyncConfiguration.json b/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSyncConfiguration.json
new file mode 100644
index 0000000..a592699
--- /dev/null
+++ b/local/mongo-elasticsearch-sync/src/site/resources/MongoElasticsearchSyncConfiguration.json
@@ -0,0 +1,10 @@
+{
+  "$schema": "http://json-schema.org/draft-03/schema",
+  "type": "object",
+  "javaType" : "org.apache.streams.example.elasticsearch.MongoElasticsearchSyncConfiguration",
+  "javaInterfaces": ["java.io.Serializable"],
+  "properties": {
+    "source": { "javaType": "org.apache.streams.mongo.MongoConfiguration", "type": "object", "required": true },
+    "destination": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/site/resources/application.json
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/site/resources/application.json b/local/mongo-elasticsearch-sync/src/site/resources/application.json
new file mode 100644
index 0000000..facb336
--- /dev/null
+++ b/local/mongo-elasticsearch-sync/src/site/resources/application.json
@@ -0,0 +1,17 @@
+{
+    "source": {
+        "host": "localhost",
+        "port": 27017,
+        "db": "streams",
+        "collection": "activities"
+    },
+    "destination": {
+        "hosts": [
+            "localhost"
+        ],
+        "port": 9300,
+        "clusterName": "elasticsearch",
+        "index": "destination",
+        "type": "activity"
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/mongo-elasticsearch-sync/src/site/resources/testSync.json
----------------------------------------------------------------------
diff --git a/local/mongo-elasticsearch-sync/src/site/resources/testSync.json b/local/mongo-elasticsearch-sync/src/site/resources/testSync.json
new file mode 100644
index 0000000..b678c21
--- /dev/null
+++ b/local/mongo-elasticsearch-sync/src/site/resources/testSync.json
@@ -0,0 +1,18 @@
+{
+    "source": {
+        "host": "localhost",
+        "port": 37017,
+        "db": "local",
+        "collection": "activities"
+    },
+    "destination": {
+        "hosts": [
+            "localhost"
+        ],
+        "port": 9300,
+        "clusterName": "elasticsearch",
+        "index": "destination",
+        "type": "activity",
+        "forceUseConfig": true
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/README.md
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/README.md b/local/twitter-follow-graph/README.md
index 5921df8..e7e3bce 100644
--- a/local/twitter-follow-graph/README.md
+++ b/local/twitter-follow-graph/README.md
@@ -22,7 +22,7 @@ Specification:
 Diagram:
 -----------------
 
-![TwitterFollowGraph.png](./TwitterFollowGraph.png?raw=true)
+![TwitterFollowGraph.dot.png](src/main/resources/TwitterFollowGraph.dot.png?raw=true)
 
 Example Configuration:
 ----------------------

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/TwitterFollowGraph.png
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/TwitterFollowGraph.png b/local/twitter-follow-graph/TwitterFollowGraph.png
deleted file mode 100644
index b84db6c..0000000
Binary files a/local/twitter-follow-graph/TwitterFollowGraph.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/pom.xml
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/pom.xml b/local/twitter-follow-graph/pom.xml
index 5324462..db827e2 100644
--- a/local/twitter-follow-graph/pom.xml
+++ b/local/twitter-follow-graph/pom.xml
@@ -23,37 +23,38 @@
     <parent>
         <groupId>org.apache.streams</groupId>
         <artifactId>streams-examples-local</artifactId>
-        <version>0.2-incubating-SNAPSHOT</version>
+        <version>0.3-incubating-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>twitter-follow-graph</artifactId>
+    <name>twitter-follow-graph</name>
+
+    <description>
+        Collects friend or follower connections for a set of twitter users to build a graph database in neo4j.
+    </description>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.streams</groupId>
-            <artifactId>streams-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
             <groupId>com.typesafe</groupId>
             <artifactId>config</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
             <artifactId>streams-config</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-runtime-local</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-provider-twitter</artifactId>
-            <version>${project.version}</version>
             <exclusions>
                 <exclusion>
                     <groupId>commons-logging</groupId>
@@ -64,12 +65,10 @@
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-persist-graph</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-pojo</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/src/main/resources/TwitterFollowGraph.dot.png
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/src/main/resources/TwitterFollowGraph.dot.png b/local/twitter-follow-graph/src/main/resources/TwitterFollowGraph.dot.png
new file mode 100644
index 0000000..10dc842
Binary files /dev/null and b/local/twitter-follow-graph/src/main/resources/TwitterFollowGraph.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/src/site/markdown/index.md b/local/twitter-follow-graph/src/site/markdown/index.md
new file mode 100644
index 0000000..a813f19
--- /dev/null
+++ b/local/twitter-follow-graph/src/site/markdown/index.md
@@ -0,0 +1,97 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+twitter-follow-graph
+==============================
+
+Requirements:
+-------------
+ - Authorized Twitter API credentials
+ - A running Neo4J 1.9.0+ instance
+
+Description:
+------------
+Collects friend or follower connections for a set of twitter users to build a graph database in neo4j.
+
+Specification:
+-----------------
+
+[TwitterFollowGraph.dot](TwitterFollowGraph.dot "TwitterFollowGraph.dot" )
+
+Diagram:
+-----------------
+
+![TwitterFollowGraph.dot.png](./TwitterFollowGraph.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    {
+      "twitter": {
+        "endpoint": "friends",
+        "oauth": {
+          "consumerSecret": "",
+          "consumerKey": "",
+          "accessToken": "",
+          "accessTokenSecret": ""
+        },
+        "info": [
+          42232950
+        ]
+      },
+      "graph": {
+        "vertices": {
+          "objects": [
+            "actor",
+            "object"
+          ],
+          "verbs": [
+            "follow"
+          ],
+          "objectTypes": [
+            "page"
+          ]
+        },
+        "edges": {
+          "objects": [
+            "actor",
+            "object"
+          ],
+          "verbs": [
+            "follow"
+          ],
+          "objectTypes": [
+            "page"
+          ]
+        },
+        "protocol": "http",
+        "hostname": "localhost",
+        "port": 7474,
+        "requestMethod": "GET",
+        "content-type": "application/json",
+        "type": "neo4j",
+        "graph": "data"
+      }
+    }
+
+Build:
+---------
+
+`mvn clean package verify`
+
+Run:
+--------
+
+`java -cp target/twitter-follow-graph-0.2-incubating-SNAPSHOT.jar -Dconfig.file=src/main/resources/application.json org.apache.streams.example.graph.TwitterFollowGraph`
+
+Deploy:
+--------
+`mvn -Pdocker clean package docker:build`
+
+`docker tag twitter-follow-graph:0.2-incubating-SNAPSHOT <dockerregistry>:twitter-follow-graph:0.2-incubating-SNAPSHOT`
+
+`docker push <dockerregistry>:twitter-follow-graph:0.2-incubating-SNAPSHOT`
+
+`docker run <dockerregistry>:twitter-follow-graph:0.2-incubating-SNAPSHOT java -cp twitter-follow-graph-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.example.graph.TwitterFollowGraph`
+

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot b/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot
new file mode 100644
index 0000000..c14a2ab
--- /dev/null
+++ b/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot
@@ -0,0 +1,21 @@
+digraph g {
+
+  //providers
+  TwitterFollowingProvider [label="TwitterFollowingProvider",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterFollowingProvider.java"];
+
+  //processors
+  TypeConverterProcessor [label="TypeConverterProcessor",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-components/streams-converters/src/main/java/org/apache/streams/converters/TypeConverterProcessor.java"];
+  ActivityConverterProcessor [label="ActivityConverterProcessor",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-components/streams-converters/src/main/java/org/apache/streams/converters/ActivityConverterProcessor.java"];
+
+  //persisters
+  GraphPersistWriter [label="GraphPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-graph/src/main/java/org/apache/streams/graph/GraphPersistWriter.java"];
+
+  //data
+  destination [label="http://{host}:{port}/db/data",shape=box];
+
+  //stream
+  TwitterFollowingProvider -> TypeConverterProcessor [label="Follow",URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-twitter/src/main/jsonschema/com/twitter/Follow.java"];
+  TypeConverterProcessor -> ActivityConverterProcessor [label="String"];
+  ActivityConverterProcessor -> GraphPersistWriter [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  GraphPersistWriter -> destination
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot.png
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot.png b/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot.png
new file mode 100644
index 0000000..10dc842
Binary files /dev/null and b/local/twitter-follow-graph/src/site/resources/TwitterFollowGraph.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-follow-graph/src/site/resources/TwitterFollowGraphConfiguration.json
----------------------------------------------------------------------
diff --git a/local/twitter-follow-graph/src/site/resources/TwitterFollowGraphConfiguration.json b/local/twitter-follow-graph/src/site/resources/TwitterFollowGraphConfiguration.json
new file mode 100644
index 0000000..c2ccc80
--- /dev/null
+++ b/local/twitter-follow-graph/src/site/resources/TwitterFollowGraphConfiguration.json
@@ -0,0 +1,13 @@
+{
+  "$schema": "http://json-schema.org/draft-03/schema",
+  "$license": [
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "type": "object",
+  "javaType" : "org.apache.streams.example.graph.TwitterFollowingGraphConfiguration",
+  "javaInterfaces": ["java.io.Serializable"],
+  "properties": {
+    "twitter": { "javaType": "org.apache.streams.twitter.TwitterUserInformationConfiguration", "type": "object", "required": true },
+    "graph": { "javaType": "org.apache.streams.graph.GraphWriterConfiguration", "type": "object", "required": true }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/README.md
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/README.md b/local/twitter-history-elasticsearch/README.md
index 0ccce34..7e64a84 100644
--- a/local/twitter-history-elasticsearch/README.md
+++ b/local/twitter-history-elasticsearch/README.md
@@ -24,7 +24,7 @@ Specification:
 Diagram:
 -----------------
 
-![TwitterHistoryElasticsearch.png](./TwitterHistoryElasticsearch.png?raw=true)
+![TwitterHistoryElasticsearch.dot.png](src/main/resources/TwitterHistoryElasticsearch.dot.png?raw=true)
 
 Example Configuration:
 ----------------------

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/TwitterHistoryElasticsearch.png
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/TwitterHistoryElasticsearch.png b/local/twitter-history-elasticsearch/TwitterHistoryElasticsearch.png
deleted file mode 100644
index 0a87125..0000000
Binary files a/local/twitter-history-elasticsearch/TwitterHistoryElasticsearch.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/pom.xml b/local/twitter-history-elasticsearch/pom.xml
index 4adabb2..19b9e1c 100644
--- a/local/twitter-history-elasticsearch/pom.xml
+++ b/local/twitter-history-elasticsearch/pom.xml
@@ -28,6 +28,13 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>twitter-history-elasticsearch</artifactId>
+    <name>twitter-history-elasticsearch</name>
+
+    <description>
+        Retrieves as many posts from a known list of users as twitter API allows.
+
+        Converts them to activities, and writes them in activity format to Elasticsearch.
+    </description>
 
     <properties>
         <elasticsearch.version>1.1.0</elasticsearch.version>
@@ -68,34 +75,28 @@
         <dependency>
             <groupId>com.typesafe</groupId>
             <artifactId>config</artifactId>
-            <version>1.2.0</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-config</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-util</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-pojo</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-runtime-local</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-provider-twitter</artifactId>
-            <version>${project.version}</version>
             <exclusions>
                 <exclusion>
                     <groupId>commons-logging</groupId>
@@ -106,7 +107,6 @@
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-persist-elasticsearch</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/src/main/resources/TwitterHistoryElasticsearch.dot.png
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/src/main/resources/TwitterHistoryElasticsearch.dot.png b/local/twitter-history-elasticsearch/src/main/resources/TwitterHistoryElasticsearch.dot.png
new file mode 100644
index 0000000..9be8aaf
Binary files /dev/null and b/local/twitter-history-elasticsearch/src/main/resources/TwitterHistoryElasticsearch.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/src/site/markdown/index.md b/local/twitter-history-elasticsearch/src/site/markdown/index.md
new file mode 100644
index 0000000..4afcf4e
--- /dev/null
+++ b/local/twitter-history-elasticsearch/src/site/markdown/index.md
@@ -0,0 +1,78 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+twitter-history-elasticsearch
+==============================
+
+Requirements:
+-------------
+ - Authorized Twitter API credentials
+ - A running ElasticSearch 1.0.0+ instance
+
+Description:
+------------
+Retrieves as many posts from a known list of users as twitter API allows.
+
+Converts them to activities, and writes them in activity format to Elasticsearch.
+
+Specification:
+-----------------
+
+[TwitterHistoryElasticsearch.dot](src/main/resources/TwitterHistoryElasticsearch.dot "TwitterHistoryElasticsearch.dot" )
+
+Diagram:
+-----------------
+
+![TwitterHistoryElasticsearch.dot.png](./TwitterHistoryElasticsearch.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    twitter {
+        host = "api.twitter.com"
+        endpoint = "statuses/user_timeline"
+        oauth {
+            consumerKey = ""
+            consumerSecret = ""
+            accessToken = ""
+            accessTokenSecret = ""
+        }
+        info = [
+            "42232950"
+            "211620426"
+        ]
+    }
+    elasticsearch {
+        hosts = [
+            localhost
+        ]
+        port = 9300
+        clusterName = elasticsearch
+        index = userhistory_activity
+        type = activity
+    }
+
+In the Twitter section you should place all of your relevant authentication keys and whichever Twitter IDs you want to pull history for.
+
+Twitter IDs can be converted from screennames at http://www.gettwitterid.com
+
+Build:
+---------
+
+`mvn clean package verify`
+
+Run:
+--------
+
+    java -cp target/twitter-history-elasticsearch-0.2-incubating-SNAPSHOT.jar -Dconfig.file=application.conf org.apache.streams.example.twitter.TwitterHistoryElasticsearch
+
+Deploy:
+--------
+`mvn -Pdocker clean package docker:build`
+
+`docker tag twitter-history-elasticsearch:0.2-incubating-SNAPSHOT <dockerregistry>:elasticsearch-reindex:0.2-incubating-SNAPSHOT`
+
+`docker push <dockerregistry>:twitter-history-elasticsearch:0.2-incubating-SNAPSHOT`
+
+`docker run <dockerregistry>:twitter-history-elasticsearch:0.2-incubating-SNAPSHOT.jar java -cp twitter-history-elasticsearch-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.example.twitter.TwitterHistoryElasticsearch`

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot b/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot
new file mode 100644
index 0000000..525c61d
--- /dev/null
+++ b/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot
@@ -0,0 +1,21 @@
+digraph g {
+
+  //providers
+  TwitterTimelineProvider [label="TwitterTimelineProvider",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterTimelineProvider.java"];
+
+  //processors
+  ActivityConverterProcessor [label="ActivityConverterProcessor",shape=box,URL="https://github.com/apache/incubator-streams/blob/master/streams-components/streams-converters/src/main/java/org/apache/streams/converter/ActivityConverterProcessor.java"];
+  
+  //persisters
+  ElasticsearchPersistWriter [label="ElasticsearchPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];
+  
+  //data
+  es [label="es://{index}/{type}",shape=box];
+  
+  //stream
+  TwitterTimelineProvider -> ActivityConverterProcessor [label="ObjectNode"];
+  ActivityConverterProcessor -> ElasticsearchPersistWriter [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  
+  ElasticsearchPersistWriter -> es [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot.png
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot.png b/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot.png
new file mode 100644
index 0000000..9be8aaf
Binary files /dev/null and b/local/twitter-history-elasticsearch/src/site/resources/TwitterHistoryElasticsearch.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/src/site/resources/application.conf
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/src/site/resources/application.conf b/local/twitter-history-elasticsearch/src/site/resources/application.conf
new file mode 100644
index 0000000..c74b54b
--- /dev/null
+++ b/local/twitter-history-elasticsearch/src/site/resources/application.conf
@@ -0,0 +1,23 @@
+twitter {
+  host = "api.twitter.com"
+  endpoint = "statuses/user_timeline"
+  oauth {
+    consumerKey = ""
+    consumerSecret = ""
+    accessToken = ""
+    accessTokenSecret = ""
+  }
+  info = [
+    "42232950"
+    "211620426"
+  ]
+}
+elasticsearch {
+  hosts = [
+    localhost
+  ]
+  port = 9300
+  clusterName = elasticsearch
+  index = twitterhistory_activity
+  type = activity
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-history-elasticsearch/src/site/resources/org/apache/streams/example/twitter/TwitterHistoryElasticsearchConfiguration.json
----------------------------------------------------------------------
diff --git a/local/twitter-history-elasticsearch/src/site/resources/org/apache/streams/example/twitter/TwitterHistoryElasticsearchConfiguration.json b/local/twitter-history-elasticsearch/src/site/resources/org/apache/streams/example/twitter/TwitterHistoryElasticsearchConfiguration.json
new file mode 100644
index 0000000..ea9b165
--- /dev/null
+++ b/local/twitter-history-elasticsearch/src/site/resources/org/apache/streams/example/twitter/TwitterHistoryElasticsearchConfiguration.json
@@ -0,0 +1,13 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "type": "object",
+    "javaType" : "org.apache.streams.example.twitter.TwitterHistoryElasticsearchConfiguration",
+    "javaInterfaces": ["java.io.Serializable"],
+    "properties": {
+        "twitter": { "javaType": "org.apache.streams.twitter.TwitterUserInformationConfiguration", "type": "object", "required": true },
+        "elasticsearch": { "javaType": "org.apache.streams.elasticsearch.ElasticsearchWriterConfiguration", "type": "object", "required": true }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/README.md
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/README.md b/local/twitter-userstream-elasticsearch/README.md
index e2b4a2d..1b68afa 100644
--- a/local/twitter-userstream-elasticsearch/README.md
+++ b/local/twitter-userstream-elasticsearch/README.md
@@ -12,7 +12,7 @@ Requirements:
 
 Description:
 ------------
-This example connects to an active twitter account and stores the userstream as activities in Elasticsearch
+Connects to an active twitter account and stores the userstream as activities in Elasticsearch
 
 Specification:
 -----------------
@@ -22,7 +22,7 @@ Specification:
 Diagram:
 -----------------
 
-![TwitterUserstreamElasticsearch.png](./TwitterUserstreamElasticsearch.png?raw=true)
+![TwitterUserstreamElasticsearch.dot.png](./TwitterUserstreamElasticsearch.dot.png?raw=true)
 
 Example Configuration:
 ----------------------

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/TwitterUserstreamElasticsearch.png
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/TwitterUserstreamElasticsearch.png b/local/twitter-userstream-elasticsearch/TwitterUserstreamElasticsearch.png
deleted file mode 100644
index 003a002..0000000
Binary files a/local/twitter-userstream-elasticsearch/TwitterUserstreamElasticsearch.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/pom.xml b/local/twitter-userstream-elasticsearch/pom.xml
index f438e77..6bb57b6 100644
--- a/local/twitter-userstream-elasticsearch/pom.xml
+++ b/local/twitter-userstream-elasticsearch/pom.xml
@@ -28,6 +28,11 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>twitter-userstream-elasticsearch</artifactId>
+    <name>twitter-userstream-elasticsearch</name>
+
+    <description>
+        Connects to an active twitter account and stores the userstream as activities in Elasticsearch
+    </description>
 
     <properties>
         <elasticsearch.version>1.1.0</elasticsearch.version>
@@ -63,7 +68,6 @@
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-core</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe</groupId>
@@ -72,32 +76,26 @@
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-config</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-runtime-local</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-filters</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-provider-twitter</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-persist-elasticsearch</artifactId>
-            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-pojo</artifactId>
-            <version>${project.version}</version>
             <type>test-jar</type>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/src/main/resources/TwitterUserstreamElasticsearch.dot.png
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/src/main/resources/TwitterUserstreamElasticsearch.dot.png b/local/twitter-userstream-elasticsearch/src/main/resources/TwitterUserstreamElasticsearch.dot.png
new file mode 100644
index 0000000..6e8713f
Binary files /dev/null and b/local/twitter-userstream-elasticsearch/src/main/resources/TwitterUserstreamElasticsearch.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/src/site/markdown/index.md b/local/twitter-userstream-elasticsearch/src/site/markdown/index.md
new file mode 100644
index 0000000..1ecf179
--- /dev/null
+++ b/local/twitter-userstream-elasticsearch/src/site/markdown/index.md
@@ -0,0 +1,73 @@
+Apache Streams (incubating)
+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
+--------------------------------------------------------------------------------
+
+twitter-userstream-elasticsearch
+==============================
+
+Requirements:
+-------------
+ - Authorized Twitter API credentials
+ - A running ElasticSearch 1.0.0+ instance
+
+Description:
+------------
+This example connects to an active twitter account and stores the userstream as activities in Elasticsearch
+
+Specification:
+-----------------
+
+[TwitterUserstreamElasticsearch.dot](TwitterUserstreamElasticsearch.dot "TwitterUserstreamElasticsearch.dot" )
+
+Diagram:
+-----------------
+
+![TwitterUserstreamElasticsearch.dot.png](./TwitterUserstreamElasticsearch.dot.png?raw=true)
+
+Example Configuration:
+----------------------
+
+    twitter {
+        endpoint = "userstream"
+        oauth {
+                consumerKey = "bcg14JThZEGoZ3MZOoT2HnJS7"
+                consumerSecret = "S4dwxnZni58CIJaoupGnUrO4HRHmbBGOb28W6IqOJBx36LPw2z"
+                accessToken = ""
+                accessTokenSecret = ""
+        }
+    }
+    elasticsearch {
+        hosts = [
+            localhost
+        ]
+        port = 9300
+        clusterName = elasticsearch
+        index = userstream_activity
+        type = activity
+        batchSize = 1
+    }
+
+The consumerKey and consumerSecret are set for our streams-example application
+The accessToken and accessTokenSecret can be obtained by navigating to:
+
+    https://api.twitter.com/oauth/authenticate?oauth_token=UIJ0AUxCJatpKDUyFt0OTSEP4asZgqxRwUCT0AMSwc&oauth_callback=http%3A%2F%2Foauth.streamstutorial.w2odata.com%3A8080%2Fsocialauthdemo%2FsocialAuthSuccessAction.do
+
+Build:
+---------
+
+`mvn clean package verify`
+
+Run:
+--------
+
+`java -cp target/twitter-userstream-elasticsearch-0.2-incubating-SNAPSHOT.jar -Dconfig.file=src/main/resources/application.json org.apache.streams.example.twitter.TwitterUserstreamElasticsearch`
+
+Deploy:
+--------
+`mvn -Pdocker clean package docker:build`
+
+`docker tag twitter-userstream-elasticsearch:0.2-incubating-SNAPSHOT <dockerregistry>:twitter-userstream-elasticsearch:0.2-incubating-SNAPSHOT`
+
+`docker push <dockerregistry>:twitter-userstream-elasticsearch:0.2-incubating-SNAPSHOT`
+
+`docker run <dockerregistry>:twitter-userstream-elasticsearch:0.2-incubating-SNAPSHOT.jar java -cp twitter-userstream-elasticsearch-0.2-incubating-SNAPSHOT.jar -Dconfig.file=http://<location_of_config_file>.json org.apache.streams.example.twitter.TwitterUserstreamElasticsearch`

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot b/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot
new file mode 100644
index 0000000..c876176
--- /dev/null
+++ b/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot
@@ -0,0 +1,28 @@
+digraph g {
+
+  //providers
+  TwitterStreamProvider [label="TwitterStreamProvider",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamProvider.java"];
+
+  //processors
+  ActivityConverterProcessor [label="ActivityConverterProcessor",shape=box,URL="https://github.com/apache/incubator-streams/blob/master/streams-components/streams-converters/src/main/java/org/apache/streams/converter/ActivityConverterProcessor.java"];
+  DeleteOnlyProcessor [label="VerbDefinitionKeepFilter (verb:delete)",shape=box,URL="https://github.com/apache/incubator-streams/blob/master/streams-components/streams-filters/src/main/java/org/apache/streams/filters/VerbDefinitionKeepFilter.java"];
+  NoDeletesProcessor  [label="VerbDefinitionDropFilter (verb:delete)",shape=box,URL="https://github.com/apache/incubator-streams/blob/master/streams-components/streams-filters/src/main/java/org/apache/streams/filters/VerbDefinitionDropFilter.java"];
+  SetDeleteIdProcessor [label="SetDeleteIdProcessor (verb:post)",shape=box,URL="https://github.com/apache/incubator-streams-examples/blob/master/local/twitter-userstream-elasticsearch/src/main/java/org/apache/streams/twitter/example/TwitterUserstreamElasticsearch.java"];
+
+  //persisters
+  ElasticsearchPersistWriter [label="ElasticsearchPersistWriter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistWriter.java"];
+  ElasticsearchPersistDeleter [label="ElasticsearchPersistDeleter",shape=ellipse,URL="https://github.com/apache/incubator-streams/blob/master/streams-contrib/streams-persist-elasticsearch/src/main/java/org/apache/streams/elasticsearch/ElasticsearchPersistDeleter.java"];
+
+   //data
+  es [label="es://{index}/{type}",shape=box];
+
+  //stream
+  TwitterStreamProvider -> ActivityConverterProcessor [label="ObjectNode"];
+  ActivityConverterProcessor -> DeleteOnlyProcessor [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  ActivityConverterProcessor -> NoDeletesProcessor [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  DeleteOnlyProcessor -> SetDeleteIdProcessor [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  NoDeletesProcessor -> ElasticsearchPersistWriter [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  ElasticsearchPersistWriter -> es [label="Activity",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/activity.json"];
+  SetDeleteIdProcessor -> ElasticsearchPersistDeleter [label="Delete",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/verbs/delete.json"];
+  ElasticsearchPersistDeleter -> es [label="Delete",URL="https://github.com/apache/incubator-streams/blob/master/streams-pojo/src/main/jsonschema/org/apache/streams/pojo/json/delete.json"];
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot.png
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot.png b/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot.png
new file mode 100644
index 0000000..6e8713f
Binary files /dev/null and b/local/twitter-userstream-elasticsearch/src/site/resources/TwitterUserstreamElasticsearch.dot.png differ

http://git-wip-us.apache.org/repos/asf/incubator-streams-examples/blob/107852b2/local/twitter-userstream-elasticsearch/src/site/resources/application.conf
----------------------------------------------------------------------
diff --git a/local/twitter-userstream-elasticsearch/src/site/resources/application.conf b/local/twitter-userstream-elasticsearch/src/site/resources/application.conf
new file mode 100644
index 0000000..50d48b5
--- /dev/null
+++ b/local/twitter-userstream-elasticsearch/src/site/resources/application.conf
@@ -0,0 +1,22 @@
+twitter {
+    endpoint = "userstream"
+    oauth {
+        consumerKey = ""
+        consumerSecret = ""
+        accessToken = ""
+        accessTokenSecret = ""
+    }
+    follow = [
+           
+    ]
+}
+elasticsearch {
+    hosts = [
+        localhost
+    ]
+    port = 9300
+    clusterName = elasticsearch
+    index = userstream_activity
+    type = activity
+    batchSize = 1
+}