You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ce...@apache.org on 2017/02/06 20:15:50 UTC

[1/3] incubator-metron git commit: METRON-660 Prototype structure for .md assembly into book with maven doxia-markdown plugin.

Repository: incubator-metron
Updated Branches:
  refs/heads/master 73cb6575c -> e4d54a278


METRON-660 Prototype structure for .md assembly into book with maven doxia-markdown plugin.


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

Branch: refs/heads/master
Commit: dd99533e0511495bdb27b2a23a0e07a13e35309f
Parents: 73cb657
Author: mattf-horton <mf...@hortonworks.com>
Authored: Mon Jan 16 17:18:57 2017 -0800
Committer: mattf-horton <mf...@hortonworks.com>
Committed: Mon Feb 6 09:58:17 2017 -0800

----------------------------------------------------------------------
 site-book/.gitignore                  |  25 +++++++++
 site-book/pom.xml                     |  78 +++++++++++++++++++++++++++++
 site-book/site/images/metron-logo.png | Bin 0 -> 21186 bytes
 site-book/site/site.xml               |  62 +++++++++++++++++++++++
 4 files changed, 165 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/dd99533e/site-book/.gitignore
----------------------------------------------------------------------
diff --git a/site-book/.gitignore b/site-book/.gitignore
new file mode 100644
index 0000000..de3a505
--- /dev/null
+++ b/site-book/.gitignore
@@ -0,0 +1,25 @@
+site/markdown/
+*~
+target/
+*dependency-reduced-pom.xml
+.idea
+*.iml
+*.iws
+.DS_Store
+*.project
+*.classpath
+*.settings
+*.metadata
+*hbase-site.xml
+*.log
+*.swp
+*.tmp
+*.bak
+*.class
+
+tmp/**
+tmp/**/*
+temp/**
+temp/**/*
+
+repodata/

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/dd99533e/site-book/pom.xml
----------------------------------------------------------------------
diff --git a/site-book/pom.xml b/site-book/pom.xml
new file mode 100644
index 0000000..74ce248
--- /dev/null
+++ b/site-book/pom.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software
+	Foundation (ASF) under one or more contributor license agreements. See the
+	NOTICE file distributed with this work for additional information regarding
+	copyright ownership. The ASF licenses this file to You under the Apache License,
+	Version 2.0 (the "License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+	Unless required by applicable law or agreed to in writing, software distributed
+	under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+	OR CONDITIONS OF ANY KIND, either express or implied. See the License for
+  the specific language governing permissions and limitations under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.apache.metron</groupId>
+	<artifactId>site-book</artifactId>
+	<packaging>pom</packaging>
+	<name>site-book</name>
+	<parent>
+		<groupId>org.apache.metron</groupId>
+		<artifactId>Metron</artifactId>
+		<version>0.3.0</version>
+	</parent>
+	<description>User Documentation for Metron</description>
+	<url>https://metron.incubator.apache.org/</url>
+	<scm>
+		<connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-metron.git</connection>
+		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-metron.git</developerConnection>
+		<tag>HEAD</tag>
+		<url>https://git-wip-us.apache.org/repos/asf/incubator-metron</url>
+	</scm>
+
+	<licenses>
+		<license>
+			<name>The Apache Software License, Version 2.0</name>
+			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+	<modules>
+		<module>site</module>
+	</modules>
+
+	<properties>
+          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<build>
+	  <plugins>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-site-plugin</artifactId>
+              <version>3.4</version>
+              <dependencies>
+		<dependency>
+                  <groupId>org.apache.maven.doxia</groupId>
+                  <artifactId>doxia-module-markdown</artifactId>
+                  <version>1.7</version>
+		</dependency>
+              </dependencies>
+              <executions>
+		<execution>
+                  <goals>
+                    <goal>site</goal>
+                  </goals>
+		</execution>
+              </executions>
+              <configuration>
+		<skip>false</skip>
+              </configuration>
+            </plugin>
+	  </plugins>
+	</build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/dd99533e/site-book/site/images/metron-logo.png
----------------------------------------------------------------------
diff --git a/site-book/site/images/metron-logo.png b/site-book/site/images/metron-logo.png
new file mode 100644
index 0000000..a0bc8cb
Binary files /dev/null and b/site-book/site/images/metron-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/dd99533e/site-book/site/site.xml
----------------------------------------------------------------------
diff --git a/site-book/site/site.xml b/site-book/site/site.xml
new file mode 100644
index 0000000..90f774a
--- /dev/null
+++ b/site-book/site/site.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project name="Falcon" xmlns="http://maven.apache.org/DECORATION/1.3.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd">
+
+    <skin>
+        <groupId>org.apache.maven.skins</groupId>
+        <artifactId>maven-fluido-skin</artifactId>
+        <version>1.3.0</version>
+    </skin>
+
+    <custom>
+        <fluidoSkin>
+            <project>Apache Metron - Incubating</project>
+            <sideBarEnabled>false</sideBarEnabled>
+        </fluidoSkin>
+    </custom>
+
+    <bannerLeft>
+        <name>Apache Metron - Incubating</name>
+        <src>./images/metron-logo.png</src>
+        <width>740px</width>
+        <height>242px</height>
+    </bannerLeft>
+
+    <publishDate position="right"/>
+    <version position="right"/>
+
+    <body>
+        <head>
+            <script type="text/javascript">
+                $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
+            </script>
+        </head>
+
+        <breadcrumbs position="left">
+            <item name="Metron" title="Apache Metron - Incubating" href="index.html"/>
+        </breadcrumbs>
+
+        <footer>
+            © 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
+            and the Apache Metron project logo are trademarks of The Apache Software Foundation.
+        </footer>
+    </body>
+</project>


[3/3] incubator-metron git commit: METRON-660 Working generator script and site specification, with re-write script to conform Github-MD source files to doxia-markdown. Also misc fixes to markdown files. This closes apache/incubator-metron#429

Posted by ce...@apache.org.
METRON-660 Working generator script and site specification, with re-write script to conform Github-MD source files to doxia-markdown. Also misc fixes to markdown files. This closes apache/incubator-metron#429


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

Branch: refs/heads/master
Commit: e4d54a2784a571ec84d5eb31f801f788b96bec7e
Parents: 2531b72
Author: mattf-horton <mf...@hortonworks.com>
Authored: Thu Jan 19 00:19:00 2017 -0800
Committer: cstella <ce...@gmail.com>
Committed: Mon Feb 6 15:15:13 2017 -0500

----------------------------------------------------------------------
 README.md                                       |   1 -
 metron-analytics/README.md                      |   8 +
 .../metron-profiler-client/README.md            |   2 +-
 metron-deployment/README.md                     |   4 +-
 metron-deployment/packer-build/README.md        |   8 +-
 metron-deployment/roles/README.md               |   7 +
 metron-deployment/vagrant/README.md             |   6 +
 .../metron-data-management/README.md            |  20 +-
 metron-platform/metron-parsers/README.md        |   4 +-
 metron-platform/metron-pcap-backend/README.md   |   5 +-
 metron-sensors/README.md                        |   5 +
 site-book/.gitignore                            |   3 +-
 site-book/bin/fix-md-dialect.py                 | 422 +++++++++++++++++++
 site-book/bin/generate-md.sh                    | 277 ++++++++++++
 site-book/src/site/images/metron-logo.png       | Bin 21186 -> 0 bytes
 .../image-archive/ApacheIncubating_Logo.png     | Bin 0 -> 11294 bytes
 .../resources/image-archive/metron-logo.png     | Bin 0 -> 21186 bytes
 site-book/src/site/site.xml                     |  74 +++-
 site-book/src/test/resources/test-fix-md.txt    |  34 ++
 .../src/test/resources/test-fix-md.txt.result   |  34 ++
 .../src/test/resources/test-fix-md.txt.stat     |  34 ++
 21 files changed, 922 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 92e1060..419e9dd 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,6 @@ the context and situational awareness, as well as the who and where
 information critical for investigation
 
 3. **Efficient information storage** based on how the information will be used:
-
    - Logs and telemetry are stored such that they can be efficiently mined and
 analyzed for concise security visibility
    - The ability to extract and reconstruct full packets helps an analyst answer 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-analytics/README.md
----------------------------------------------------------------------
diff --git a/metron-analytics/README.md b/metron-analytics/README.md
new file mode 100644
index 0000000..d639ca3
--- /dev/null
+++ b/metron-analytics/README.md
@@ -0,0 +1,8 @@
+# Metron Analytics
+
+Metron analytics consists of:
+
+- Model-as-a-Service (MAAS) access to Machine Learning services
+- Profiler and Profiler Client
+- Statistics
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-analytics/metron-profiler-client/README.md
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-client/README.md b/metron-analytics/metron-profiler-client/README.md
index 60779c8..4609164 100644
--- a/metron-analytics/metron-profiler-client/README.md
+++ b/metron-analytics/metron-profiler-client/README.md
@@ -1,6 +1,6 @@
 # Metron Profiler Client
 
-This project provides a client API for accessing the profiles generated by the [Metron Profiler](..//metron-profiler).  This includes both a Java API and Stellar API for accessing the profile data.  The primary use case is to extract profile data for use during model scoring.
+This project provides a client API for accessing the profiles generated by the [Metron Profiler](../metron-profiler).  This includes both a Java API and Stellar API for accessing the profile data.  The primary use case is to extract profile data for use during model scoring.
 
 ## Stellar Client API
 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-deployment/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/README.md b/metron-deployment/README.md
index eb93df4..46a5f8d 100644
--- a/metron-deployment/README.md
+++ b/metron-deployment/README.md
@@ -106,7 +106,7 @@ This will set up
 
 ### Prerequisites
 - A cluster managed by Ambari 2.4
-- Metron RPMs available on the cluster in the /localrepo directory.  See [RPM](#RPM) for further information.
+- Metron RPMs available on the cluster in the /localrepo directory.  See [RPM](#rpm) for further information.
 
 ### Building Management Pack
 From `metron-deployment` run
@@ -129,7 +129,7 @@ The Indexing / Parsers/ Enrichment masters should be colocated with a Kafka Brok
 This colocation is currently not enforced by Ambari, and should be managed by either a Service or Stack advisor as an enhancement.
 
 Several configuration parameters will need to be filled in, and should be pretty self explanatory (primarily a couple of Elasticsearch configs, and the Storm REST URL).  Examples are provided in the descriptions on Ambari.
-Notably, the URL for the GeoIP database that is preloaded (and is prefilled by default) can be set to use a `file://` location
+Notably, the URL for the GeoIP database that is preloaded (and is prefilled by default) can be set to use a `file:///` location
 
 After installation, a custom action is available in Ambari (where stop / start services are) to install Elasticsearch templates.  Similar to this, a custom Kibana action to Load Template is available.
 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-deployment/packer-build/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/packer-build/README.md b/metron-deployment/packer-build/README.md
index ee49477..4c75287 100644
--- a/metron-deployment/packer-build/README.md
+++ b/metron-deployment/packer-build/README.md
@@ -25,9 +25,13 @@ Build Single Images
 ---------------------- 
  Navigate to *your-project-directory*/metron-deployment/packer-build
  * HDP Centos 
- ```bin/bento build hdp-centos-6.7.json```
+ ```
+bin/bento build hdp-centos-6.7.json
+```
  * Full Metron
- ```bin/bento build metron-centos-6.7.json```
+ ```
+bin/bento build metron-centos-6.7.json
+```
 
 Using Your New Box File
 ---------------------- 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-deployment/roles/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/roles/README.md b/metron-deployment/roles/README.md
new file mode 100644
index 0000000..32c4fbc
--- /dev/null
+++ b/metron-deployment/roles/README.md
@@ -0,0 +1,7 @@
+# Ansible Roles
+
+- Kibana
+- Monit
+- OpenTaxii
+- Pcap Relay
+- Sensor Test Mode

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-deployment/vagrant/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/README.md b/metron-deployment/vagrant/README.md
new file mode 100644
index 0000000..b629a1f
--- /dev/null
+++ b/metron-deployment/vagrant/README.md
@@ -0,0 +1,6 @@
+# Vagrant Deployment
+
+- Codelab Platform
+- Fast CAPA Test Platform
+- Full Dev Platform
+- Quick Dev Platform

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-platform/metron-data-management/README.md
----------------------------------------------------------------------
diff --git a/metron-platform/metron-data-management/README.md b/metron-platform/metron-data-management/README.md
index eaafda4..60c0283 100644
--- a/metron-platform/metron-data-management/README.md
+++ b/metron-platform/metron-data-management/README.md
@@ -1,4 +1,4 @@
-# metron-data-management
+# Resource Data Management
 
 This project is a collection of classes to assist with loading of
 various enrichment and threat intelligence sources into Metron.
@@ -64,7 +64,7 @@ schema if necessary for the data if it is not fixed (as in STIX, e.g.).
 Consider the following example configuration file which
 describes how to process a CSV file.
 
-````
+```
 {
   "config" : {
     "columns" : {
@@ -77,7 +77,7 @@ describes how to process a CSV file.
   }
   ,"extractor" : "CSV"
 }
-````
+```
 
 In this example, we have instructed the extractor of the schema (i.e. the columns field), 
 two columns at the first and third position.  We have indicated that the `ip` column is the indicator type
@@ -113,14 +113,14 @@ NOTE: The enrichment type will be used as the type above.
 
 Consider the following configuration for an Extractor
 
-````
+```
 {
   "config" : {
     "stix_address_categories" : "IPV_4_ADDR"
   }
   ,"extractor" : "STIX"
 }
-````
+```
 
 In here, we're configuring the STIX extractor to load from a series of STIX files, however we only want to bring in IPv4
 addresses from the set of all possible addresses.  Note that if no categories are specified for import, all are assumed.
@@ -136,7 +136,7 @@ documents flowing through the enrichment topology.
 
 Consider the following Enrichment Configuration JSON.  This one is for a threat intelligence type:
 
-````
+```
 {
   "zkQuorum" : "localhost:2181"
  ,"sensorToFieldList" : {
@@ -149,7 +149,7 @@ Consider the following Enrichment Configuration JSON.  This one is for a threat
            }
                         }
 }
-````
+```
 
 We have to specify the following:
 * The zookeeper quorum which holds the cluster configuration
@@ -174,7 +174,7 @@ It is quite common for this Taxii server to be an aggregation server such as Sol
 In addition to the Enrichment and Extractor configs described above, this loader requires a configuration file describing the connection information
 to the Taxii server.  An illustrative example of such a configuration file is:
 
-````
+```
 {
    "endpoint" : "http://localhost:8282/taxii-discovery-service"
   ,"type" : "DISCOVER"
@@ -183,7 +183,7 @@ to the Taxii server.  An illustrative example of such a configuration file is:
   ,"columnFamily" : "cf"
   ,"allowedIndicatorTypes" : [ "domainname:FQDN", "address:IPV_4_ADDR" ]
 }
-````
+```
 
 As you can see, we are specifying the following information:
 * endpoint : The URL of the endpoint
@@ -249,6 +249,6 @@ The parameters for the utility are as follows:
 |------------|---------------------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | -h         |                     | No           | Generate the help screen/set of options                                                                                                                                              |
 | -g         | --geo_url           | No           | GeoIP URL - defaults to http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
-| -r         | --remote_dir        | No           | HDFS directory to land formatted GeoIP file - defaults to /apps/metron/geo/<epoch millis>/
+| -r         | --remote_dir        | No           | HDFS directory to land formatted GeoIP file - defaults to /apps/metron/geo/\<epoch millis\>/
 | -t         | --tmp_dir           | No           | Directory for landing the temporary GeoIP data - defaults to /tmp
 | -z         | --zk_quorum         | Yes          | Zookeeper Quorum URL (zk1:port,zk2:port,...)

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-platform/metron-parsers/README.md
----------------------------------------------------------------------
diff --git a/metron-platform/metron-parsers/README.md b/metron-platform/metron-parsers/README.md
index cb51274..3c4310d 100644
--- a/metron-platform/metron-parsers/README.md
+++ b/metron-platform/metron-parsers/README.md
@@ -295,7 +295,7 @@ usage: start_parser_topology.sh
                                                 (zk1:2181,zk2:2181,...
 ```
 
-# The `--extra_kafka_spout_config` Option
+## The `--extra_kafka_spout_config` Option
 These options are intended to configure the Storm Kafka Spout more completely.  These options can be
 specified in a JSON file containing a map associating the kafka spout configuration parameter to a value.
 The range of values possible to configure are:
@@ -322,7 +322,7 @@ For instance, creating a JSON file which will set the `bufferSizeBytes` to 2MB a
 
 This would be loaded by passing the file as argument to `--extra_kafka_spout_config`
 
-# The `--extra_topology_options` Option
+## The `--extra_topology_options` Option
 
 These options are intended to be Storm configuration options and will live in
 a JSON file which will be loaded into the Storm config.  For instance, if you wanted to set a storm property on

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-platform/metron-pcap-backend/README.md
----------------------------------------------------------------------
diff --git a/metron-platform/metron-pcap-backend/README.md b/metron-platform/metron-pcap-backend/README.md
index 927ae40..e1a2683 100644
--- a/metron-platform/metron-pcap-backend/README.md
+++ b/metron-platform/metron-pcap-backend/README.md
@@ -80,7 +80,10 @@ This tool exposes the two methods for filtering PCAP data via a command line too
 - fixed
 - query (Metron Stellar)
 
-The tool is executed via ```${metron_home}/bin/pcap_query.sh [fixed|query]```
+The tool is executed via 
+```
+${metron_home}/bin/pcap_query.sh [fixed|query]
+```
 
 #### Usage
 ```

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/metron-sensors/README.md
----------------------------------------------------------------------
diff --git a/metron-sensors/README.md b/metron-sensors/README.md
new file mode 100644
index 0000000..af932e5
--- /dev/null
+++ b/metron-sensors/README.md
@@ -0,0 +1,5 @@
+# Metron Sensors
+
+- Fast CAPA
+- Py CAPA
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/.gitignore
----------------------------------------------------------------------
diff --git a/site-book/.gitignore b/site-book/.gitignore
index de3a505..90e4c61 100644
--- a/site-book/.gitignore
+++ b/site-book/.gitignore
@@ -1,4 +1,5 @@
-site/markdown/
+src/site/markdown/
+src/site/resources/images/
 *~
 target/
 *dependency-reduced-pom.xml

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/bin/fix-md-dialect.py
----------------------------------------------------------------------
diff --git a/site-book/bin/fix-md-dialect.py b/site-book/bin/fix-md-dialect.py
new file mode 100755
index 0000000..23ce42a
--- /dev/null
+++ b/site-book/bin/fix-md-dialect.py
@@ -0,0 +1,422 @@
+#########################################################################
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#########################################################################
+
+
+## Markdown has these types of paragraph: heading, text, list item (bullet or numbered),
+## codeblock, table, and block quote.
+##
+## This script fixes up differences in Markdown dialect, between Github-MD and doxia-markdown.
+## Specifically, it fixes these problems:
+##     1. In Github-MD, bullets and codeblock starts are self-delimiting.  In doxia-markdown, they
+## must be separated from preceding text or (in the case of codeblocks) bullets, by a blank line.
+## Failure to do so causes the bullet or codeblock delimiter to be interpreted as ordinary text,
+## and the content gets munched into the preceding paragraph.  The codeblock delimiter (```) as text
+## gets interpreted as a codephrase delimiter (`) plus a preceding or following empty codephrase (``).
+##     2. Github-MD is liberal in regard to what an 'indent' is, allowing 1, 2, 4, or 8 blanks, or
+## a tab.  We mostly use 2 blanks.  Doxia-markdown requires strictly 4 spaces or a tab.  Failure
+## to adhere to this requirement causes indents to be ignored or misinterpreted, leading again to
+## paragraph munching and delimiter ignoring.
+##     3. In Doxia-markdown, if you indent below a header or text paragraph, it is interpreted as
+## an implicit codeblock start.  In Github-MD, we only start codeblocks with the explicit
+## codeblock delimiter (```) and sometimes indent below text just for visual emphasis, so the
+## doxia-markdown interpretation is unwelcome.  Thus, in our rewrite, we disallow indenting below
+## text or headers.  This may make the text less pretty than the Github-MD presentation, but it
+## avoids the incorrect codeblocking.
+##     4. In Doxia-markdown, the indent of the end-codeblock delimiter must match that of the
+## begin-codeblock delimiter, or it won't be recognized and the codeblock will run on.
+##     5. Relative links need to be re-written.  '.md' files need to be changed to '.html', and
+## as best we can we will re-write named anchors referring to tags autogenerated from headers.
+## The problem with generated tags is that Github-MD forces header text to lower-case, and
+## replaces blank spaces with hyphens, while doxia-markdown leaves case unchanged, and replaces
+## blanks with underscores.  Fortunately we seem to have a culture of using link references that
+## are typographically the same as the header text, so we have some basis for fixing most links.
+##     6. H1 headers don't get named anchors generated, unlike H2 and lower headers. Don't know
+## why doxia-markdown has this deficiency, perhaps it assumes H1 will only be used once at the
+## beginning of the doc.  We will insert an explicit anchor just before the H1 headers, to fix.
+##
+## So far, we're ignoring tables and block quotes.
+##
+## This script also manages the re-writing of named files to *.tmp, then mv to replace the original file.
+
+
+import sys
+import os
+import inspect
+import re
+
+# These are the characters excluded by Markdown from use in auto-generated anchor text for Headings.
+EXCLUDED_CHARS_REGEX = r'[()[\]`"' + r"'" + r']'   # May add chars in future as needed
+
+def report_error(s) :
+    print >>sys.stderr, "ERROR: " + s 
+    print >>sys.stderr, "on line: " + str(FNR) + " in file: " + FILENAME  
+    print >>sys.stderr, inputline
+    exit -1
+
+
+def trace(msg) :
+    if TRACE :
+        print >>sys.stderr, "TRACE: " + inspect.currentframe().f_back.f_code.co_name + " : InputLine " + str(FNR) + " : " + msg
+
+class INDENT_STACK :
+    'This class maintains the indent stack during doc parsing.'
+
+    def __init__(self) :
+        self.my_stack = [ {'physical' : 0, 'logical' : 0, 'type' : 'none' } ]
+
+    def init_indent(self) :
+        del self.my_stack
+        self.my_stack = [ {'physical' : 0, 'logical' : 0, 'type' : 'none' } ]
+
+    def push_indent(self, n, new_type) :
+        #Increment the logical depth only if under a bullet type. This fixes problem #3.
+        level = self.logical_indent_level() + (self.current_type() == "bullet")  # plus 1 if true
+        self.my_stack.append( {'physical':n, 'logical':level, 'type':new_type} )
+
+    def set_current_type(self, new_type) :
+        # adjust topmost type
+        self.my_stack[-1]['type'] = new_type
+
+    def pop_indent(self) :
+        if len(self.my_stack) > 1 :
+            return self.my_stack.pop()['physical']
+        else :
+            return 0
+
+    def current_indent(self) :
+        # top of stack, physical
+        return self.my_stack[-1]['physical']
+
+    def logical_indent_level(self) :
+        # top of stack, logical
+        return self.my_stack[-1]['logical']
+
+    def current_type(self) :
+        # top of stack, type
+        return self.my_stack[-1]['type']
+
+    ## End class INDENT_STACK
+
+global indent_stack
+indent_stack = INDENT_STACK()  # single instance
+
+
+def convert_tabs(s) :
+    # Courtesy of Python, this does a real column-aware tab expansion.
+    # If this doesn't work, we'll need to go back to erroring on " \t", that is, spaces followed by tabs.
+    trace("orig length {0}".format(len(s)) )
+    ct = s.count("\t")
+    s = s.expandtabs(4)
+    trace("after {0} tab substitutions, end length is {1}".format(ct, len(s)) )
+    return s
+
+
+def fix_prefix_blanks(new_type) :
+    global inputline
+    # Fix up the indenting (prefix blanks) in inputline.  This fixes problem #2.
+    # Don't worry about blank lines here, they are filtered out before calling this method.
+    # Both uses and maintains the indent stack, which is why we need the new_type passed in.
+    prefix_blanks = re.search(r'^[\s]*', inputline)
+    if prefix_blanks :
+        prefix_blanks = prefix_blanks.group()
+        trace("After prefix-blanks match, prefix_blanks is |" + prefix_blanks + "| length is " + str(len(prefix_blanks)) )
+        prefix_blanks = convert_tabs(prefix_blanks)
+    else :
+        prefix_blanks = ""
+
+    trace("After convert_tabs, prefix_blanks is |" + prefix_blanks + "| length is " + str(len(prefix_blanks)) )
+
+    # prefix_blanks now contains the 'physical' indent of the current paragraph, after tab substitution.
+    # The indent of this paragraph may be > or == to the previous paragraph.  Those are the easy cases.
+    # If the indent is less than previous, is it equal to the indent of the next lower indented object?
+    # Or of a lower yet object?  Or is it intermediate between two lower objects currently in the stack?
+    # The latter case is an anomoly, but there's no enforcement in Github-MD.
+    # The following logic is an empirical reverse engineering, that seems adequate so far.
+    # It basically says, find a prior level of indent that this is not less than, and then pretend that
+    # the objects between it and this object weren't there.
+
+    trace("current logical_indent_level is {0} and current_indent is {1}".format(
+            indent_stack.logical_indent_level(), indent_stack.current_indent() ))
+    while len(prefix_blanks) < indent_stack.current_indent() :
+        indent_stack.pop_indent()
+    if len(prefix_blanks) > indent_stack.current_indent() :
+        indent_stack.push_indent(len(prefix_blanks), new_type)
+    else :  # len(prefix_blanks) == indent_stack.current_indent()
+        indent_stack.set_current_type(new_type)
+
+    trace(("After evaluating this line's prefix-blanks and prev_type, new logical_indent_level() is {0} " +
+           "and current_indent is {1}").format(indent_stack.logical_indent_level(), indent_stack.current_indent() ))
+
+    # Now whack off the prefix blanks, and replace with a standardized string of blanks appropriate to
+    # the logical indent level.
+    trace("Orig line is " + inputline)
+    inputline = re.sub(r'^[\s]*', BLANKS[0 : 4*indent_stack.logical_indent_level()], inputline, 1)
+    trace("New line is  " + inputline)
+
+
+def rewrite_relative_links() :
+    global inputline
+    trace("entering with line: " + inputline)
+    # Fix up the relative links in inputline.  This fixes problem #5.
+    num_links = inputline.count("](")
+    links = re.findall(r'\[[^\]]+\]\([^)]+\)', inputline)
+    num_whole_links = len(links)
+    trace("num_links = {0}, num_whole_links = {1}".format(num_links, num_whole_links))
+    if (num_links != num_whole_links) :
+        if re.search(r'\[[^\][!]*\![\s]*\[', inputline) :
+            # Nested link label expressions, with '!'.
+            # Special case where a link value is inlined into the link label,
+            # as in the first line of the base README.md file.  Bail on such lines.
+            trace("WARNING: Found nested link label expressions.")
+            return
+        else :
+            report_error("Found link split across multiple lines.  We can't process this.")
+
+    for linkitem in links :
+        pieces = re.search(r'(\[[\s`]*)([^\]]*[^\s`\]])([\s`]*\]\([\s]*)([^\s]+)([\s]*\))', linkitem).groups()
+        trace("Link: " + linkitem)
+        trace("Pieces: " + " ".join( (pieces[0],pieces[1],pieces[2],pieces[3],pieces[4]) ))
+        labeltext = pieces[1]
+        href = pieces[3]
+        trace("Extracted labeltext is: " + labeltext)
+        trace("Extracted href is: " + href)
+        if re.search(r'^http|\?', href) :
+            # Don't rewrite absolute or parameterized URLs; neither is native to this markdown book.
+            trace("skipping absolute or parameterized URL")
+            continue
+
+        # Rewrite implicit index references to explicit, so the book will work as well
+        # with 'file:///' preview as with a real web server.
+        # We are only concerned with file path names here, so split at '#' if present.
+        num_sharps = href.count("#")
+        if (num_sharps >= 2) :
+            report_error("Multiple #'s in a single link href.")
+        elif (num_sharps == 1) :
+            # Implicit index references are directory names, which seldom have a filetype suffix.
+            # On the other hand, explicit file references must have filetype, else the browser
+            # won't know what to do with it.  So if no filetype extension, assume is a directory
+            # and add 'index.html'.  Skip if this is an intra-document link.
+            if not re.search(r'^#|\.[^/#]+#', href) :
+                if not href.count("/#") : 
+                    href = re.sub(r'#', "/#", href, 1)
+                href = re.sub(r'/#', "/index.html#", href, 1)
+
+            # Fix up '.md' references.
+            href = re.sub(r'^README\.md#', "index.html#", href)
+            href = re.sub(r'/README\.md#', "/index.html#", href)
+            href = re.sub(r'\.md#', ".html#", href)
+
+        else :  # num_sharps == 0
+            # Same logic as above, just at $ instead of #.
+            if not re.search(r'\.[^/]+$', href) :
+                if not href.endswith("/") :
+                    href = href + "/"
+                href = re.sub(r'/$', "/index.html", href)
+
+            # Fix up '.md' references.
+            href = re.sub(r'^README\.md$', "index.html", href)
+            href = re.sub(r'/README\.md$', "/index.html", href)
+            href = re.sub(r'\.md$', ".html", href)
+
+        trace("After .md fixup, href is: " + href)
+
+        # Re-write named anchors referring to generated tags.
+        sharp = href.find("#")
+        if (sharp >= 0) :
+            named_anchor = href[sharp+1 : ]
+            scratch = labeltext.lower()
+            scratch = re.sub(r' ', "-", scratch)
+            scratch = re.sub(EXCLUDED_CHARS_REGEX, "", scratch)
+            if (scratch == named_anchor) :
+                trace("Found a rewritable case")
+                scratch = labeltext
+                scratch = re.sub(r' ', "_", scratch)
+                scratch = re.sub(EXCLUDED_CHARS_REGEX, "", scratch)
+                href = re.sub("#" + named_anchor, "#" + scratch, href)
+
+        trace("After anchor rewrite, href is: " + href)
+        
+        # Now swap out the bad href for the fixed one in inputline.
+        if (href != pieces[3]) :
+            # Assemble the full link string to prevent similar substrings (to href) in different contexts being substituted.
+            scratch = pieces[0] + pieces[1] + pieces[2] + href + pieces[4]
+            trace("Fixed link text is: " + scratch)
+            trace("linkitem is still:  " + linkitem)
+            k = inputline.find(linkitem)
+            inputline = inputline[ : k] + scratch + inputline[ k + len(linkitem) : ]
+            trace("Fixed inputline is: " + inputline)
+
+
+
+################################################
+# begin state machine
+
+global inputline, active_type
+BLANKS = "                                                                                    "
+TRACE = 0
+FNR = -1
+trace("Starting trace")
+
+# Github uses relative indents, but doxia wants only and exactly multiples of 4.
+# To turn the more forgiving into more regular, we must track both logical and actual indents.
+indent_stack.init_indent()
+
+# Paragraph type can be none, text, bullet, code, or heading.
+# Note 'current_type()' used in managing the logical indent level on the indent stack,
+# and 'active_type' used in the pattern recognition state machine, are deliberately different.
+active_type = "none"
+
+# Note: order of the below 'if' clauses is critically important for the state machine.
+# Don't change the order.
+
+if len(sys.argv) <= 1 :
+    report_error("Please provide names of files to be processed, as command line arguments.")
+
+for FILENAME in sys.argv[1:] :
+    infile = open(FILENAME, 'r')
+    outfile = open(FILENAME + ".tmp", 'w')
+    FNR = 0
+    H1_COUNT = 0
+    for inputline in infile :
+        FNR += 1
+        inputline = inputline.rstrip("\n")
+
+        if '](' in inputline :
+            # Detect lines with hyperlinks in them, and re-write them if necessary and possible.
+            # This is the only fall-through block, and we put it at the very beginning.
+            rewrite_relative_links();  # in inputline
+            # Fall through for further processing.
+
+        if (active_type == "code") and ("```" not in inputline) :
+            trace("in codeblock, regular line")
+            # what happens in the codeblock, stays in the codeblock
+            # Put this case first (after link detection), so we don't have to test it in all the other cases.
+            print >>outfile, inputline
+            continue
+
+        if (active_type == "code") and ("```" in inputline) :
+            trace("in codeblock, end delimiter line")
+            # detect end of codeblock
+            # This must be the second case.
+            if re.search(r'```[\s]*[^\s]', inputline) :
+                # If there's text following the end-``` on the same line, error out and fix it in the source file.
+                report_error("Text following codeblock end delimiter (```) on same line.")
+
+            if re.search(r'```.*```', inputline) :
+                # If there are two sets of triple-ticks on the same line, that's a problem too.
+                report_error("Two sets of codeblock delimiters (```) on same line.")
+
+            active_type = "none"
+            # Force the indenting of the end-``` to match the beginning. This fixes problem #4.
+            inputline = re.sub(r'^[\s]*', BLANKS[0 : 4*indent_stack.logical_indent_level()], inputline)
+            print >>outfile, inputline
+            continue
+
+        if (active_type != "code") and ("```" in inputline) :
+            trace("start codeblock, delimiter line")
+            # detect start of codeblock
+            if re.search(r'[^\s][\s]*```', inputline) :
+                # If there's text preceding the begin-``` on the same line, error out and fix it in the source file.
+                report_error("Text preceding codeblock start delimiter (```) on same line.")
+
+            if re.search(r'```.*```', inputline) :
+                # If there are two sets of triple-ticks on the same line, that's a problem too.
+                report_error("Two sets of codeblock delimiters (```) on same line.")
+
+            if active_type == "text" or active_type == "bullet" :
+                print >>outfile, ""   # Need preceding blank line before codeblock, in doxia.
+
+            active_type = "code"
+            fix_prefix_blanks(active_type)  # in inputline
+            print >>outfile, inputline
+            continue
+
+        if re.search(r'^[\s]*$', inputline) :
+            trace("blank line")
+            # detect blank lines
+            active_type = "none"
+            print >>outfile, inputline  # Perhaps this should be print "" instead?
+            continue
+
+        if re.search(r'^[\s]*([*+-]|[\d]+\.)[\s]', inputline) :
+            trace("bullet line")
+            # detect bullet line (numbered or not)
+            if (active_type == "text") :
+                print >>outfile, ""  # Need preceding blank line between text and bullet, in doxia. This fixes problem #1.
+
+            active_type = "bullet"
+            fix_prefix_blanks(active_type);  # in inputline
+            print >>outfile, inputline
+            continue
+
+        if inputline.startswith("#") :
+            trace("header line")
+            # detects header lines, which are self-delimiting, and cannot have indenting
+            # Header line resets the indenting as well as current type
+            active_type = "none"
+            indent_stack.init_indent()
+            if re.search(r'^#[^#]', inputline) :
+                # First-level headers ("H1") need explicit anchor inserted.  This fixes problem #6.
+                anchor_name = re.sub(r' ', "_", inputline[1:].strip())
+                anchor_name = re.sub(EXCLUDED_CHARS_REGEX, "", anchor_name)
+                anchor_text = '<a name="' + anchor_name + '"></a>'
+                if H1_COUNT == 0 :
+                    # Treat the first header differently - put the header after instead of before
+                    # This is necessary to preserve document metadata titling in generated html.
+                    # However, it means the title itself gets hidden above the top of window, when the link is used.
+                    H1_COUNT = 1
+                    print >>outfile, inputline
+                    print >>outfile, anchor_text
+                    print >>outfile, ""  # Anchors aren't self-delimiting, so insert a blank line after.
+                else :
+                    print >>outfile, ""  # Anchors aren't self-delimiting, so insert a blank line first.
+                    print >>outfile, anchor_text
+                    print >>outfile, inputline
+            else :
+                # H2 or deeper level of header, doxia auto-generates anchor.
+                print >>outfile, inputline
+            continue
+
+        if re.search(r'^[\s]*#', inputline) :
+            trace("header line, bad")
+            report_error("Header specification character (#) detected with indenting.  This is presumed to be an error, since it will render as text. If intentional, put a period or other printable character before it.")
+
+        ## default action -- last case in state machine switch
+        trace("text line")
+        # Everything else is text-like, and therefore continues active_type, unless none.
+        if (active_type == "none") :
+            # Start new text paragraph.
+            active_type = "text"
+            fix_prefix_blanks(active_type);  # in inputline
+            print >>outfile, inputline
+            continue
+        else :
+            # This is just a continuation of current text or bullet.
+            # Indenting is irrelevant.
+            print >>outfile, inputline
+            continue
+
+    ## end loop on inputlines
+    if (active_type == "code") :
+        report_error("Unmatched codeblock delimiter (```) detected.")
+
+    infile.close()
+    outfile.close()
+    os.rename(FILENAME + ".tmp", FILENAME)
+
+## end loop on FILENAMEs
+trace("ending trace")

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/bin/generate-md.sh
----------------------------------------------------------------------
diff --git a/site-book/bin/generate-md.sh b/site-book/bin/generate-md.sh
new file mode 100755
index 0000000..df97c76
--- /dev/null
+++ b/site-book/bin/generate-md.sh
@@ -0,0 +1,277 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# ------------------------------------------------------------------
+#
+# This script collects the *.md files and other resources needed to generate
+# a book-like collection of end-user documentation.  
+#
+# The Metron development community has chosen to do most documentation in README.md
+# files, because they are easy to write and maintain, and located near the code they
+# document. Also they are versioned along with that code, so they are always in sync
+# with the particular version being considered.
+#
+# However, the location of the various README.md files in github are not necessarily
+# obvious to non-developers, and can therefore be difficult to find and use.
+# In order to make the files easier to use as end-user documentation, we collect them
+# into a book-like collection.  It should perhaps be viewed as a collection of essays,
+# since each README.md file is written independently.
+
+## This script assumes it is running at $METRON_SOURCE/site-book/bin/
+METRON_SOURCE=`cd $(dirname $0); cd ../..; pwd`
+
+## Maintainers set EXCLUSION_LIST to a list of egrep-style regular expressions.
+## MD files whose file path that matches any of these patterns will be excluded.
+## Please note that the file paths being matched are output of 'find', rooted at
+## $METRON_SOURCE.  'Find' will start each path with './', which is matched by '^\./'.
+## Please place each regex in single quotes, and don't forget to backslash-escape
+## literal periods and other special characters if needed.
+EXCLUSION_LIST=(
+    '/site/'
+    '/site-book/'
+    '/build_utils/'
+)
+
+## This is a list of resources (eg .png files) needed to render the markdown files.
+## Each entry is a file path, relative to $METRON_SOURCE.
+## Note: any images in site-book/src/site/resources/image-archive/ will also be included.
+RESOURCE_LIST=(
+    metron-platform/metron-parsers/parser_arch.png
+    metron-platform/metron-indexing/indexing_arch.png
+    metron-platform/metron-enrichment/enrichment_arch.png
+    metron-analytics/metron-maas-service/maas_arch.png
+)
+
+## This is a list of duples, flattened into a bash array.  Even fields are relative paths to a .md file
+## that needs an href re-written to match a resource in the images/ directory.  Odd fields are the corresponding
+## one-line sed script, in single quotes, that does the rewrite.  See below for examples.
+HREF_REWRITE_LIST=(
+    metron-platform/metron-enrichment/README.md 's#(enrichment_arch.png)#(../../images/enrichment_arch.png)#g'
+    metron-platform/metron-indexing/README.md 's#(indexing_arch.png)#(../../images/indexing_arch.png)#g'
+    metron-platform/metron-parsers/README.md 's#(parser_arch.png)#(../../images/parser_arch.png)#g'
+    metron-analytics/metron-maas-service/README.md 's#(maas_arch.png)#(../../images/maas_arch.png)#g'
+)
+
+
+######################
+######################
+# utility functions
+
+# input: none
+# output: traces, if enabled
+TRACE_ENABLE=0
+function trace () {
+    if (( $TRACE_ENABLE == 1 )) ; then
+	echo "$*"
+    fi  # else do nothing
+}
+TREE_TRACE_ENABLE=0
+function tree_trace () {
+    if (( $TREE_TRACE_ENABLE == 1 )) ; then
+	echo "$*"
+    fi  # else do nothing
+}
+
+# input: cumulative directory_path, indent_level
+# output: items to site.tmp, as lines of text
+# This function is called recursively as we descend the directory tree
+# The cum_dir_path must not have a terminal "/".
+function descend () {
+    tree_trace "enter decend( $@ )"
+    local cum_dir_path
+    local -i indent
+    local open_item_exists
+    cum_dir_path="$1"
+    indent=$2
+
+    if [ -e "${cum_dir_path}"/index.md ] ; then
+	dir_name=`basename "$cum_dir_path"`
+	dir_name="${dir_name#metron-}"  #remove the "metron-" prefix if present
+	dir_name=`get_prettyname "$dir_name"`  #capitalize the remainder
+	# Is it a leaf node?
+	num_peers=`ls -d "${cum_dir_path}"/* |wc -l`
+	if (( $num_peers == 1 )) ; then #yes, it's a leaf node, do a closed item
+	    echo "${INDENTS[$indent]}<item name='${dir_name}' href='${cum_dir_path}/index.html'/>" >> ../site.tmp
+	    tree_trace "exit descend due to leaf node"
+	    return  #nothing else to process in this directory path
+	fi  #otherwise carry on with open item and child items at deeper indent
+	echo "${INDENTS[$indent]}<item name='${dir_name}' href='${cum_dir_path}/index.html' collapse='true'>" >> ../site.tmp
+	open_item_exists=1
+	indent=$(( indent + 1 ))
+    else
+	open_item_exists=0
+    fi
+    for md in "${cum_dir_path}"/*.md ; do
+	if [ ! -e "$md" ] ; then continue ; fi  #globbing sometimes gives spurious results
+	item_name=`basename -s ".md" "$md"`  #strip the suffix
+	if [ "$item_name" != "index" ] ; then
+	    echo "${INDENTS[$indent]}<item name='${item_name}' href='${cum_dir_path}/${item_name}.html'/>" >> ../site.tmp
+	fi
+    done
+    for dir in "${cum_dir_path}"/* ; do
+	if [ ! -e "$dir" ] ; then continue ; fi  #globbing sometimes gives spurious results
+	if [ -d "$dir" ] ; then
+	    descend "$dir" $indent
+	fi
+    done
+    if (( open_item_exists == 1 )) ; then
+	indent=$(( indent - 1 ))  #close the item
+	echo "${INDENTS[$indent]}</item>" >> ../site.tmp
+    fi
+    tree_trace "exit descend with indent = $indent"
+}
+
+# input: a file basename
+# output: a "pretty" human label, on stdout for Command Substitution
+# Currently just capitalize the first letter
+# In future, might do CamelCase or subst hyphens to underscores
+function get_prettyname () {
+    echo "$(tr '[:lower:]' '[:upper:]' <<< ${1:0:1})${1:1}"
+}
+
+
+######################
+## Proceed
+
+cd "$METRON_SOURCE"
+
+# Clean up generated directories
+if [ -d "$METRON_SOURCE"/site-book/src/site/markdown ] ; then
+    rm -rf "$METRON_SOURCE"/site-book/src/site/markdown ; fi
+if [ -d "$METRON_SOURCE"/site-book/src/site/resources/images ] ; then
+    rm -rf "$METRON_SOURCE"/site-book/src/site/resources/images ; fi
+mkdir -p "$METRON_SOURCE"/site-book/src/site/markdown \
+    "$METRON_SOURCE"/site-book/src/site/resources/images
+
+# cons up the exclude exec string
+cmd=""
+for exclusion in "${EXCLUSION_LIST[@]}" ; do
+    cmd="${cmd} | egrep -v '${exclusion}'"
+done
+
+# Capture the hierarchical list of .md files.
+# Take them all, not just README.md files.
+cmd="find . -name '*.md' -print ${cmd}"
+echo " "
+echo Collecting markdown files with exclusions: $cmd
+echo " "
+MD_FILE_LIST=( `eval $cmd` )
+
+# Pipe the files into the src/site/markdown directory tree
+tar cvf - "${MD_FILE_LIST[@]}" | ( cd "$METRON_SOURCE"/site-book/src/site/markdown; tar xf -  )
+
+# Grab the other resources needed
+echo " "
+echo Collecting additional resource files:
+for r in "${RESOURCE_LIST[@]}" site-book/src/site/resources/image-archive/* ; do
+    if [ ! -e "$r" ] ; then continue ; fi  #globbing sometimes gives spurious results
+    echo ./"$r"
+    cp "$r" "$METRON_SOURCE"/site-book/src/site/resources/images/
+done
+echo " "
+
+cd site-book/src/site/markdown
+
+# Rewrite hrefs for resource references, using table provided by Maintainers
+for (( i=0; i<${#HREF_REWRITE_LIST[@]} ; i+=2 )) ; do
+    echo rewriting href in "${HREF_REWRITE_LIST[$i]}" : "${HREF_REWRITE_LIST[ $(( i + 1 )) ]}"
+    case "${OSTYPE}" in
+	linux*)
+	    # Linux sed correctly parses lack of argument after -i option
+            sed -i -e "${HREF_REWRITE_LIST[ $(( i + 1 )) ]}" "${HREF_REWRITE_LIST[$i]}"
+	    ;;
+	darwin*)
+            # Mac OS X sed needs an empty-string argument after -i option to get the same result
+            sed -i '' -e "${HREF_REWRITE_LIST[ $(( i + 1 )) ]}" "${HREF_REWRITE_LIST[$i]}"
+	    ;;
+	*)
+	    echo "ERROR: Unable to determine 'sed' argument list for OS ${OSTYPE}" > /dev/stderr
+	    exit -1
+	    ;;
+    esac
+done
+echo " "
+
+# Rename "README" files to "index" files, so they will be the default doc for a site sub-directory, just
+# like README is the default doc for a github sub-directory.  This makes some internal links (to directories)
+# work instead of being broken.
+echo Renaming \"README\" files to \"index\" files.
+if (( `ls -R |grep -c 'index.md'` > 0 )) ; then
+    echo "ERROR: index.md file exists in tree already, we currently don't handle that"
+    exit -1
+fi
+find . -name README.md -execdir mv README.md index.md \;
+echo " "
+
+# Insert the tree of generated html files in the LHS menu of the site.xml
+# The problem is that we want a depth-first listing, with files before subdirectories, and "index" always first.
+# So the following logic is a little complex, but we avoid having to hardwire the tree structure -- which we
+# may go back to in the long run.
+
+BEGIN_TAG="BEGIN_MENU_TREE"
+END_TAG="END_MENU_TREE"
+INDENTS=( "" "  " "    " "      " "        " "          " "            " )
+
+echo "Generating menu tree from directory tree structure"
+echo " "
+
+# Copy the first part of the file, up to where the menu tree goes.
+sed -n -e "1,/${BEGIN_TAG}/ p" ../site.xml > ../site.tmp
+
+# Now start inserting menu tree items
+# top level of markdown tree is special
+if [ -e index.md ] ; then
+    echo "<item name='Metron' href='index.html' title='Apache Metron - Incubating' collapse='false'>" >> ../site.tmp
+    item0_exists=1
+else
+    item0_exists=0
+fi
+indent_level=1
+for md in *.md ; do
+    if [ ! -e "$md" ] ; then continue ; fi  #globbing sometimes gives spurious results
+    if [ "$md" != "index.md" ] ; then
+	item_name="${md%.*}"  #strip the suffix
+	echo "${INDENTS[$indent_level]}<item name='${item_name}' href='${item_name}.html' />" >> ../site.tmp
+    fi
+done
+for dir in * ; do
+    if [ ! -e "$dir" ] ; then continue ; fi  #globbing sometimes gives spurious results
+    if [ -d "$dir" ] ; then
+	descend "$dir" $indent_level
+    fi
+done
+if (( item0_exists == 1 )) ; then
+    echo "</item>" >> ../site.tmp
+fi
+
+# Copy the last part of the file, from the end of the menu tree.
+sed -n -e "/${END_TAG}/,"'$ p' ../site.xml >> ../site.tmp
+
+mv ../site.xml ../site.xml.bak
+mv ../site.tmp ../site.xml
+
+echo "Done."
+echo " "
+
+echo "Fixing up markdown dialect problems between Github-MD and doxia-markdown:"
+find . -name '*.md' -print -exec python "$METRON_SOURCE"/site-book/bin/fix-md-dialect.py '{}' \;
+echo "Done."
+echo " "
+
+
+exit 0

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/site/images/metron-logo.png
----------------------------------------------------------------------
diff --git a/site-book/src/site/images/metron-logo.png b/site-book/src/site/images/metron-logo.png
deleted file mode 100644
index a0bc8cb..0000000
Binary files a/site-book/src/site/images/metron-logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/site/resources/image-archive/ApacheIncubating_Logo.png
----------------------------------------------------------------------
diff --git a/site-book/src/site/resources/image-archive/ApacheIncubating_Logo.png b/site-book/src/site/resources/image-archive/ApacheIncubating_Logo.png
new file mode 100644
index 0000000..83f096c
Binary files /dev/null and b/site-book/src/site/resources/image-archive/ApacheIncubating_Logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/site/resources/image-archive/metron-logo.png
----------------------------------------------------------------------
diff --git a/site-book/src/site/resources/image-archive/metron-logo.png b/site-book/src/site/resources/image-archive/metron-logo.png
new file mode 100644
index 0000000..a0bc8cb
Binary files /dev/null and b/site-book/src/site/resources/image-archive/metron-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/site/site.xml
----------------------------------------------------------------------
diff --git a/site-book/src/site/site.xml b/site-book/src/site/site.xml
index 90f774a..ba96f27 100644
--- a/site-book/src/site/site.xml
+++ b/site-book/src/site/site.xml
@@ -16,7 +16,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project name="Falcon" xmlns="http://maven.apache.org/DECORATION/1.3.0"
+<project name="Metron" xmlns="http://maven.apache.org/DECORATION/1.3.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd">
 
@@ -29,17 +29,27 @@
     <custom>
         <fluidoSkin>
             <project>Apache Metron - Incubating</project>
-            <sideBarEnabled>false</sideBarEnabled>
+	    <topBarEnabled>false</topBarEnabled>
+            <sideBarEnabled>true</sideBarEnabled>
         </fluidoSkin>
     </custom>
 
     <bannerLeft>
         <name>Apache Metron - Incubating</name>
-        <src>./images/metron-logo.png</src>
-        <width>740px</width>
-        <height>242px</height>
+        <src>images/metron-logo.png</src>
+	<href>http://metron.incubator.apache.org/</href>
+        <width>148px</width>
+        <height>48px</height>
     </bannerLeft>
 
+    <bannerRight>
+        <name>Apache Incubating</name>
+	<src>images/ApacheIncubating_Logo.png</src>
+	<href>http://incubator.apache.org/</href>
+        <width>192px</width>
+        <height>48px</height>
+    </bannerRight>
+
     <publishDate position="right"/>
     <version position="right"/>
 
@@ -51,9 +61,61 @@
         </head>
 
         <breadcrumbs position="left">
-            <item name="Metron" title="Apache Metron - Incubating" href="index.html"/>
+            <item name="Apache" href="http://www.apache.org"/>
+            <item name="Metron-Incubating" title="Apache Metron - Incubating" href="http://metron.incubator.apache.org/"/>
+	    <item name="Documentation" title="Metron Docs" href="index.html"/>
         </breadcrumbs>
 
+	<menu name="User Documentation">
+	<!-- BEGIN_MENU_TREE - Do not remove this line, it is used for auto-insert -->
+<item name='Metron' href='index.html' title='Apache Metron - Incubating' collapse='false'>
+  <item name='Analytics' href='metron-analytics/index.html' collapse='true'>
+    <item name='Maas-service' href='metron-analytics/metron-maas-service/index.html'/>
+    <item name='Profiler' href='metron-analytics/metron-profiler/index.html'/>
+    <item name='Profiler-client' href='metron-analytics/metron-profiler-client/index.html'/>
+    <item name='Statistics' href='metron-analytics/metron-statistics/index.html' collapse='true'>
+      <item name='HLLP' href='metron-analytics/metron-statistics/HLLP.html'/>
+    </item>
+  </item>
+  <item name='Deployment' href='metron-deployment/index.html' collapse='true'>
+    <item name='Amazon-ec2' href='metron-deployment/amazon-ec2/index.html'/>
+    <item name='Ansible-docker' href='metron-deployment/packaging/docker/ansible-docker/index.html'/>
+    <item name='Rpm-docker' href='metron-deployment/packaging/docker/rpm-docker/index.html'/>
+    <item name='Packer-build' href='metron-deployment/packer-build/index.html'/>
+    <item name='Roles' href='metron-deployment/roles/index.html' collapse='true'>
+      <item name='Kibana' href='metron-deployment/roles/kibana/index.html'/>
+      <item name='Monit' href='metron-deployment/roles/monit/index.html'/>
+      <item name='Opentaxii' href='metron-deployment/roles/opentaxii/index.html'/>
+      <item name='Pcap_replay' href='metron-deployment/roles/pcap_replay/index.html'/>
+      <item name='Sensor-stubs' href='metron-deployment/roles/sensor-stubs/index.html'/>
+      <item name='Sensor-test-mode' href='metron-deployment/roles/sensor-test-mode/index.html'/>
+    </item>
+    <item name='Vagrant' href='metron-deployment/vagrant/index.html' collapse='true'>
+      <item name='Codelab-platform' href='metron-deployment/vagrant/codelab-platform/index.html'/>
+      <item name='Fastcapa-test-platform' href='metron-deployment/vagrant/fastcapa-test-platform/index.html'/>
+      <item name='Full-dev-platform' href='metron-deployment/vagrant/full-dev-platform/index.html'/>
+      <item name='Quick-dev-platform' href='metron-deployment/vagrant/quick-dev-platform/index.html'/>
+    </item>
+  </item>
+  <item name='Docker' href='metron-docker/index.html'/>
+  <item name='Platform' href='metron-platform/index.html' collapse='true'>
+    <item name='Api' href='metron-platform/metron-api/index.html'/>
+    <item name='Common' href='metron-platform/metron-common/index.html'/>
+    <item name='Data-management' href='metron-platform/metron-data-management/index.html'/>
+    <item name='Enrichment' href='metron-platform/metron-enrichment/index.html'/>
+    <item name='Indexing' href='metron-platform/metron-indexing/index.html'/>
+    <item name='Management' href='metron-platform/metron-management/index.html'/>
+    <item name='Parsers' href='metron-platform/metron-parsers/index.html'/>
+    <item name='Pcap-backend' href='metron-platform/metron-pcap-backend/index.html'/>
+  </item>
+  <item name='Sensors' href='metron-sensors/index.html' collapse='true'>
+    <item name='Fastcapa' href='metron-sensors/fastcapa/index.html'/>
+    <item name='Pycapa' href='metron-sensors/pycapa/index.html'/>
+  </item>
+</item>
+	<!-- END_MENU_TREE - Do not remove this line, it is used for auto-insert -->
+	</menu>
+
         <footer>
             © 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
             and the Apache Metron project logo are trademarks of The Apache Software Foundation.

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/test/resources/test-fix-md.txt
----------------------------------------------------------------------
diff --git a/site-book/src/test/resources/test-fix-md.txt b/site-book/src/test/resources/test-fix-md.txt
new file mode 100644
index 0000000..3a84a06
--- /dev/null
+++ b/site-book/src/test/resources/test-fix-md.txt
@@ -0,0 +1,34 @@
+
+The problem #5 (rewrite_relative_links) is particularly tricky, so this test file
+allows you to test it.  Run 
+`cp src/test/resources/test-fix-md.txt.stat src/test/resources/test-fix-md.txt`
+then
+`awk -f bin/fix-md-dialect.awk src/test/resources/test-fix-md.txt`
+The .txt file will be re-written in place.  You can check the results by comparing
+the "Should be..." lines with the lines above them.  Contrast with the original
+.stat file to see before re-write.
+
+Here [Don't rewrite abs urls](http://nowhere.foo:80/README.md) is case 1.
+Should still be               http://nowhere.foo:80/README.md
+
+Here [Fleeber](README.md) is case 2a.
+Should be      index.html
+
+Here [Fleeber](NO_README.md) is case 2b.
+Should be      NO_README.html
+
+Here [Fleeber](README.md#fleeber) is case 2c.
+Should be      index.html#Fleeber
+
+Here [Fleeber](NO_README.md#fleeber) is case 2b.
+Should be      NO_README.html#Fleeber
+
+Here [`Fleeber`](multi.md#fleeber) is case 3.
+Should be        multi.html#Fleeber
+
+Here [When All Is Lost](#when-all-is-lost) intra-document link is case 4.
+Should be               #When_All_Is_Lost
+
+Here is a combo: [Creative Nonsense](../metron-params/#creative-nonsense) and [`RPM`](../metron-params/README.md#rpm)
+Should be:                           ../metron-params/index.html#Creative_Nonsense) and [`RPM`](../metron-params/index.html#RPM)
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/test/resources/test-fix-md.txt.result
----------------------------------------------------------------------
diff --git a/site-book/src/test/resources/test-fix-md.txt.result b/site-book/src/test/resources/test-fix-md.txt.result
new file mode 100644
index 0000000..dc404bf
--- /dev/null
+++ b/site-book/src/test/resources/test-fix-md.txt.result
@@ -0,0 +1,34 @@
+
+The problem #5 (rewrite_relative_links) is particularly tricky, so this test file
+allows you to test it.  Run 
+`cp src/test/resources/test-fix-md.txt.stat src/test/resources/test-fix-md.txt`
+then
+`awk -f bin/fix-md-dialect.awk src/test/resources/test-fix-md.txt`
+The .txt file will be re-written in place.  You can check the results by comparing
+the "Should be..." lines with the lines above them.  Contrast with the original
+.stat file to see before re-write.
+
+Here [Don't rewrite abs urls](http://nowhere.foo:80/README.md) is case 1.
+Should still be               http://nowhere.foo:80/README.md
+
+Here [Fleeber](index.html) is case 2a.
+Should be      index.html
+
+Here [Fleeber](NO_README.html) is case 2b.
+Should be      NO_README.html
+
+Here [Fleeber](index.html#Fleeber) is case 2c.
+Should be      index.html#Fleeber
+
+Here [Fleeber](NO_README.html#Fleeber) is case 2b.
+Should be      NO_README.html#Fleeber
+
+Here [`Fleeber`](multi.html#Fleeber) is case 3.
+Should be        multi.html#Fleeber
+
+Here [When All Is Lost](#When_All_Is_Lost) intra-document link is case 4.
+Should be               #When_All_Is_Lost
+
+Here is a combo: [Creative Nonsense](../metron-params/index.html#Creative_Nonsense) and [`RPM`](../metron-params/index.html#RPM)
+Should be:                           ../metron-params/index.html#Creative_Nonsense) and [`RPM`](../metron-params/index.html#RPM)
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e4d54a27/site-book/src/test/resources/test-fix-md.txt.stat
----------------------------------------------------------------------
diff --git a/site-book/src/test/resources/test-fix-md.txt.stat b/site-book/src/test/resources/test-fix-md.txt.stat
new file mode 100644
index 0000000..3a84a06
--- /dev/null
+++ b/site-book/src/test/resources/test-fix-md.txt.stat
@@ -0,0 +1,34 @@
+
+The problem #5 (rewrite_relative_links) is particularly tricky, so this test file
+allows you to test it.  Run 
+`cp src/test/resources/test-fix-md.txt.stat src/test/resources/test-fix-md.txt`
+then
+`awk -f bin/fix-md-dialect.awk src/test/resources/test-fix-md.txt`
+The .txt file will be re-written in place.  You can check the results by comparing
+the "Should be..." lines with the lines above them.  Contrast with the original
+.stat file to see before re-write.
+
+Here [Don't rewrite abs urls](http://nowhere.foo:80/README.md) is case 1.
+Should still be               http://nowhere.foo:80/README.md
+
+Here [Fleeber](README.md) is case 2a.
+Should be      index.html
+
+Here [Fleeber](NO_README.md) is case 2b.
+Should be      NO_README.html
+
+Here [Fleeber](README.md#fleeber) is case 2c.
+Should be      index.html#Fleeber
+
+Here [Fleeber](NO_README.md#fleeber) is case 2b.
+Should be      NO_README.html#Fleeber
+
+Here [`Fleeber`](multi.md#fleeber) is case 3.
+Should be        multi.html#Fleeber
+
+Here [When All Is Lost](#when-all-is-lost) intra-document link is case 4.
+Should be               #When_All_Is_Lost
+
+Here is a combo: [Creative Nonsense](../metron-params/#creative-nonsense) and [`RPM`](../metron-params/README.md#rpm)
+Should be:                           ../metron-params/index.html#Creative_Nonsense) and [`RPM`](../metron-params/index.html#RPM)
+


[2/3] incubator-metron git commit: METRON-660 Fixes to get doxia markdown gen working

Posted by ce...@apache.org.
METRON-660 Fixes to get doxia markdown gen working


Project: http://git-wip-us.apache.org/repos/asf/incubator-metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metron/commit/2531b728
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metron/tree/2531b728
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metron/diff/2531b728

Branch: refs/heads/master
Commit: 2531b728b66aea1688fc3a34847c8878f80d717d
Parents: dd99533
Author: Michael Miklavcic <mi...@gmail.com>
Authored: Mon Jan 16 22:32:54 2017 -0700
Committer: cstella <ce...@gmail.com>
Committed: Mon Feb 6 15:14:51 2017 -0500

----------------------------------------------------------------------
 README.md                                       |   4 +-
 metron-deployment/amazon-ec2/README.md          |   2 +-
 .../packaging/docker/ansible-docker/README.md   |   4 +-
 .../packaging/docker/rpm-docker/README.md       |   2 +-
 metron-deployment/packer-build/README.md        |  10 +--
 site-book/pom.xml                               |  16 +++--
 site-book/site/images/metron-logo.png           | Bin 21186 -> 0 bytes
 site-book/site/site.xml                         |  62 -------------------
 site-book/src/site/images/metron-logo.png       | Bin 0 -> 21186 bytes
 site-book/src/site/site.xml                     |  62 +++++++++++++++++++
 10 files changed, 83 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index c72c1d3..92e1060 100644
--- a/README.md
+++ b/README.md
@@ -68,12 +68,12 @@ Build the full project and run tests:
 $ mvn clean install
 ```
 
-Build without tests:<br>
+Build without tests:
 ```
 $ mvn clean install -DskipTests
 ```
 
-Build with the HDP profile:<br>
+Build with the HDP profile:
 ```
 $ mvn clean install -PHDP-2.5.0.0
 ```

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/metron-deployment/amazon-ec2/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/README.md b/metron-deployment/amazon-ec2/README.md
index dd30f6e..18c1e91 100644
--- a/metron-deployment/amazon-ec2/README.md
+++ b/metron-deployment/amazon-ec2/README.md
@@ -263,7 +263,7 @@ to retry, use: --limit @playbook.retry
 
 This will occur if Apache Metron attempts to deploy more host instances than allowed by your account.  The total number of instances required for Apache Metron can be reduced by editing `deployment/amazon-ec/playbook.yml`.  Perhaps a better alternative is to request of Amazon that this limit be increased.  Amazon has some additional [advice for dealing with this error and more](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html).
 
-> You've reached the limit on the number of instances you can run concurrently. The limit depends on the instance type. For more information, see [How many instances can I run in Amazon EC2](http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2). If you need additional instances, complete the [Amazon EC2 Instance Request Form](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-ec2-instances).
+> You've reached the limit on the number of instances you can run concurrently. The limit depends on the instance type. For more information, see [How many instances can I run in Amazon EC2](http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2). If you need additional instances, complete the [Amazon EC2 Instance Request Form](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&amp;limitType=service-code-ec2-instances).
 
 ### Error: 'SSH encountered an unknown error during the connection'
 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/metron-deployment/packaging/docker/ansible-docker/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/packaging/docker/ansible-docker/README.md b/metron-deployment/packaging/docker/ansible-docker/README.md
index e00445e..6ee7618 100644
--- a/metron-deployment/packaging/docker/ansible-docker/README.md
+++ b/metron-deployment/packaging/docker/ansible-docker/README.md
@@ -4,7 +4,7 @@ It is provisioned with software required to sucessfully run the deployment scrip
 
 ## Building the Container
 1. Install Docker [https://www.docker.com/products/overview]
-2. Navigate to <project-directory>/metron-deployment/packaging/docker/ansible-docker
+2. Navigate to \<project-directory\>/metron-deployment/packaging/docker/ansible-docker
 3. Build the container `docker build -t ansible-docker:2.0.0.2 .`
 
 ## Using the Container
@@ -12,6 +12,6 @@ Full instructions are found on the wiki [https://cwiki.apache.org/confluence/pag
 
 tl;dr
 
-1. docker run -it -v <project-directory>:/root/incubator-metron ansible-docker:2.0.0.2 bash
+1. docker run -it -v \<project-directory\>:/root/incubator-metron ansible-docker:2.0.0.2 bash
 2. cd /root/incubator-metron
 3. mvn clean package -DskipTests

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/metron-deployment/packaging/docker/rpm-docker/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/packaging/docker/rpm-docker/README.md b/metron-deployment/packaging/docker/rpm-docker/README.md
index 5ab7a82..584e05f 100644
--- a/metron-deployment/packaging/docker/rpm-docker/README.md
+++ b/metron-deployment/packaging/docker/rpm-docker/README.md
@@ -4,5 +4,5 @@ It is provisioned with software required to sucessfully run the deployment scrip
 
 ## Building the Container
 1. Install Docker [https://www.docker.com/products/overview]
-2. Navigate to <project-directory>/metron-deployment/packaging/rpm-docker
+2. Navigate to \<project-directory\>/metron-deployment/packaging/rpm-docker
 3. Build the container `docker build -t rpm-docker .`

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/metron-deployment/packer-build/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/packer-build/README.md b/metron-deployment/packer-build/README.md
index eebfdb0..ee49477 100644
--- a/metron-deployment/packer-build/README.md
+++ b/metron-deployment/packer-build/README.md
@@ -16,7 +16,7 @@ Prerequisites
 
 Build Both Images
 ---------------------- 
-  Navigate to <your-project-directory>/metron-deployment/packer-build
+  Navigate to \<your-project-directory\>/metron-deployment/packer-build
   Execute bin/bento build
   
   Packer will build both images and export .box files to the ./builds directory.
@@ -32,16 +32,16 @@ Build Single Images
 Using Your New Box File
 ---------------------- 
 Modify the relevant Vagrantfile (codelab-platform or quick-dev-platform) replacing the lines:
-
+```
 <pre><code>config.vm.box = "<i>box_name</i>"
 config.ssh.insert_key = true</code></pre>
-
+```
 with
-
+```
 <pre></code>config.vm.box = "<i>test_box_name</i>"
 config.vm.box = "<i>PathToBoxfile/Boxfilename</i>"
 config.ssh.insert_key = true</code></pre>
-
+```
 Launch the image as usual.
 
 Node: Vagrant will cache boxes, you can force Vagrant to reload your box by running <code>vagrant box remove <i>test_box_name</i></code> before launching your new image.

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/site-book/pom.xml
----------------------------------------------------------------------
diff --git a/site-book/pom.xml b/site-book/pom.xml
index 74ce248..d94c46e 100644
--- a/site-book/pom.xml
+++ b/site-book/pom.xml
@@ -17,7 +17,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.apache.metron</groupId>
 	<artifactId>site-book</artifactId>
-	<packaging>pom</packaging>
+        <!-- <packaging>pom</packaging> -->
 	<name>site-book</name>
 	<parent>
 		<groupId>org.apache.metron</groupId>
@@ -40,9 +40,10 @@
 			<distribution>repo</distribution>
 		</license>
 	</licenses>
-	<modules>
+        <!--	<modules>
 		<module>site</module>
 	</modules>
+        -->
 
 	<properties>
           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -58,7 +59,7 @@
 		<dependency>
                   <groupId>org.apache.maven.doxia</groupId>
                   <artifactId>doxia-module-markdown</artifactId>
-                  <version>1.7</version>
+                  <version>1.6</version>
 		</dependency>
               </dependencies>
               <executions>
@@ -66,11 +67,14 @@
                   <goals>
                     <goal>site</goal>
                   </goals>
+                  <phase>prepare-package</phase>
 		</execution>
               </executions>
-              <configuration>
-		<skip>false</skip>
-              </configuration>
+	      <configuration>
+                    <generateProjectInfo>false</generateProjectInfo>
+                    <generateReports>false</generateReports>
+                    <skip>false</skip>
+             </configuration>
             </plugin>
 	  </plugins>
 	</build>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/site-book/site/images/metron-logo.png
----------------------------------------------------------------------
diff --git a/site-book/site/images/metron-logo.png b/site-book/site/images/metron-logo.png
deleted file mode 100644
index a0bc8cb..0000000
Binary files a/site-book/site/images/metron-logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/site-book/site/site.xml
----------------------------------------------------------------------
diff --git a/site-book/site/site.xml b/site-book/site/site.xml
deleted file mode 100644
index 90f774a..0000000
--- a/site-book/site/site.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-       http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<project name="Falcon" xmlns="http://maven.apache.org/DECORATION/1.3.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd">
-
-    <skin>
-        <groupId>org.apache.maven.skins</groupId>
-        <artifactId>maven-fluido-skin</artifactId>
-        <version>1.3.0</version>
-    </skin>
-
-    <custom>
-        <fluidoSkin>
-            <project>Apache Metron - Incubating</project>
-            <sideBarEnabled>false</sideBarEnabled>
-        </fluidoSkin>
-    </custom>
-
-    <bannerLeft>
-        <name>Apache Metron - Incubating</name>
-        <src>./images/metron-logo.png</src>
-        <width>740px</width>
-        <height>242px</height>
-    </bannerLeft>
-
-    <publishDate position="right"/>
-    <version position="right"/>
-
-    <body>
-        <head>
-            <script type="text/javascript">
-                $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
-            </script>
-        </head>
-
-        <breadcrumbs position="left">
-            <item name="Metron" title="Apache Metron - Incubating" href="index.html"/>
-        </breadcrumbs>
-
-        <footer>
-            © 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
-            and the Apache Metron project logo are trademarks of The Apache Software Foundation.
-        </footer>
-    </body>
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/site-book/src/site/images/metron-logo.png
----------------------------------------------------------------------
diff --git a/site-book/src/site/images/metron-logo.png b/site-book/src/site/images/metron-logo.png
new file mode 100644
index 0000000..a0bc8cb
Binary files /dev/null and b/site-book/src/site/images/metron-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/2531b728/site-book/src/site/site.xml
----------------------------------------------------------------------
diff --git a/site-book/src/site/site.xml b/site-book/src/site/site.xml
new file mode 100644
index 0000000..90f774a
--- /dev/null
+++ b/site-book/src/site/site.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project name="Falcon" xmlns="http://maven.apache.org/DECORATION/1.3.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd">
+
+    <skin>
+        <groupId>org.apache.maven.skins</groupId>
+        <artifactId>maven-fluido-skin</artifactId>
+        <version>1.3.0</version>
+    </skin>
+
+    <custom>
+        <fluidoSkin>
+            <project>Apache Metron - Incubating</project>
+            <sideBarEnabled>false</sideBarEnabled>
+        </fluidoSkin>
+    </custom>
+
+    <bannerLeft>
+        <name>Apache Metron - Incubating</name>
+        <src>./images/metron-logo.png</src>
+        <width>740px</width>
+        <height>242px</height>
+    </bannerLeft>
+
+    <publishDate position="right"/>
+    <version position="right"/>
+
+    <body>
+        <head>
+            <script type="text/javascript">
+                $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
+            </script>
+        </head>
+
+        <breadcrumbs position="left">
+            <item name="Metron" title="Apache Metron - Incubating" href="index.html"/>
+        </breadcrumbs>
+
+        <footer>
+            © 2015-2016 The Apache Software Foundation. Apache Metron, Metron, Apache, the Apache feather logo,
+            and the Apache Metron project logo are trademarks of The Apache Software Foundation.
+        </footer>
+    </body>
+</project>