streams-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sblack...@apache.org
Subject [1/2] incubator-streams-master git commit: STREAMS-406
Date Sun, 12 Jun 2016 01:36:57 GMT
Repository: incubator-streams-master
Updated Branches:
  refs/heads/streams-master-0.3-incubating-rc1 [created] 8b2f269fb


STREAMS-406

apache licenses
rat plugin


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

Branch: refs/heads/streams-master-0.3-incubating-rc1
Commit: f46eef107a7f7d522be87acffb6d1f020e6dc357
Parents: 4a4c78e
Author: Steve Blackmon @steveblackmon <sblackmon@apache.org>
Authored: Sat Jun 11 20:07:48 2016 -0500
Committer: Steve Blackmon @steveblackmon <sblackmon@apache.org>
Committed: Sat Jun 11 20:32:45 2016 -0500

----------------------------------------------------------------------
 CHANGELOG                                 |  10 +-
 pom.xml                                   |   7 +
 src/site/markdown/architecture.md         |   1 +
 src/site/markdown/concepts.md             |   1 +
 src/site/markdown/dependency-info.md      |   2 +
 src/site/markdown/downloads.md            |   2 +
 src/site/markdown/faq.md                  |   4 +-
 src/site/markdown/index.md                |   2 +
 src/site/markdown/integration.md          |   2 +
 src/site/markdown/release-setup.md        |   2 +
 src/site/markdown/release.md              |  95 ++++++--
 src/site/markdown/source-repository.md    |   2 +
 src/site/markdown/tutorial/build.md       |  16 +-
 src/site/markdown/tutorial/database.md    |   9 +-
 src/site/markdown/tutorial/docker.md      |   3 +-
 src/site/markdown/tutorial/environment.md |   6 +-
 src/site/markdown/website.md              |  24 +-
 src/site/markdown/who.md                  |   2 +
 src/site/resources/PPMC_Combined.txt      |  37 ---
 src/site/resources/architecture.dot       |  18 ++
 src/site/resources/architecture.dot.svg   | 150 ++++++++-----
 src/site/resources/example.dot            |  18 ++
 src/site/resources/example.dot.svg        | 299 +++++++++++++++++++++++++
 23 files changed, 571 insertions(+), 141 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 4563faf..4e52c68 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,7 @@
 Apache Streams (Incubating)
 +++++++++++++++++++++++++++++++
 
-Apache Streams is be a lightweight server for ActivityStreams (activitystrea.ms). The role of Apache Streams is to provide a central point of aggregation, filtering and querying for Activities that have been submitted by disparate systems. Apache Streams also intends to include a mechanism for intelligent filtering and recommendation to reduce the noise to end users.
+Apache Streams is a lightweight server for ActivityStreams (activitystrea.ms). The role of Apache Streams is to provide a central point of aggregation, filtering and querying for Activities that have been submitted by disparate systems. Apache Streams also intends to include a mechanism for intelligent filtering and recommendation to reduce the noise to end users.
 
 
 Apache Streams will bring together individuals who are or are looking to increase and centralize the production, consumption and federation of ActivityStreams throughout enterprise organizations and the Internet as a whole. The target features include:
@@ -30,3 +30,11 @@ RELEASE 0.1: Streams Master POM
 +++++++++++++++++++++++++++++++++
 
 Initial release of project master POM that defines global meta-data and build processes for sub-modules and Streams project.
+
++++++++++++++++++++++++++++++++++
+
+RELEASE 0.3: Streams Master POM
+
++++++++++++++++++++++++++++++++++
+
+Consolidate dependency and plugin management into streams-master

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 91e9586..603b9b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -270,6 +270,7 @@
         <remote-resources.plugin.version>1.4</remote-resources.plugin.version>
         <reports.plugin.version>2.9</reports.plugin.version>
         <resources.plugin.version>2.7</resources.plugin.version>
+        <scala.plugin.version>3.2.2</scala.plugin.version>
         <scm.plugin.version>1.9.4</scm.plugin.version>
         <shade.plugin.version>2.4.3</shade.plugin.version>
         <site.plugin.version>3.5</site.plugin.version>
@@ -577,6 +578,11 @@
                     </dependencies>
                 </plugin>
                 <plugin>
+                    <groupId>net.alchim31.maven</groupId>
+                    <artifactId>scala-maven-plugin</artifactId>
+                    <version>${scala.plugin.version}</version>
+                </plugin>
+                <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-source-plugin</artifactId>
                     <version>${source.plugin.version}</version>
@@ -1058,6 +1064,7 @@
                                 <exclude>**/overlays/**</exclude>
                                 <exclude>**/src/main/resources/**</exclude>
                                 <exclude>**/src/test/resources/**</exclude>
+                                <exclude>**/src/site/resources/**</exclude>
                                 <exclude>**/.gitignore</exclude>
                                 <exclude>**/*.properties</exclude>
                                 <exclude>**/*.iml</exclude>

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/architecture.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/architecture.md b/src/site/markdown/architecture.md
index 9f457a4..0921b8d 100644
--- a/src/site/markdown/architecture.md
+++ b/src/site/markdown/architecture.md
@@ -32,3 +32,4 @@ A standard usage of Apache Streams is to collect, normalize, and archive activit
 
 ![Example](example.dot.svg)
 
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/concepts.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/concepts.md b/src/site/markdown/concepts.md
index 9a580e6..8f76712 100644
--- a/src/site/markdown/concepts.md
+++ b/src/site/markdown/concepts.md
@@ -54,3 +54,4 @@ A Pipeline is a set of collection, processing, and storage components structured
 
 A Runtime is a module containing bindings that help setup and run a pipeline.  Runtimes may submit pipeline binaries to an existing cluster, or may launch the process(es) to execute the stream directly.  
 
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/dependency-info.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/dependency-info.md b/src/site/markdown/dependency-info.md
index b674b8a..b053cae 100644
--- a/src/site/markdown/dependency-info.md
+++ b/src/site/markdown/dependency-info.md
@@ -103,3 +103,5 @@ Browse the "Project Modules" index of streams-project to find artifacts you migh
 </div>
 
 </div>
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/downloads.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/downloads.md b/src/site/markdown/downloads.md
index e1f6fff..a1e9815 100644
--- a/src/site/markdown/downloads.md
+++ b/src/site/markdown/downloads.md
@@ -6,3 +6,5 @@ All downloads can be verified using Apache Streams code signing.
 | Artifact | Version | Source | asc | md5 | sha1 |
 |----------|---------|
 | streams-project | 0.2-incubating | <a class="externalLink" href="dist.apache.org/repos/dist/release/incubator/streams/releases/streams-project/streams-project/streams-project-0.2-incubating-source-release.zip">zip</a> | <a class="externalLink" href="dist.apache.org/repos/dist/release/incubator/streams/releases/0.2-incubating/streams-project/streams-project-0.2-incubating-source-release.zip.asc">asc</a> | <a class="externalLink" href="dist.apache.org/repos/dist/release/incubator/streams/releases/0.2-incubating/streams-project/streams-project-0.2-incubating-source-release.zip.md5">md5</a> | <a class="externalLink" href="dist.apache.org/repos/dist/release/incubator/streams/releases/0.2-incubating/streams-project/streams-project-0.2-incubating-source-release.zip.sha1">sha1</a> |
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/faq.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/faq.md b/src/site/markdown/faq.md
index 6d41649..49f5feb 100644
--- a/src/site/markdown/faq.md
+++ b/src/site/markdown/faq.md
@@ -36,7 +36,7 @@ Apache Streams is not
 * only useful for projects fully dedicated to activity streams datasets
 
 The primary Streams git repository incubator-streams (org.apache.streams:streams-project) contains
- 
+
 * core interfaces and utilities
 * plugins for transforming schemas into source code and other artifacts
 * a library of modules for acquiring, transforming, and enriching data streams.
@@ -134,3 +134,5 @@ Then browse the 'Other Resources' menu to learn more about how streams works and
 * Write a new provider using an existing provider as a template.
 * Add new features (and / or tests) to an existing module you intend to use.
 * Build and contributing a new example.
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
index bbff087..d5e24f1 100644
--- a/src/site/markdown/index.md
+++ b/src/site/markdown/index.md
@@ -13,3 +13,5 @@ The project aims to provide simple two-way data interchange with all popular RES
 
 ### Disclaimer
 Apache Streams is an effort undergoing incubation at [The Apache Software Foundation (ASF)](apache.org) sponsored by the [Apache Incubator PMC](incubator.apache.org). Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/integration.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/integration.md b/src/site/markdown/integration.md
