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/23 15:55:15 UTC

[06/11] incubator-metron git commit: METRON-720 modify generate-md.sh to re-throw errors from within 'find' closes apache/incubator-metron#455

METRON-720 modify generate-md.sh to re-throw errors from within 'find' closes apache/incubator-metron#455


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

Branch: refs/heads/Metron_0.3.1
Commit: b7cd3ea82e27cde52ba81e87086f7ddaf612beaf
Parents: a6299fd
Author: mattf-horton <mf...@hortonworks.com>
Authored: Tue Feb 21 09:23:06 2017 -0500
Committer: cstella <ce...@gmail.com>
Committed: Tue Feb 21 09:23:06 2017 -0500

----------------------------------------------------------------------
 .../metron-data-management/README.md            |  16 +-
 metron-platform/metron-indexing/README.md       |   2 +-
 site-book/.gitignore                            |   1 +
 site-book/bin/fix-md-dialect.py                 |   2 +-
 site-book/bin/generate-md.sh                    | 159 ++++++++++++-------
 .../image-archive/ApacheIncubating_Logo.png     | Bin 11294 -> 0 bytes
 .../resources/image-archive/metron-logo.png     | Bin 21186 -> 0 bytes
 site-book/src/site/site.xml                     | 124 ---------------
 .../images/ApacheIncubating_Logo.png            | Bin 0 -> 11294 bytes
 .../site/src-resources/images/metron-logo.png   | Bin 0 -> 21186 bytes
 .../src-resources/templates/site.xml.template   |  80 ++++++++++
 11 files changed, 189 insertions(+), 195 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/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 42e4b91..1bb7994 100644
--- a/metron-platform/metron-data-management/README.md
+++ b/metron-platform/metron-data-management/README.md
@@ -133,7 +133,7 @@ Users also have the ability to transform and filter enrichment and threat intel
 
 As an example, we will be providing a CSV list of top domains as an enrichment and filtering the value metadata, as well as the indicator column, with Stellar expressions.
 
-````
+```
 {
   "config" : {
     "zk_quorum" : "node1:2181",
@@ -155,7 +155,7 @@ As an example, we will be providing a CSV list of top domains as an enrichment a
   },
   "extractor" : "CSV"
 }
-````
+```
 
 There are 2 property maps that work with full Stellar expressions, and 2 properties that will work with Stellar predicates.
 
@@ -167,11 +167,11 @@ There are 2 property maps that work with full Stellar expressions, and 2 propert
 | indicator_filter    | Allows additional filtering with Stellar predicates based on results from the value transformations. In this example, records whose indicator value is empty after removing the TLD will be omitted. |
 
 top-list.csv
-````
+```
 1,google.com
 2,youtube.com
 ...
-````
+```
 
 Running a file import with the above data and extractor configuration would result in the following 2 extracted data records:
 
@@ -182,14 +182,14 @@ Running a file import with the above data and extractor configuration would resu
 
 Similar to the parser framework, providing a Zookeeper quorum via the zk_quorum property will enable Stellar to access properties that reside in the global config.
 Expanding on our example above, if the global config looks as follows:
-````
+```
 {
     "global_property" : "metron-ftw"
 }
-````
+```
 
 And we expand our value_tranform:
-````
+```
 ...
     "value_transform" : {
        "domain" : "DOMAIN_REMOVE_TLD(domain)",
@@ -197,7 +197,7 @@ And we expand our value_tranform:
     },
 ...
 
-````
+```
 
 The resulting value data would look like the following:
 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/metron-platform/metron-indexing/README.md
----------------------------------------------------------------------
diff --git a/metron-platform/metron-indexing/README.md b/metron-platform/metron-indexing/README.md
index cbe7a76..5296ea0 100644
--- a/metron-platform/metron-indexing/README.md
+++ b/metron-platform/metron-indexing/README.md
@@ -12,7 +12,7 @@ By default, this topology writes out to both HDFS and one of
 Elasticsearch and Solr.
 
 Indices are written in batch and the batch size is specified in the
-[Indexing Config](../metron-enrichment) via the `batchSize` parameter.
+[Sensor Indexing Configuration](#sensor-indexing-configuration) via the `batchSize` parameter.
 This config is variable by sensor type.
 
 ## Indexing Architecture

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/site-book/.gitignore
----------------------------------------------------------------------
diff --git a/site-book/.gitignore b/site-book/.gitignore
index 90e4c61..1a008f8 100644
--- a/site-book/.gitignore
+++ b/site-book/.gitignore
@@ -12,6 +12,7 @@ target/
 *.settings
 *.metadata
 *hbase-site.xml
+site.xml
 *.log
 *.swp
 *.tmp

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/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
index 23ce42a..d594ca2 100755
--- a/site-book/bin/fix-md-dialect.py
+++ b/site-book/bin/fix-md-dialect.py
@@ -65,7 +65,7 @@ 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
+    exit(1)
 
 
 def trace(msg) :

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/site-book/bin/generate-md.sh
----------------------------------------------------------------------
diff --git a/site-book/bin/generate-md.sh b/site-book/bin/generate-md.sh
index 623e141..14ddb54 100755
--- a/site-book/bin/generate-md.sh
+++ b/site-book/bin/generate-md.sh
@@ -32,6 +32,10 @@
 # into a book-like collection.  It should perhaps be viewed as a collection of essays,
 # since each README.md file is written independently.
 
+
+## fail fast in the event of a failure of any command in this script
+set -e
+
 ## This script assumes it is running at $METRON_SOURCE/site-book/bin/
 METRON_SOURCE=`cd $(dirname $0); cd ../..; pwd`
 
@@ -49,7 +53,7 @@ EXCLUSION_LIST=(
 
 ## 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.
+## Note: any images in site-book/src/site/src-resources/images/ will also be included.
 RESOURCE_LIST=(
     metron-platform/metron-parsers/parser_arch.png
     metron-platform/metron-indexing/indexing_arch.png
@@ -67,6 +71,8 @@ HREF_REWRITE_LIST=(
     metron-analytics/metron-maas-service/README.md 's#(maas_arch.png)#(../../images/maas_arch.png)#g'
 )
 
+TEMPLATES_DIR="$METRON_SOURCE/site-book/src/site/src-resources/templates"
+
 
 ######################
 ######################
@@ -77,18 +83,21 @@ HREF_REWRITE_LIST=(
 TRACE_ENABLE=0
 function trace () {
     if (( $TRACE_ENABLE == 1 )) ; then
-	echo "$*"
+        echo "$*"
     fi  # else do nothing
 }
 TREE_TRACE_ENABLE=0
 function tree_trace () {
     if (( $TREE_TRACE_ENABLE == 1 )) ; then
-	echo "$*"
+        echo "$*"
     fi  # else do nothing
 }
 
+# file used for storing error messages during re-write routine
+SCRATCH_ERR_FILE_NAME="$METRON_SOURCE/site-book/src/site/errout.dat"
+
 # input: cumulative directory_path, indent_level
-# output: items to site.tmp, as lines of text
+# output: items to site.xml, 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 () {
@@ -100,38 +109,39 @@ function descend () {
     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 ))
+        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.xml
+            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.xml
+        open_item_exists=1
+        indent=$(( indent + 1 ))
     else
-	open_item_exists=0
+        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
+        if [ ! -e "$md" ] ; then continue ; fi  #globbing sometimes gives spurious results
+        item_name=`basename "$md"`
+	item_name="${item_name%.md}"  #strip the extension
+        if [ "$item_name" != "index" ] ; then
+            echo "${INDENTS[$indent]}<item name='${item_name}' href='${cum_dir_path}/${item_name}.html'/>" >> ../site.xml
+        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
+        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
+        indent=$(( indent - 1 ))  #close the item
+        echo "${INDENTS[$indent]}</item>" >> ../site.xml
     fi
     tree_trace "exit descend with indent = $indent"
 }
@@ -144,17 +154,37 @@ function get_prettyname () {
     echo "$(tr '[:lower:]' '[:upper:]' <<< ${1:0:1})${1:1}"
 }
 
+# This function, with the following traps, cleans up before exiting, if interrupted during the re-write routine
+function sig_handle () {
+    exitCode=${1:-0}
+    rm -f "$SCRATCH_ERR_FILE_NAME"
+    echo "ERROR: EARLY TERMINATION with error code $exitCode" ${2:+"due to $2"}
+    exit $exitCode
+}
+trap 'sig_handle 129 SIGHUP'  SIGHUP
+trap 'sig_handle 130 SIGINT'  SIGINT
+trap 'sig_handle 143 SIGTERM' SIGTERM
+trap 'sig_handle $? ERR'      ERR
+
 
 ######################
 ## Proceed
 
 cd "$METRON_SOURCE"
 
-# Clean up generated directories
-if [ -d "$METRON_SOURCE"/site-book/src/site/markdown ] ; then
+# Validate that the src/site directory is writable for generated content
+if [ ! -w "site-book/src/site" ]; then
+    echo "ERROR: 'site-book/src/site' is not writable" > /dev/stderr
+    exit 126
+fi
+
+# Clean up generated directories and files in src/site/
+if [ -e "$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
+if [ -e "$METRON_SOURCE"/site-book/src/site/resources/images ] ; then
     rm -rf "$METRON_SOURCE"/site-book/src/site/resources/images ; fi
+if [ -e "$METRON_SOURCE"/site-book/src/site/site.xml ] ; then
+    rm -f "$METRON_SOURCE"/site-book/src/site/site.xml; fi
 mkdir -p "$METRON_SOURCE"/site-book/src/site/markdown \
     "$METRON_SOURCE"/site-book/src/site/resources/images
 
@@ -178,7 +208,7 @@ tar cvf - "${MD_FILE_LIST[@]}" | ( cd "$METRON_SOURCE"/site-book/src/site/markdo
 # Grab the other resources needed
 echo " "
 echo Collecting additional resource files:
-for r in "${RESOURCE_LIST[@]}" site-book/src/site/resources/image-archive/* ; do
+for r in "${RESOURCE_LIST[@]}" site-book/src/site/src-resources/images/* ; do
     if [ ! -e "$r" ] ; then continue ; fi  #globbing sometimes gives spurious results
     echo ./"$r"
     cp "$r" "$METRON_SOURCE"/site-book/src/site/resources/images/
@@ -191,18 +221,18 @@ cd site-book/src/site/markdown
 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
+        linux*)
+            # Linux sed correctly parses lack of argument after -i option
             sed -i -e "${HREF_REWRITE_LIST[ $(( i + 1 )) ]}" "${HREF_REWRITE_LIST[$i]}"
-	    ;;
-	darwin*)
+            ;;
+        darwin*)
             # MacOS 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
-	    ;;
+            ;;
+        *)
+            echo "ERROR: Unable to determine 'sed' argument list for OS ${OSTYPE}" > /dev/stderr
+            exit 126
+            ;;
     esac
 done
 echo " "
@@ -213,15 +243,15 @@ echo " "
 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
+    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
+# Insert the tree of generated html files in the LHS nav 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.
+# And we synthesize the page labels in the nav tree from the directory paths.
+# So the following logic is a little complex, but we avoid having to hardwire the tree structure.
 
 BEGIN_TAG="BEGIN_MENU_TREE"
 END_TAG="END_MENU_TREE"
@@ -231,12 +261,12 @@ 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
+sed -n -e "1,/${BEGIN_TAG}/ p" "$TEMPLATES_DIR"/site.xml.template > ../site.xml
 
 # 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
+    echo "<item name='Metron' href='index.html' title='Apache Metron - Incubating' collapse='false'>" >> ../site.xml
     item0_exists=1
 else
     item0_exists=0
@@ -245,33 +275,40 @@ 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
+        item_name="${md%.md}"  #strip the extension
+        echo "${INDENTS[$indent_level]}<item name='${item_name}' href='${item_name}.html' />" >> ../site.xml
     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
+        descend "$dir" $indent_level
     fi
 done
 if (( item0_exists == 1 )) ; then
-    echo "</item>" >> ../site.tmp
+    echo "</item>" >> ../site.xml
 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
+sed -n -e "/${END_TAG}/,"'$ p' "$TEMPLATES_DIR"/site.xml.template >> ../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 " "
-
+# Detecting errors from a `find -exec` command is difficult.  We do it using an intermediary file.
+rm -f "$SCRATCH_ERR_FILE_NAME"
+find . -name '*.md' -print -exec python "$METRON_SOURCE"/site-book/bin/fix-md-dialect.py '{}' \; 2> "$SCRATCH_ERR_FILE_NAME"
+errlines=`wc -l "$SCRATCH_ERR_FILE_NAME"`
+if (( ${errlines% *} > 0 )) ; then
+    echo "ERROR OR ERRORS DETECTED:"
+    cat "$SCRATCH_ERR_FILE_NAME"
+    rm -f "$SCRATCH_ERR_FILE_NAME"
+    exit 1
+else
+    rm -f "$SCRATCH_ERR_FILE_NAME"
+    echo "Done."
+    echo " "
+    exit 0
+fi
 
-exit 0

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/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
deleted file mode 100644
index 83f096c..0000000
Binary files a/site-book/src/site/resources/image-archive/ApacheIncubating_Logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/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
deleted file mode 100644
index a0bc8cb..0000000
Binary files a/site-book/src/site/resources/image-archive/metron-logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/site-book/src/site/site.xml
----------------------------------------------------------------------
diff --git a/site-book/src/site/site.xml b/site-book/src/site/site.xml
deleted file mode 100644
index ba96f27..0000000
--- a/site-book/src/site/site.xml
+++ /dev/null
@@ -1,124 +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="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">
-
-    <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>
-	    <topBarEnabled>false</topBarEnabled>
-            <sideBarEnabled>true</sideBarEnabled>
-        </fluidoSkin>
-    </custom>
-
-    <bannerLeft>
-        <name>Apache Metron - Incubating</name>
-        <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"/>
-
-    <body>
-        <head>
-            <script type="text/javascript">
-                $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
-            </script>
-        </head>
-
-        <breadcrumbs position="left">
-            <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.
-        </footer>
-    </body>
-</project>

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

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

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/b7cd3ea8/site-book/src/site/src-resources/templates/site.xml.template
----------------------------------------------------------------------
diff --git a/site-book/src/site/src-resources/templates/site.xml.template b/site-book/src/site/src-resources/templates/site.xml.template
new file mode 100644
index 0000000..85a61e1
--- /dev/null
+++ b/site-book/src/site/src-resources/templates/site.xml.template
@@ -0,0 +1,80 @@
+<?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="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">
+
+    <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>
+	    <topBarEnabled>false</topBarEnabled>
+            <sideBarEnabled>true</sideBarEnabled>
+        </fluidoSkin>
+    </custom>
+
+    <bannerLeft>
+        <name>Apache Metron - Incubating</name>
+        <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"/>
+
+    <body>
+        <head>
+            <script type="text/javascript">
+                $( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );
+            </script>
+        </head>
+
+        <breadcrumbs position="left">
+            <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 -->
+            <!-- The nav tree contents are machine generated into this location -->
+	<!-- 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.
+        </footer>
+    </body>
+</project>