index fe1b367..ae12471 100644
--- a/src/site/markdown/integration.md
+++ b/src/site/markdown/integration.md
@@ -13,3 +13,5 @@ This project uses [Jenkins](http://jenkins-ci.org/ "Jenkins") for continuous int
 ###streams-examples
 
 [streams-examples](http://streams.incubator.apache.org/site/0.2-incubating/streams-examples "streams-examples") builds run at [builds.apache.com/job/Streams Examples](https://builds.apache.org/job/Streams%20Examples/ "builds.apache.com/job/Streams%20Examples")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/release-setup.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/release-setup.md b/src/site/markdown/release-setup.md
index 1638643..d9dd778 100644
--- a/src/site/markdown/release-setup.md
+++ b/src/site/markdown/release-setup.md
@@ -72,3 +72,5 @@ Developers using Linux workstations can skip over the references to Cygwin. If u
 ####Configure Maven
 
 1. Update your ~/.m2/settings.xml with the properties from [Publishing Maven Artifacts](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env)
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/release.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/release.md b/src/site/markdown/release.md
index 6f8563a..20aaccd 100644
--- a/src/site/markdown/release.md
+++ b/src/site/markdown/release.md
@@ -23,7 +23,7 @@ As an alternative to releasing separately, the projects MAY be released together
     1. Increase the default Java heap available to Maven (required for Java SE 6)   
 
             export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
-    
+
     2. Use the latest Sun 1.7.0 JDK
     3. Use Maven 3.2.1 or later
     4. Make sure the [Release Setup](release-setup.html) steps have been performed.
@@ -39,14 +39,14 @@ As an alternative to releasing separately, the projects MAY be released together
 
 3. Create a release candidate branch from master.
    X should start at 1 and increment if early release candidates fail to complete the release cycle.
-    
+
         git checkout master
         git branch ${project.name}-${project.version}-rcX
-    
+
 4. Verify the source has the required license headers before trying to release:
 
         mvn -P apache-release clean rat:check -e -DskipTests
-    
+
 5. Do a dry run of the release:prepare step:  
 
         mvn -P apache-release release:prepare -DautoVersionSubmodules=true -DdryRun=true
@@ -70,22 +70,22 @@ As an alternative to releasing separately, the projects MAY be released together
 7. Cleanup the release prepare files again:  
 
         mvn -P apache-release release:clean
-    
+
 8. Prepare the release
     1. Run the "release:prepare" step for real this time. You'll be prompted for the same version information.
-    
+
             mvn -P apache-release -U clean release:prepare -DautoVersionSubmodules=true
-    
+
     2. Backup (zip or tar) your local release candidate directory in case you need to rollback the release after the next step is performed.
 9. Perform the release
     * This step will create a maven staging repository and site for use in testing and voting.
-    
+
             mvn -Papache-release -Darguments='-Dmaven.test.skip.exec=true' release:perform -Dgoals=deploy -DlocalRepoDirectory=. -DlocalCheckout=true
-    
+
     * If your local OS userid doesn't match your Apache userid, then you'll have to also override the value provided by the OS to Maven for the site-deploy step to work. This is known to work for Linux, but not for Mac and unknown for Windows.*
 
             -Duser.name=[your_apache_uid]
-    
+
 10. Verify the Nexus release artifacts
     1. Verify the staged artifacts in the nexus repo     
         * https://repository.apache.org/index.html
@@ -96,7 +96,7 @@ As an alternative to releasing separately, the projects MAY be released together
         * Staging repositories (under Build Promotion) --> Name column --> org.apache.streams
         * Click checkbox for the open staging repo (org.apache.streams-XXX) and press Close in the menu bar.
 11. Put the release candidate up for a vote
-     1. Create a VOTE email thread on dev@ to record votes as replies
+     1. Create a VOTE email thread on dev@ to record votes as replies using the template below.
      2. Create a DISCUSS email thread on dev@ for any vote questions
      3. Perform a review of the release and cast your vote. See the following for more details on Apache releases
            [http://www.apache.org/dev/release.html](http://www.apache.org/dev/release.html)  
@@ -105,6 +105,38 @@ As an alternative to releasing separately, the projects MAY be released together
          * reply to the initial email and prepend to the original subject "[RESULT]"
          * Include a list of everyone who voted +1, 0 or -1.
      6. If there are fewer than 3 +1 (binding) votes from IPMC members, submit a vote to general@incubator.apache.org requesting additional IPMC member votes.
+
+            I've created a ${project.name} ${project.version} release candidate, with the following artifacts up for a vote:
+
+            Git tag ${project.name}-${project.version}-${release.revision} (commit xxxxxxxx)
+            https://git-wip-us.apache.org/repos/asf?p=${project.name}.git;a=commit;h=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+            Maven staging repo:
+            https://repository.apache.org/content/repositories/${release.repository}
+
+            The source zip, including signatures, digests, etc. can be found at:
+            http://repository.apache.org/content/repositories/${release.repository}/org/apache/streams/${project.name}/${project.version}
+
+            Source release:
+            http://repository.apache.org/content/repositories/${release.repository}/org/apache/streams/${project.name}/${project.version}/${project.name}-${project.version}-incubating-source-release.zip
+
+            Checksums of ${project.name}-${project.version}-incubating-source-release.zip:
+            MD5: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+            SHA1: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+            Release artifacts are signed with the following key:
+            https://people.apache.org/keys/committer/xxxxxxxxx.asc
+
+            (miscellaneous notes)
+
+            Please take the time to verify the artifacts before casting your vote.
+
+            Vote will be open for 72 hours.
+
+            [ ] +1  approve
+            [ ] +0  no opinion
+            [ ] -1  disapprove (and reason why)
+
 12. Finalizing a release
     1. Promote the staged nexus artifacts  
         * https://repository.apache.org/index.html
@@ -121,13 +153,13 @@ As an alternative to releasing separately, the projects MAY be released together
             wget https://repository.apache.org/content/repositories/releases/org/apache/streams/${project.name}/${project.version}/${project.name}-${project.version}-source-release.zip.md5   
             svn add ${project.name}-*
             svn commit -m "Committing Source Release for ${project.name}-${project.version}
-    
+
     3. Create an official release tag from the successful release candidate tag.
-    
+
             git checkout ${project.name}-${project.version}-rcX
             git tag -a ${project.name}-${project.version} -m 'release tag ${project.name}-${project.version}'
             git push origin :refs/tags/streams-project-${project.version}
-    
+
     4. Update the staged website
         *  Update the downloads page (downloads.md) to add new version using the mirrored URLs
         *  Modify the URL for the prior release to the archived URL for the release
@@ -193,4 +225,37 @@ In order to perform a combined release of the streams-master and streams-project
       *  Build the streams-master FIRST
       *  When prompted to change dependencies on SNAPSHOTs, do so to the corresponding releases that you just built
   *  Execute the remaining steps using the following e-mail templates  
-      * [PMC Release Vote](PPMC_Combined.txt)  
+
+    to: streams-dev@incubator.apache.org
+    subject: [VOTE] Apache Streams ${release.version} Release Candidate
+
+    I've created a combined ${release.version} release candidate, with the
+    following artifacts up for a vote:
+
+    GIT source tags:
+    https://git.apache.org/repos/${release.master.repository}/tags/${release.master.repository}-${release.version}-rc${release.revision}/
+    https://git.apache.org/repos/${release.project.repository}/tags/${release.project.repository}-${release.version}-rc${release.revision}/
+    https://git.apache.org/repos/${release.examples.repository}/tags/${release.examples.repository}-${release.version}-rc${release.revision}/
+
+    Maven staging repo:
+    https://repository.apache.org/content/repositories/${release.master.repository}/
+    https://repository.apache.org/content/repositories/${release.project.repository}/
+    https://repository.apache.org/content/repositories/${release.examples.repository}/
+
+    Source releases:
+    https://repository.apache.org/content/repositories/${release.master.repository}/org/apache/streams/streams-master/${release.version}/streams-master-${release.version}-source-release.zip
+    https://repository.apache.org/content/repositories/${release.project.repository}/org/apache/streams/streams-project/${release.version}/streams-project-${release.version}-source-release.zip
+    https://repository.apache.org/content/repositories/${release.examples.repository}/org/apache/streams/streams-examples/${release.version}/streams-examples-${release.version}-source-release.zip
+
+    PGP release keys:
+    https://svn.apache.org/repos/asf/streams/KEYS
+
+    Please take the time to verify the artifacts before casting your vote.
+
+    Vote will be open for 72 hours.
+
+    [ ] +1  approve
+    [ ] +0  no opinion
+    [ ] -1  disapprove (and reason why)
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/source-repository.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/source-repository.md b/src/site/markdown/source-repository.md
index 8f817fa..f94e7fb 100644
--- a/src/site/markdown/source-repository.md
+++ b/src/site/markdown/source-repository.md
@@ -23,3 +23,5 @@ However, anyone may open pull requests via github.org.
 [streams-examples](http://streams.incubator.apache.org/site/0.2-incubating/streams-project "streams-examples") source is officially hosted at [git-wip-us.apache.org/repos/asf/incubator-streams-examples.git](https://git-wip-us.apache.org/repos/asf/incubator-streams-examples.git "https://git-wip-us.apache.org/repos/asf/incubator-streams-examples.git")
 
 [streams-examples](http://streams.incubator.apache.org/site/0.2-incubating/streams-project "streams-examples") source is also hosted at [github.com/apache/incubator-streams-examples.git](https://github.com/apache/incubator-streams-examples.git "https://github.com/apache/incubator-streams-examples.git")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/tutorial/build.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/tutorial/build.md b/src/site/markdown/tutorial/build.md
index a940bdc..dbccb80 100644
--- a/src/site/markdown/tutorial/build.md
+++ b/src/site/markdown/tutorial/build.md
@@ -7,14 +7,14 @@ This tutorial assumes you are using linux or Mac OS X.
 You'll need the following tools installed in your command line:
 
 * Git
-* Java SDK 
+* Java SDK
 * Maven
 * Docker
 
 #### Git
 
     git -version
-    
+
 | Possible result | Explanation |
 |-----------------|-------------|
 | bash: git: No such file or directory | You need to install git |
@@ -58,7 +58,7 @@ Run from your command line:
 
     git clone https://github.com/apache/incubator-streams
     git clone https://github.com/apache/incubator-streams-examples
-  
+
 ### Build Projects
 
 Run from your command line:
@@ -66,16 +66,18 @@ Run from your command line:
     export MAVEN_OPTS="-Xmx2G"
     cd incubator-streams
     mvn clean install -Dmaven.test.skip.exec=true
-  
+
 | Possible result | Explanation |
 |-----------------|-------------|
 | BUILD SUCCESSFUL | You are all good |
 | BUILD FAILED | Check yourself |
-  
+
     cd ../incubator-streams-examples
     mvn clean package
-  
+
 | Possible result | Explanation |
 |-----------------|-------------|
 | BUILD SUCCESSFUL | You are all good |
-| BUILD FAILED | Check yourself |
\ No newline at end of file
+| BUILD FAILED | Check yourself |
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/tutorial/database.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/tutorial/database.md b/src/site/markdown/tutorial/database.md
index 1d7d752..1c24579 100644
--- a/src/site/markdown/tutorial/database.md
+++ b/src/site/markdown/tutorial/database.md
@@ -9,7 +9,7 @@ We'll assume you've got docker up and running.
 Run from your command line:
 
     docker ps
-  
+
 If you see a (possibly empty) list of running containers, you are good.
 
 ### Run Elasticsearch
@@ -17,11 +17,11 @@ If you see a (possibly empty) list of running containers, you are good.
 Elasticsearch is a great database for storing content from your streams.
 
     docker run -d --name elasticsearch elasticsearch
-  
-### Add Elasticsearch container details to your configuration 
+
+### Add Elasticsearch container details to your configuration
 
     echo $(docker-machine ip)
-  
+
 Put the following into elasticsearch.conf (in the same directory as reference.conf)
 
     include "reference.conf"
@@ -41,3 +41,4 @@ Put the following into elasticsearch.conf (in the same directory as reference.co
         ]
     }  
 
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/tutorial/docker.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/tutorial/docker.md b/src/site/markdown/tutorial/docker.md
index 132986b..4144404 100644
--- a/src/site/markdown/tutorial/docker.md
+++ b/src/site/markdown/tutorial/docker.md
@@ -13,6 +13,7 @@ We'll assume you've got docker up and running.
 Run from your command line:
 
     docker ps
-  
+
 If you see a (possibly empty) list of running containers, you are good.
 
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/tutorial/environment.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/tutorial/environment.md b/src/site/markdown/tutorial/environment.md
index 902c330..d353a52 100644
--- a/src/site/markdown/tutorial/environment.md
+++ b/src/site/markdown/tutorial/environment.md
@@ -8,10 +8,10 @@ Create a new empty folder there and export the path to a variables.
     export STREAMS=$(cd ~streams; pwd)
 
 Next, create a configuration file to hold secrets for your streams to use.
-  
+
     cd $STREAMS
     touch reference.conf
-  
+
 To get started, put the following into reference.conf
 
     twitter {
@@ -31,4 +31,4 @@ The accessToken and accessTokenSecret are per-user.  They can be obtained by nav
 
     https://api.twitter.com/oauth/authenticate?oauth_token=UIJ0AUxCJatpKDUyFt0OTSEP4asZgqxRwUCT0AMSwc&oauth_callback=http%3A%2F%2Foauth.streamstutorial.w2odata.com%3A8080%2Fsocialauthdemo%2FsocialAuthSuccessAction.do
 
-
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/website.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/website.md b/src/site/markdown/website.md
index 4b8c3e5..e329df0 100644
--- a/src/site/markdown/website.md
+++ b/src/site/markdown/website.md
@@ -2,7 +2,7 @@
 
 http://streams.incubator.apache.org is a set of interconnected websites generated
 by the maven site plugin.  The front page, this page, and most pages linked in the
-top nav of the site are part of incubator-streams-master.  incubator-streams and 
+top nav of the site are part of incubator-streams-master.  incubator-streams and
 incubator-streams-examples also contain documentation of specific modules and examples that
 are part of the project webpage.
 
@@ -21,7 +21,7 @@ Most HTML pages are generated from markdown.  The maven-site-plugin does this du
 * src/main/jsonschema
 * src/main/xmlschema
 
-JSON and XML Schemas through-out the project are copied to the web page of their respective modules so they can be 
+JSON and XML Schemas through-out the project are copied to the web page of their respective modules so they can be
 linked to in other projects.
 
 This allows users to extend the canonical streams schemas incrementally and/or re-use specific fields as they see fit.
@@ -31,7 +31,7 @@ This allows users to extend the canonical streams schemas incrementally and/or r
 * src/main/resources
 * src/test/resources
 
-Other resources including .conf and .properties files are copied to the web page of their respective modules so 
+Other resources including .conf and .properties files are copied to the web page of their respective modules so
 they can be linked to across projects and in external projects.
 
 This allows users to import HOCON from modules outside their sphere of control and adapt to changes upstream.
@@ -67,7 +67,7 @@ If this is a brand new snapshot or release version, you first need to create a d
     mkdir site/${project.version}
     svn add site/${project.version}
     svn commit -m "svn add site/${project.version}"
-    
+
 The first time a specific site is being published for this version, you must create the directory where it will be published.
 
     mkdir site/${project.version}/${project.artifactId}
@@ -94,7 +94,7 @@ This policy of removing old snapshots keeps external projects from linking to sn
 Release artifacts should be retained indefinitely.
 
 #### Generating and committing a new website version
- 
+
 The instructions below presume:
 
 * you have a shell open in the root of a project repository
@@ -115,11 +115,11 @@ First, ensure that you have local credentials capable of publishing the site.
 Next, generate SVG resources for all DOT diagrams in the source tree
 
     for dot in $(find . -name *.dot); do dot -Tsvg $dot -o $dot.svg; done
-   
+
 Then, generate the site that will be published
-     
+
     mvn clean generate-sources package -Dmaven.test.skip.exec=true site:site site:stage
-    
+
 At this point you can open target/staging/index.html and do a sanity check on the site you intend to publish.
 
 Finally, publish the site.
@@ -143,11 +143,11 @@ Typically you can use Get streams Working Copy, although you might need to Force
 You'll probably need to 'Update this directory' if you want to inspect the changes you committed above.
 
 'View Staging Builds' should show a build around the time of the previous commit.  This means the change has been staged.
- 
+
 You should now be able to access and review the published site(s) via the staging URL:
 
 * http://streams.staging.apache.org/
-    
+
 At this point use explicit versions to access and review the new documentation, i.e.
 
 * http://streams.staging.apache.org/site/0.3-incubating-SNAPSHOT/streams-master/index.html
@@ -180,7 +180,7 @@ You should now be able to use 'latest' as an alias for the docs you are deployin
 * http://streams.staging.apache.org/site/latest/streams-project/index.html
 * http://streams.staging.apache.org/site/latest/streams-examples/index.html
 
-#### Promoting a new website version 
+#### Promoting a new website version
 
 All that's left at this point is to promote from staging to production.
 
@@ -188,3 +188,5 @@ If a release is happening, this should happen just prior to the release announce
 
 If you are just updating content associated with a snapshot, use good judgement to determine whether the list should have a chance to review
 and/or vote on the changes in staging prior to promotion.
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/markdown/who.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/who.md b/src/site/markdown/who.md
index 7635a20..4add70f 100644
--- a/src/site/markdown/who.md
+++ b/src/site/markdown/who.md
@@ -8,3 +8,5 @@
 | Twitter (Gnip) | [Activity Streams Intro](http://support.gnip.com/articles/activity-streams-intro.html "Activity Streams Intro") |
 
 If your organization supports activity streams, please let us know on the project mailing list.
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/resources/PPMC_Combined.txt
----------------------------------------------------------------------
diff --git a/src/site/resources/PPMC_Combined.txt b/src/site/resources/PPMC_Combined.txt
deleted file mode 100644
index cf2a03d..0000000
--- a/src/site/resources/PPMC_Combined.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-to: streams-dev@incubator.apache.org
-subject: [VOTE] Apache Streams 0.1-incubating Release Candidate
-
-I've created a combined ${release.version} release candidate, with the
-following artifacts up for a vote:
-
-SVN source tag (r${release.master.revision}):
-https://svn.apache.org/repos/asf/rave/rave-master-pom/tags/${release.version}/
-
-SVN source tag (r${release.project.revision}):
-
-https://svn.apache.org/repos/asf/rave/tags/${release.version}/
-
-Maven staging repo:
-https://repository.apache.org/content/repositories/${release.master.repository}/
-https://repository.apache.org/content/repositories/${release.project.repository}/
-
-
-Source releases:
-https://repository.apache.org/content/repositories/${release.master.repository}/org/apache/rave/rave-master/0.1-incubating/rave-master-0.1-incubating-source-release.zip
-https://repository.apache.org/content/repositories/${release.project.repository}/org/apache/rave/rave-project/0.1-incubating/rave-project-0.1-incubating-source-release.zip
-
-Demo Artifacts
-http://people.apache.org/builds/incubator/rave/${release.version}/rave-${release.version}-bin.tar.gz
-http://people.apache.org/builds/incubator/rave/${release.version}/rave-${release.version}-bin.zip
-
-PGP release keys:
-https://svn.apache.org/repos/asf/rave/KEYS
-
-Please take the time to verify the artifacts before casting your vote.
-
-Vote will be open for 72 hours.
-
-[ ] +1  approve
-[ ] +0  no opinion
-[ ] -1  disapprove (and reason why)
-

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/resources/architecture.dot
----------------------------------------------------------------------
diff --git a/src/site/resources/architecture.dot b/src/site/resources/architecture.dot
index 6aaa8a6..1a0e79e 100644
--- a/src/site/resources/architecture.dot
+++ b/src/site/resources/architecture.dot
@@ -1,3 +1,21 @@
+/*
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  */
+
 digraph g {
 
   graph [compound = true];

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/resources/architecture.dot.svg
----------------------------------------------------------------------
diff --git a/src/site/resources/architecture.dot.svg b/src/site/resources/architecture.dot.svg
index ea6726f..ab73d2a 100644
--- a/src/site/resources/architecture.dot.svg
+++ b/src/site/resources/architecture.dot.svg
@@ -4,133 +4,161 @@
 <!-- Generated by graphviz version 2.39.20160214.2135 (20160214.2135)
  -->
 <!-- Title: g Pages: 1 -->
-<svg width="340pt" height="406pt"
- viewBox="0.00 0.00 340.00 406.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="475pt" height="406pt"
+ viewBox="0.00 0.00 475.00 406.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 402)">
 <title>g</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-402 336,-402 336,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-402 471,-402 471,4 -4,4"/>
 <g id="clust1" class="cluster">
 <title>cluster_upstream</title>
-<polygon fill="none" stroke="black" points="8,-316 8,-390 324,-390 324,-316 8,-316"/>
-<text text-anchor="middle" x="166" y="-374.8" font-family="Times,serif" font-size="14.00">Upstream Systems</text>
+<polygon fill="none" stroke="black" points="33,-316 33,-390 459,-390 459,-316 33,-316"/>
+<text text-anchor="middle" x="246" y="-374.8" font-family="Times,serif" font-size="14.00">Upstream Systems</text>
 </g>
 <g id="clust2" class="cluster">
 <title>cluster_streams</title>
-<polygon fill="none" stroke="black" points="73,-90 73,-308 319,-308 319,-90 73,-90"/>
-<text text-anchor="middle" x="196" y="-292.8" font-family="Times,serif" font-size="14.00">Apache Streams Pipelines</text>
+<polygon fill="none" stroke="black" points="87,-90 87,-308 333,-308 333,-90 87,-90"/>
+<text text-anchor="middle" x="210" y="-292.8" font-family="Times,serif" font-size="14.00">Apache Streams Pipelines</text>
 </g>
 <g id="clust3" class="cluster">
 <title>cluster_downstream</title>
-<polygon fill="none" stroke="black" points="52,-8 52,-82 252,-82 252,-8 52,-8"/>
-<text text-anchor="middle" x="152" y="-66.8" font-family="Times,serif" font-size="14.00">Downstream Systems</text>
+<polygon fill="none" stroke="black" points="8,-8 8,-82 318,-82 318,-8 8,-8"/>
+<text text-anchor="middle" x="163" y="-66.8" font-family="Times,serif" font-size="14.00">Downstream Systems</text>
 </g>
 <!-- upstream_databases -->
 <g id="node1" class="node">
 <title>upstream_databases</title>
-<ellipse fill="none" stroke="black" cx="154" cy="-342" rx="45.9114" ry="18"/>
-<text text-anchor="middle" x="154" y="-337.8" font-family="Times,serif" font-size="14.00">Databases</text>
+<path fill="none" stroke="black" d="M451.252,-356.727C451.252,-358.533 435.003,-360 415,-360 394.997,-360 378.748,-358.533 378.748,-356.727 378.748,-356.727 378.748,-327.273 378.748,-327.273 378.748,-325.467 394.997,-324 415,-324 435.003,-324 451.252,-325.467 451.252,-327.273 451.252,-327.273 451.252,-356.727 451.252,-356.727"/>
+<path fill="none" stroke="black" d="M451.252,-356.727C451.252,-354.921 435.003,-353.455 415,-353.455 394.997,-353.455 378.748,-354.921 378.748,-356.727"/>
+<text text-anchor="middle" x="415" y="-337.8" font-family="Times,serif" font-size="14.00">Databases</text>
 </g>
 <!-- persistReaders -->
-<g id="node5" class="node">
+<g id="node6" class="node">
 <title>persistReaders</title>
-<ellipse fill="none" stroke="black" cx="143" cy="-260" rx="62.3494" ry="18"/>
-<text text-anchor="middle" x="143" y="-255.8" font-family="Times,serif" font-size="14.00">PersistReaders</text>
+<ellipse fill="none" stroke="black" cx="263" cy="-260" rx="62.3494" ry="18"/>
+<text text-anchor="middle" x="263" y="-255.8" font-family="Times,serif" font-size="14.00">PersistReaders</text>
 </g>
 <!-- upstream_databases&#45;&gt;persistReaders -->
-<g id="edge3" class="edge">
+<g id="edge2" class="edge">
 <title>upstream_databases&#45;&gt;persistReaders</title>
-<path fill="none" stroke="black" d="M151.559,-323.802C150.163,-313.398 148.382,-300.122 146.807,-288.377"/>
-<polygon fill="black" stroke="black" points="150.233,-287.593 145.434,-278.148 143.295,-288.524 150.233,-287.593"/>
+<path fill="none" stroke="black" d="M385.569,-324.76C380.401,-321.801 375.059,-318.784 370,-316 348.017,-303.904 323.204,-290.879 303.012,-280.438"/>
+<polygon fill="black" stroke="black" points="304.578,-277.307 294.086,-275.835 301.369,-283.529 304.578,-277.307"/>
 </g>
-<!-- upstream_generators -->
+<!-- upstream_filesystems -->
 <g id="node2" class="node">
+<title>upstream_filesystems</title>
+<polygon fill="none" stroke="black" points="361.117,-360 290.883,-360 290.883,-364 278.883,-364 278.883,-324 361.117,-324 361.117,-360"/>
+<polyline fill="none" stroke="black" points="278.883,-360 290.883,-360 "/>
+<text text-anchor="middle" x="320" y="-337.8" font-family="Times,serif" font-size="14.00">Filesystems</text>
+</g>
+<!-- upstream_filesystems&#45;&gt;persistReaders -->
+<g id="edge3" class="edge">
+<title>upstream_filesystems&#45;&gt;persistReaders</title>
+<path fill="none" stroke="black" d="M307.35,-323.802C299.696,-312.791 289.806,-298.563 281.308,-286.338"/>
+<polygon fill="black" stroke="black" points="284,-284.079 275.419,-277.865 278.253,-288.074 284,-284.079"/>
+</g>
+<!-- upstream_generators -->
+<g id="node3" class="node">
 <title>upstream_generators</title>
-<ellipse fill="none" stroke="black" cx="267" cy="-342" rx="48.8014" ry="18"/>
-<text text-anchor="middle" x="267" y="-337.8" font-family="Times,serif" font-size="14.00">Generators</text>
+<ellipse fill="none" stroke="black" cx="90" cy="-342" rx="48.8014" ry="18"/>
+<text text-anchor="middle" x="90" y="-337.8" font-family="Times,serif" font-size="14.00">Generators</text>
 </g>
 <!-- providers -->
-<g id="node4" class="node">
+<g id="node5" class="node">
 <title>providers</title>
-<ellipse fill="none" stroke="black" cx="267" cy="-260" rx="44.0078" ry="18"/>
-<text text-anchor="middle" x="267" y="-255.8" font-family="Times,serif" font-size="14.00">Providers</text>
+<ellipse fill="none" stroke="black" cx="139" cy="-260" rx="44.0078" ry="18"/>
+<text text-anchor="middle" x="139" y="-255.8" font-family="Times,serif" font-size="14.00">Providers</text>
 </g>
 <!-- upstream_generators&#45;&gt;providers -->
 <g id="edge1" class="edge">
 <title>upstream_generators&#45;&gt;providers</title>
-<path fill="none" stroke="black" d="M267,-323.802C267,-313.398 267,-300.122 267,-288.377"/>
-<polygon fill="black" stroke="black" points="270.5,-288.148 267,-278.148 263.5,-288.148 270.5,-288.148"/>
+<path fill="none" stroke="black" d="M100.632,-324.207C107.182,-313.247 115.703,-298.987 123.05,-286.691"/>
+<polygon fill="black" stroke="black" points="126.263,-288.138 128.388,-277.758 120.254,-284.547 126.263,-288.138"/>
 </g>
 <!-- upstream_queues -->
-<g id="node3" class="node">
+<g id="node4" class="node">
 <title>upstream_queues</title>
-<ellipse fill="none" stroke="black" cx="53" cy="-342" rx="36.7576" ry="18"/>
-<text text-anchor="middle" x="53" y="-337.8" font-family="Times,serif" font-size="14.00">Queues</text>
+<polygon fill="none" stroke="black" points="239.136,-360 178.864,-360 157.398,-324 260.602,-324 239.136,-360"/>
+<text text-anchor="middle" x="209" y="-337.8" font-family="Times,serif" font-size="14.00">Queues</text>
 </g>
 <!-- upstream_queues&#45;&gt;persistReaders -->
-<g id="edge2" class="edge">
+<g id="edge4" class="edge">
 <title>upstream_queues&#45;&gt;persistReaders</title>
-<path fill="none" stroke="black" d="M70.7811,-325.799C83.7482,-313.985 101.545,-297.77 116.227,-284.393"/>
-<polygon fill="black" stroke="black" points="118.978,-286.621 124.013,-277.299 114.264,-281.447 118.978,-286.621"/>
+<path fill="none" stroke="black" d="M220.984,-323.802C228.235,-312.791 237.605,-298.563 245.655,-286.338"/>
+<polygon fill="black" stroke="black" points="248.658,-288.142 251.235,-277.865 242.812,-284.292 248.658,-288.142"/>
 </g>
 <!-- processors -->
-<g id="node6" class="node">
+<g id="node7" class="node">
 <title>processors</title>
-<ellipse fill="none" stroke="black" cx="146" cy="-188" rx="47.8668" ry="18"/>
-<text text-anchor="middle" x="146" y="-183.8" font-family="Times,serif" font-size="14.00">Processors</text>
+<ellipse fill="none" stroke="black" cx="179" cy="-188" rx="47.8668" ry="18"/>
+<text text-anchor="middle" x="179" y="-183.8" font-family="Times,serif" font-size="14.00">Processors</text>
 </g>
 <!-- providers&#45;&gt;processors -->
-<g id="edge4" class="edge">
+<g id="edge5" class="edge">
 <title>providers&#45;&gt;processors</title>
-<path fill="none" stroke="black" d="M241.929,-245.082C224.16,-234.509 200.097,-220.19 180.516,-208.539"/>
-<polygon fill="black" stroke="black" points="182.257,-205.502 171.874,-203.396 178.678,-211.518 182.257,-205.502"/>
+<path fill="none" stroke="black" d="M148.888,-242.202C153.503,-233.894 159.094,-223.832 164.198,-214.643"/>
+<polygon fill="black" stroke="black" points="167.291,-216.284 169.087,-205.843 161.171,-212.884 167.291,-216.284"/>
 </g>
 <!-- persistReaders&#45;&gt;processors -->
-<g id="edge5" class="edge">
+<g id="edge6" class="edge">
 <title>persistReaders&#45;&gt;processors</title>
-<path fill="none" stroke="black" d="M143.757,-241.831C144.078,-234.131 144.459,-224.974 144.816,-216.417"/>
-<polygon fill="black" stroke="black" points="148.313,-216.55 145.233,-206.413 141.319,-216.259 148.313,-216.55"/>
+<path fill="none" stroke="black" d="M243.093,-242.937C232.135,-233.544 218.371,-221.747 206.41,-211.494"/>
+<polygon fill="black" stroke="black" points="208.345,-208.543 198.474,-204.692 203.789,-213.857 208.345,-208.543"/>
 </g>
 <!-- processors&#45;&gt;processors -->
-<g id="edge6" class="edge">
+<g id="edge7" class="edge">
 <title>processors&#45;&gt;processors</title>
-<path fill="none" stroke="black" d="M179.246,-201.025C196.437,-203.029 211.933,-198.688 211.933,-188 211.933,-179.483 202.093,-174.996 189.397,-174.539"/>
-<polygon fill="black" stroke="black" points="189.087,-171.049 179.246,-174.975 189.387,-178.042 189.087,-171.049"/>
+<path fill="none" stroke="black" d="M212.246,-201.025C229.437,-203.029 244.933,-198.688 244.933,-188 244.933,-179.483 235.093,-174.996 222.397,-174.539"/>
+<polygon fill="black" stroke="black" points="222.087,-171.049 212.246,-174.975 222.387,-178.042 222.087,-171.049"/>
 </g>
 <!-- persistWriters -->
-<g id="node7" class="node">
+<g id="node8" class="node">
 <title>persistWriters</title>
-<ellipse fill="none" stroke="black" cx="146" cy="-116" rx="59.7202" ry="18"/>
-<text text-anchor="middle" x="146" y="-111.8" font-family="Times,serif" font-size="14.00">PersistWriters</text>
+<ellipse fill="none" stroke="black" cx="179" cy="-116" rx="59.7202" ry="18"/>
+<text text-anchor="middle" x="179" y="-111.8" font-family="Times,serif" font-size="14.00">PersistWriters</text>
 </g>
 <!-- processors&#45;&gt;persistWriters -->
-<g id="edge7" class="edge">
+<g id="edge8" class="edge">
 <title>processors&#45;&gt;persistWriters</title>
-<path fill="none" stroke="black" d="M146,-169.831C146,-162.131 146,-152.974 146,-144.417"/>
-<polygon fill="black" stroke="black" points="149.5,-144.413 146,-134.413 142.5,-144.413 149.5,-144.413"/>
+<path fill="none" stroke="black" d="M179,-169.831C179,-162.131 179,-152.974 179,-144.417"/>
+<polygon fill="black" stroke="black" points="182.5,-144.413 179,-134.413 175.5,-144.413 182.5,-144.413"/>
 </g>
 <!-- downstream_databases -->
-<g id="node8" class="node">
+<g id="node9" class="node">
 <title>downstream_databases</title>
-<ellipse fill="none" stroke="black" cx="198" cy="-34" rx="45.9114" ry="18"/>
-<text text-anchor="middle" x="198" y="-29.8" font-family="Times,serif" font-size="14.00">Databases</text>
+<path fill="none" stroke="black" d="M310.252,-48.7273C310.252,-50.5331 294.003,-52 274,-52 253.997,-52 237.748,-50.5331 237.748,-48.7273 237.748,-48.7273 237.748,-19.2727 237.748,-19.2727 237.748,-17.4669 253.997,-16 274,-16 294.003,-16 310.252,-17.4669 310.252,-19.2727 310.252,-19.2727 310.252,-48.7273 310.252,-48.7273"/>
+<path fill="none" stroke="black" d="M310.252,-48.7273C310.252,-46.9214 294.003,-45.4545 274,-45.4545 253.997,-45.4545 237.748,-46.9214 237.748,-48.7273"/>
+<text text-anchor="middle" x="274" y="-29.8" font-family="Times,serif" font-size="14.00">Databases</text>
 </g>
 <!-- persistWriters&#45;&gt;downstream_databases -->
-<g id="edge8" class="edge">
+<g id="edge9" class="edge">
 <title>persistWriters&#45;&gt;downstream_databases</title>
-<path fill="none" stroke="black" d="M157.283,-98.2072C164.35,-87.0636 173.579,-72.5096 181.464,-60.0761"/>
-<polygon fill="black" stroke="black" points="184.518,-61.7959 186.917,-51.4764 178.606,-58.047 184.518,-61.7959"/>
+<path fill="none" stroke="black" d="M205.231,-99.7444C213.138,-94.4324 221.66,-88.2762 229,-82 236.778,-75.3492 244.624,-67.4744 251.537,-60.0471"/>
+<polygon fill="black" stroke="black" points="254.493,-61.9981 258.625,-52.2422 249.311,-57.292 254.493,-61.9981"/>
+</g>
+<!-- downstream_filesystems -->
+<g id="node10" class="node">
+<title>downstream_filesystems</title>
+<polygon fill="none" stroke="black" points="220.117,-52 149.883,-52 149.883,-56 137.883,-56 137.883,-16 220.117,-16 220.117,-52"/>
+<polyline fill="none" stroke="black" points="137.883,-52 149.883,-52 "/>
+<text text-anchor="middle" x="179" y="-29.8" font-family="Times,serif" font-size="14.00">Filesystems</text>
+</g>
+<!-- persistWriters&#45;&gt;downstream_filesystems -->
+<g id="edge10" class="edge">
+<title>persistWriters&#45;&gt;downstream_filesystems</title>
+<path fill="none" stroke="black" d="M179,-97.8015C179,-87.3976 179,-74.1215 179,-62.3768"/>
+<polygon fill="black" stroke="black" points="182.5,-62.1476 179,-52.1476 175.5,-62.1476 182.5,-62.1476"/>
 </g>
 <!-- downstream_queues -->
-<g id="node9" class="node">
+<g id="node11" class="node">
 <title>downstream_queues</title>
-<ellipse fill="none" stroke="black" cx="97" cy="-34" rx="36.7576" ry="18"/>
-<text text-anchor="middle" x="97" y="-29.8" font-family="Times,serif" font-size="14.00">Queues</text>
+<polygon fill="none" stroke="black" points="98.1365,-52 37.8635,-52 16.398,-16 119.602,-16 98.1365,-52"/>
+<text text-anchor="middle" x="68" y="-29.8" font-family="Times,serif" font-size="14.00">Queues</text>
 </g>
 <!-- persistWriters&#45;&gt;downstream_queues -->
-<g id="edge9" class="edge">
+<g id="edge11" class="edge">
 <title>persistWriters&#45;&gt;downstream_queues</title>
-<path fill="none" stroke="black" d="M135.368,-98.2072C128.709,-87.0636 120.012,-72.5096 112.582,-60.0761"/>
-<polygon fill="black" stroke="black" points="115.577,-58.2652 107.443,-51.4764 109.568,-61.8559 115.577,-58.2652"/>
+<path fill="none" stroke="black" d="M154.094,-99.5613C146.007,-94.0917 137.047,-87.8908 129,-82 118.806,-74.5372 107.898,-66.1031 98.1652,-58.4098"/>
+<polygon fill="black" stroke="black" points="100.313,-55.6458 90.308,-52.1593 95.9549,-61.1239 100.313,-55.6458"/>
 </g>
 </g>
 </svg>

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/resources/example.dot
----------------------------------------------------------------------
diff --git a/src/site/resources/example.dot b/src/site/resources/example.dot
index ece7b5c..7dde493 100644
--- a/src/site/resources/example.dot
+++ b/src/site/resources/example.dot
@@ -1,3 +1,21 @@
+/*
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  */
+  
 digraph g {
 
   graph [compound = true];

http://git-wip-us.apache.org/repos/asf/incubator-streams-master/blob/f46eef10/src/site/resources/example.dot.svg
----------------------------------------------------------------------
diff --git a/src/site/resources/example.dot.svg b/src/site/resources/example.dot.svg
new file mode 100644
index 0000000..e9cd80b
--- /dev/null
+++ b/src/site/resources/example.dot.svg
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.39.20160214.2135 (20160214.2135)
+ -->
+<!-- Title: g Pages: 1 -->
+<svg width="1018pt" height="896pt"
+ viewBox="0.00 0.00 1018.00 896.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 892)">
+<title>g</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-892 1014,-892 1014,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_generators</title>
+<polygon fill="none" stroke="black" points="269,-806 269,-880 691,-880 691,-806 269,-806"/>
+<text text-anchor="middle" x="480" y="-864.8" font-family="Times,serif" font-size="14.00">generators</text>
+</g>
+<g id="clust2" class="cluster">
+<title>cluster_providers</title>
+<polygon fill="none" stroke="black" points="8,-675 8,-787 1002,-787 1002,-675 8,-675"/>
+<text text-anchor="middle" x="505" y="-771.8" font-family="Times,serif" font-size="14.00">providers</text>
+</g>
+<g id="clust3" class="cluster">
+<title>cluster_providers_youtube</title>
+<polygon fill="none" stroke="black" points="16,-683 16,-757 481,-757 481,-683 16,-683"/>
+<text text-anchor="middle" x="248.5" y="-741.8" font-family="Times,serif" font-size="14.00">youtube</text>
+</g>
+<g id="clust4" class="cluster">
+<title>cluster_providers_instagram</title>
+<polygon fill="none" stroke="black" points="489,-683 489,-757 994,-757 994,-683 489,-683"/>
+<text text-anchor="middle" x="741.5" y="-741.8" font-family="Times,serif" font-size="14.00">instagram</text>
+</g>
+<g id="clust5" class="cluster">
+<title>cluster_processors</title>
+<polygon fill="none" stroke="black" points="58,-571 58,-645 892,-645 892,-571 58,-571"/>
+<text text-anchor="middle" x="475" y="-629.8" font-family="Times,serif" font-size="14.00">processors</text>
+</g>
+<g id="clust6" class="cluster">
+<title>cluster_persisters_1</title>
+<polygon fill="none" stroke="black" points="272,-437 272,-511 454,-511 454,-437 272,-437"/>
+<text text-anchor="middle" x="363" y="-495.8" font-family="Times,serif" font-size="14.00">persisters</text>
+</g>
+<g id="clust7" class="cluster">
+<title>cluster_queues</title>
+<polygon fill="none" stroke="black" points="180,-331 180,-405 314,-405 314,-331 180,-331"/>
+<text text-anchor="middle" x="247" y="-389.8" font-family="Times,serif" font-size="14.00">queues</text>
+</g>
+<g id="clust8" class="cluster">
+<title>cluster_persisters_2</title>
+<polygon fill="none" stroke="black" points="58,-114 58,-299 478,-299 478,-114 58,-114"/>
+<text text-anchor="middle" x="268" y="-283.8" font-family="Times,serif" font-size="14.00">persisters</text>
+</g>
+<g id="clust9" class="cluster">
+<title>cluster_dbs</title>
+<polygon fill="none" stroke="black" points="193,-8 193,-82 369,-82 369,-8 193,-8"/>
+<text text-anchor="middle" x="281" y="-66.8" font-family="Times,serif" font-size="14.00">dbs</text>
+</g>
+<!-- generators_youtube -->
+<g id="node1" class="node">
+<title>generators_youtube</title>
+<ellipse fill="none" stroke="black" cx="371" cy="-832" rx="93.7378" ry="18"/>
+<text text-anchor="middle" x="371" y="-827.8" font-family="Times,serif" font-size="14.00">https://api.youtube.com</text>
+</g>
+<!-- providers_youtube_channel -->
+<g id="node3" class="node">
+<title>providers_youtube_channel</title>
+<ellipse fill="none" stroke="black" cx="124" cy="-709" rx="99.7162" ry="18"/>
+<text text-anchor="middle" x="124" y="-704.8" font-family="Times,serif" font-size="14.00">YoutubeChannelProvider</text>
+</g>
+<!-- generators_youtube&#45;&gt;providers_youtube_channel -->
+<g id="edge1" class="edge">
+<title>generators_youtube&#45;&gt;providers_youtube_channel</title>
+<path fill="none" stroke="black" d="M313.269,-817.697C287.642,-810.25 257.564,-799.963 232,-787 203.045,-772.318 173.373,-750.286 152.475,-733.379"/>
+<polygon fill="black" stroke="black" points="154.589,-730.586 144.64,-726.946 150.148,-735.996 154.589,-730.586"/>
+</g>
+<!-- providers_youtube_video -->
+<g id="node4" class="node">
+<title>providers_youtube_video</title>
+<ellipse fill="none" stroke="black" cx="357" cy="-709" rx="115.637" ry="18"/>
+<text text-anchor="middle" x="357" y="-704.8" font-family="Times,serif" font-size="14.00">YoutubeUserActivityProvider</text>
+</g>
+<!-- generators_youtube&#45;&gt;providers_youtube_video -->
+<g id="edge2" class="edge">
+<title>generators_youtube&#45;&gt;providers_youtube_video</title>
+<path fill="none" stroke="black" d="M368.934,-813.851C366.639,-793.684 362.903,-760.864 360.223,-737.313"/>
+<polygon fill="black" stroke="black" points="363.683,-736.764 359.074,-727.224 356.728,-737.555 363.683,-736.764"/>
+</g>
+<!-- generators_instagram -->
+<g id="node2" class="node">
+<title>generators_instagram</title>
+<ellipse fill="none" stroke="black" cx="583" cy="-832" rx="100.002" ry="18"/>
+<text text-anchor="middle" x="583" y="-827.8" font-family="Times,serif" font-size="14.00">https://api.instagram.com</text>
+</g>
+<!-- providers_instagram_userinfo -->
+<g id="node5" class="node">
+<title>providers_instagram_userinfo</title>
+<ellipse fill="none" stroke="black" cx="607" cy="-709" rx="109.615" ry="18"/>
+<text text-anchor="middle" x="607" y="-704.8" font-family="Times,serif" font-size="14.00">InstagramUserInfoCollector</text>
+</g>
+<!-- generators_instagram&#45;&gt;providers_instagram_userinfo -->
+<g id="edge5" class="edge">
+<title>generators_instagram&#45;&gt;providers_instagram_userinfo</title>
+<path fill="none" stroke="black" d="M586.541,-813.851C590.476,-793.684 596.88,-760.864 601.475,-737.313"/>
+<polygon fill="black" stroke="black" points="604.964,-737.709 603.444,-727.224 598.094,-736.368 604.964,-737.709"/>
+</g>
+<!-- providers_instagram_media -->
+<g id="node6" class="node">
+<title>providers_instagram_media</title>
+<ellipse fill="none" stroke="black" cx="860" cy="-709" rx="125.542" ry="18"/>
+<text text-anchor="middle" x="860" y="-704.8" font-family="Times,serif" font-size="14.00">InstagramRecentMediaCollector</text>
+</g>
+<!-- generators_instagram&#45;&gt;providers_instagram_media -->
+<g id="edge6" class="edge">
+<title>generators_instagram&#45;&gt;providers_instagram_media</title>
+<path fill="none" stroke="black" d="M640.093,-817.192C666.709,-809.494 698.503,-799.148 726,-787 761.173,-771.461 798.817,-748.976 825.222,-732.136"/>
+<polygon fill="black" stroke="black" points="827.213,-735.016 833.726,-726.659 823.423,-729.131 827.213,-735.016"/>
+</g>
+<!-- processors_youtube_activityobject -->
+<g id="node8" class="node">
+<title>processors_youtube_activityobject</title>
+<ellipse fill="none" stroke="black" cx="159" cy="-597" rx="92.691" ry="18"/>
+<text text-anchor="middle" x="159" y="-592.8" font-family="Times,serif" font-size="14.00">YoutubeTypeConverter</text>
+</g>
+<!-- providers_youtube_channel&#45;&gt;processors_youtube_activityobject -->
+<g id="edge3" class="edge">
+<title>providers_youtube_channel&#45;&gt;processors_youtube_activityobject</title>
+<path fill="none" stroke="black" d="M129.623,-691.005C135.178,-673.231 143.754,-645.786 150.209,-625.131"/>
+<polygon fill="black" stroke="black" points="153.632,-625.911 153.274,-615.322 146.951,-623.823 153.632,-625.911"/>
+<text text-anchor="middle" x="184.704" y="-655.8" font-family="Times,serif" font-size="14.00">o.a.s.y.Channel</text>
+</g>
+<!-- processors_youtube_activity -->
+<g id="node7" class="node">
+<title>processors_youtube_activity</title>
+<ellipse fill="none" stroke="black" cx="362" cy="-597" rx="92.691" ry="18"/>
+<text text-anchor="middle" x="362" y="-592.8" font-family="Times,serif" font-size="14.00">YoutubeTypeConverter</text>
+</g>
+<!-- providers_youtube_video&#45;&gt;processors_youtube_activity -->
+<g id="edge4" class="edge">
+<title>providers_youtube_video&#45;&gt;processors_youtube_activity</title>
+<path fill="none" stroke="black" d="M357.826,-690.505C358.619,-672.728 359.83,-645.618 360.743,-625.159"/>
+<polygon fill="black" stroke="black" points="364.24,-625.297 361.19,-615.15 357.247,-624.984 364.24,-625.297"/>
+<text text-anchor="middle" x="396.066" y="-655.8" font-family="Times,serif" font-size="14.00">o.a.s.y.Video</text>
+</g>
+<!-- processors_instagram_activityobject -->
+<g id="node10" class="node">
+<title>processors_instagram_activityobject</title>
+<ellipse fill="none" stroke="black" cx="571" cy="-597" rx="98.2636" ry="18"/>
+<text text-anchor="middle" x="571" y="-592.8" font-family="Times,serif" font-size="14.00">InstagramTypeConverter</text>
+</g>
+<!-- providers_instagram_userinfo&#45;&gt;processors_instagram_activityobject -->
+<g id="edge7" class="edge">
+<title>providers_instagram_userinfo&#45;&gt;processors_instagram_activityobject</title>
+<path fill="none" stroke="black" d="M601.216,-691.005C595.477,-673.15 586.601,-645.535 579.951,-624.848"/>
+<polygon fill="black" stroke="black" points="583.282,-623.771 576.889,-615.322 576.617,-625.914 583.282,-623.771"/>
+<text text-anchor="middle" x="649.369" y="-655.8" font-family="Times,serif" font-size="14.00">o.a.s.i.UserInfoData</text>
+</g>
+<!-- processors_instagram_activity -->
+<g id="node9" class="node">
+<title>processors_instagram_activity</title>
+<ellipse fill="none" stroke="black" cx="786" cy="-597" rx="98.2636" ry="18"/>
+<text text-anchor="middle" x="786" y="-592.8" font-family="Times,serif" font-size="14.00">InstagramTypeConverter</text>
+</g>
+<!-- providers_instagram_media&#45;&gt;processors_instagram_activity -->
+<g id="edge8" class="edge">
+<title>providers_instagram_media&#45;&gt;processors_instagram_activity</title>
+<path fill="none" stroke="black" d="M848.111,-691.005C836.028,-672.717 817.18,-644.191 803.414,-623.356"/>
+<polygon fill="black" stroke="black" points="806.293,-621.364 797.86,-614.95 800.452,-625.223 806.293,-621.364"/>
+<text text-anchor="middle" x="893.979" y="-655.8" font-family="Times,serif" font-size="14.00">o.a.s.i.MediaFeedData</text>
+</g>
+<!-- persisters_kinesis_writer -->
+<g id="node11" class="node">
+<title>persisters_kinesis_writer</title>
+<ellipse fill="none" stroke="black" cx="363" cy="-463" rx="82.8977" ry="18"/>
+<text text-anchor="middle" x="363" y="-458.8" font-family="Times,serif" font-size="14.00">KinesisPersistWriter</text>
+</g>
+<!-- processors_youtube_activity&#45;&gt;persisters_kinesis_writer -->
+<g id="edge10" class="edge">
+<title>processors_youtube_activity&#45;&gt;persisters_kinesis_writer</title>
+<path fill="none" stroke="black" d="M362.135,-578.928C362.303,-556.45 362.591,-517.817 362.788,-491.375"/>
+<polygon fill="black" stroke="black" points="366.289,-491.239 362.864,-481.213 359.289,-491.187 366.289,-491.239"/>
+<text text-anchor="middle" x="414.136" y="-542.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Video</text>
+<text text-anchor="middle" x="414.136" y="-528.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Comment</text>
+</g>
+<!-- processors_youtube_activityobject&#45;&gt;persisters_kinesis_writer -->
+<g id="edge9" class="edge">
+<title>processors_youtube_activityobject&#45;&gt;persisters_kinesis_writer</title>
+<path fill="none" stroke="black" d="M185.669,-579.482C222.295,-555.424 288.197,-512.135 328.526,-485.645"/>
+<polygon fill="black" stroke="black" points="330.532,-488.514 336.969,-480.099 326.689,-482.664 330.532,-488.514"/>
+<text text-anchor="middle" x="311.133" y="-535.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Page</text>
+</g>
+<!-- processors_instagram_activity&#45;&gt;persisters_kinesis_writer -->
+<g id="edge12" class="edge">
+<title>processors_instagram_activity&#45;&gt;persisters_kinesis_writer</title>
+<path fill="none" stroke="black" d="M751.272,-580.048C714.97,-562.842 656.013,-536.337 603,-519 548.139,-501.059 484.451,-486.475 436.474,-476.693"/>
+<polygon fill="black" stroke="black" points="436.978,-473.224 426.483,-474.679 435.594,-480.086 436.978,-473.224"/>
+<text text-anchor="middle" x="759.136" y="-549.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Photo</text>
+<text text-anchor="middle" x="759.136" y="-535.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Video</text>
+<text text-anchor="middle" x="759.136" y="-521.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Comment</text>
+</g>
+<!-- processors_instagram_activityobject&#45;&gt;persisters_kinesis_writer -->
+<g id="edge11" class="edge">
+<title>processors_instagram_activityobject&#45;&gt;persisters_kinesis_writer</title>
+<path fill="none" stroke="black" d="M549.875,-579.176C529.758,-562.613 498.289,-537.75 469,-519 449.177,-506.31 426.182,-493.903 406.686,-484.006"/>
+<polygon fill="black" stroke="black" points="408.22,-480.86 397.713,-479.501 405.08,-487.116 408.22,-480.86"/>
+<text text-anchor="middle" x="562.133" y="-535.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Page</text>
+</g>
+<!-- kinesis -->
+<g id="node12" class="node">
+<title>kinesis</title>
+<polygon fill="none" stroke="black" points="281.7,-375 212.3,-375 187.583,-339 306.417,-339 281.7,-375"/>
+<text text-anchor="middle" x="247" y="-352.8" font-family="Times,serif" font-size="14.00">kinesis://</text>
+</g>
+<!-- persisters_kinesis_writer&#45;&gt;kinesis -->
+<g id="edge13" class="edge">
+<title>persisters_kinesis_writer&#45;&gt;kinesis</title>
+<path fill="none" stroke="black" d="M302.093,-450.713C278.354,-444.591 255.132,-436.467 248.065,-427 239.317,-415.28 238.557,-399.113 240.209,-385.268"/>
+<polygon fill="black" stroke="black" points="243.688,-385.68 241.85,-375.245 236.78,-384.549 243.688,-385.68"/>
+<text text-anchor="middle" x="295.467" y="-415.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Activity</text>
+</g>
+<!-- persisters_kinesis_writer&#45;&gt;kinesis -->
+<g id="edge15" class="edge">
+<title>persisters_kinesis_writer&#45;&gt;kinesis</title>
+<path fill="none" stroke="black" d="M358.031,-444.821C354.541,-434.594 349.041,-422.094 341,-413 327.835,-398.111 309.73,-386.038 292.922,-376.967"/>
+<polygon fill="black" stroke="black" points="294.249,-373.713 283.758,-372.237 291.039,-379.934 294.249,-373.713"/>
+<text text-anchor="middle" x="416.126" y="-415.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.ActivityObject</text>
+</g>
+<!-- persisters_kinesis_reader -->
+<g id="node15" class="node">
+<title>persisters_kinesis_reader</title>
+<ellipse fill="none" stroke="black" cx="230" cy="-251" rx="85.0273" ry="18"/>
+<text text-anchor="middle" x="230" y="-246.8" font-family="Times,serif" font-size="14.00">KinesisPersistReader</text>
+</g>
+<!-- kinesis&#45;&gt;persisters_kinesis_reader -->
+<g id="edge14" class="edge">
+<title>kinesis&#45;&gt;persisters_kinesis_reader</title>
+<path fill="none" stroke="black" d="M237.252,-338.799C234.744,-333.242 232.384,-327.008 231.065,-321 228.095,-307.459 227.56,-292.088 227.88,-279.206"/>
+<polygon fill="black" stroke="black" points="231.383,-279.206 228.315,-269.065 224.389,-278.906 231.383,-279.206"/>
+<text text-anchor="middle" x="278.467" y="-309.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.Activity</text>
+</g>
+<!-- kinesis&#45;&gt;persisters_kinesis_reader -->
+<g id="edge16" class="edge">
+<title>kinesis&#45;&gt;persisters_kinesis_reader</title>
+<path fill="none" stroke="black" d="M306.248,-339.6C321.646,-331.732 331.954,-320.997 324,-307 315.135,-291.399 300.013,-279.687 284.46,-271.118"/>
+<polygon fill="black" stroke="black" points="285.793,-267.868 275.297,-266.43 282.605,-274.1 285.793,-267.868"/>
+<text text-anchor="middle" x="392.126" y="-309.8" font-family="Times,serif" font-size="14.00">o.a.s.p.j.ActivityObject</text>
+</g>
+<!-- persisters_elasticsearch -->
+<g id="node13" class="node">
+<title>persisters_elasticsearch</title>
+<ellipse fill="none" stroke="black" cx="169" cy="-140" rx="103.134" ry="18"/>
+<text text-anchor="middle" x="169" y="-135.8" font-family="Times,serif" font-size="14.00">ElasticsearchPersistWriter</text>
+</g>
+<!-- elasticsearch -->
+<g id="node16" class="node">
+<title>elasticsearch</title>
+<path fill="none" stroke="black" d="M288.512,-48.7273C288.512,-50.5331 269.009,-52 245,-52 220.991,-52 201.488,-50.5331 201.488,-48.7273 201.488,-48.7273 201.488,-19.2727 201.488,-19.2727 201.488,-17.4669 220.991,-16 245,-16 269.009,-16 288.512,-17.4669 288.512,-19.2727 288.512,-19.2727 288.512,-48.7273 288.512,-48.7273"/>
+<path fill="none" stroke="black" d="M288.512,-48.7273C288.512,-46.9214 269.009,-45.4545 245,-45.4545 220.991,-45.4545 201.488,-46.9214 201.488,-48.7273"/>
+<text text-anchor="middle" x="245" y="-29.8" font-family="Times,serif" font-size="14.00">elasticsearch</text>
+</g>
+<!-- persisters_elasticsearch&#45;&gt;elasticsearch -->
+<g id="edge19" class="edge">
+<title>persisters_elasticsearch&#45;&gt;elasticsearch</title>
+<path fill="none" stroke="black" d="M181.892,-122.019C194.012,-105.115 212.298,-79.6103 226.072,-60.3997"/>
+<polygon fill="black" stroke="black" points="229.062,-62.2361 232.044,-52.0697 223.373,-58.1572 229.062,-62.2361"/>
+<text text-anchor="middle" x="216.666" y="-92.8" font-family="Times,serif" font-size="14.00">es://</text>
+</g>
+<!-- persisters_hdfs -->
+<g id="node14" class="node">
+<title>persisters_hdfs</title>
+<ellipse fill="none" stroke="black" cx="380" cy="-140" rx="89.7062" ry="18"/>
+<text text-anchor="middle" x="380" y="-135.8" font-family="Times,serif" font-size="14.00">WebHdfsPersistWriter</text>
+</g>
+<!-- hdfs -->
+<g id="node17" class="node">
+<title>hdfs</title>
+<polygon fill="none" stroke="black" points="361,-52 319,-52 319,-56 307,-56 307,-16 361,-16 361,-52"/>
+<polyline fill="none" stroke="black" points="307,-52 319,-52 "/>
+<text text-anchor="middle" x="334" y="-29.8" font-family="Times,serif" font-size="14.00">hdfs</text>
+</g>
+<!-- persisters_hdfs&#45;&gt;hdfs -->
+<g id="edge20" class="edge">
+<title>persisters_hdfs&#45;&gt;hdfs</title>
+<path fill="none" stroke="black" d="M372.197,-122.019C364.994,-105.42 354.191,-80.5266 345.91,-61.4442"/>
+<polygon fill="black" stroke="black" points="349.033,-59.8498 341.842,-52.0697 342.612,-62.6365 349.033,-59.8498"/>
+<text text-anchor="middle" x="381.89" y="-92.8" font-family="Times,serif" font-size="14.00">hdfs://</text>
+</g>
+<!-- persisters_kinesis_reader&#45;&gt;persisters_elasticsearch -->
+<g id="edge17" class="edge">
+<title>persisters_kinesis_reader&#45;&gt;persisters_elasticsearch</title>
+<path fill="none" stroke="black" d="M219.927,-232.671C210.067,-214.729 194.936,-187.195 183.727,-166.798"/>
+<polygon fill="black" stroke="black" points="186.769,-165.066 178.885,-157.988 180.634,-168.438 186.769,-165.066"/>
+</g>
+<!-- persisters_kinesis_reader&#45;&gt;persisters_hdfs -->
+<g id="edge18" class="edge">
+<title>persisters_kinesis_reader&#45;&gt;persisters_hdfs</title>
+<path fill="none" stroke="black" d="M253.438,-233.656C278.826,-214.869 319.494,-184.774 347.856,-163.787"/>
+<polygon fill="black" stroke="black" points="350.276,-166.35 356.232,-157.588 346.112,-160.723 350.276,-166.35"/>
+</g>
+</g>
+</svg>


Mime
View raw message