This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-training.git


The following commit(s) were added to refs/heads/master by this push:
     new 945c6d8  Initial commit of the website generation with an initial 
content skeleton inherited from the PLC4X podling.
945c6d8 is described below

commit 945c6d854fa4a29488171536d0d3b81d2e346d77
Author: Christofer Dutz <[email protected]>
AuthorDate: Wed Mar 20 15:41:05 2019 +0100

    Initial commit of the website generation with an initial content skeleton 
inherited from the PLC4X podling.
---
 .gitignore                                         | 134 ++++++
 .mvn/extensions.xml                                |  36 ++
 .mvn/wrapper/MavenWrapperDownloader.java           | 117 +++++
 .mvn/wrapper/maven-wrapper.properties              |  19 +
 Jenkinsfile                                        | 174 +++++++
 mvnw                                               | 305 ++++++++++++
 mvnw.cmd                                           | 172 +++++++
 pom.xml                                            | 521 +++++++++++++++++++++
 src/remote-resources/NOTICE                        |  26 +
 src/site/asciidoc/developers/building.adoc         |  71 +++
 src/site/asciidoc/developers/ci.adoc               |  33 ++
 src/site/asciidoc/developers/contributing.adoc     | 117 +++++
 src/site/asciidoc/developers/decisions.adoc        |  66 +++
 src/site/asciidoc/developers/issues.adoc           |  20 +
 src/site/asciidoc/developers/team.adoc             |  34 ++
 src/site/asciidoc/developers/website.adoc          | 159 +++++++
 src/site/asciidoc/developers/wiki.adoc             |  20 +
 src/site/asciidoc/index.adoc                       |  65 +++
 .../resources/css/bootstrap-responsive.min.css     |  20 +
 src/site/resources/css/site.css                    |  91 ++++
 .../contributing-github-create-pull-request.png    | Bin 0 -> 112177 bytes
 .../resources/images/contributing-github-fork.png  | Bin 0 -> 96553 bytes
 src/site/resources/images/team/cdutz.png           | Bin 0 -> 27791 bytes
 src/site/site.xml                                  | 123 +++++
 tools/clean-site.sh                                |  35 ++
 25 files changed, 2358 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..17a5068
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,134 @@
+.idea/**
+*.iml
+
+# Created by .ignore support plugin (hsz.mobi)
+### Maven template
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+### Eclipse template
+
+.metadata
+bin/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
+.cproject
+
+# CDT- autotools
+.autotools
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Annotation Processing
+.apt_generated/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+### JetBrains template
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, 
CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn.  Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
new file mode 100644
index 0000000..c7371ea
--- /dev/null
+++ b/.mvn/extensions.xml
@@ -0,0 +1,36 @@
+<?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.
+
+-->
+<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0";
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+            xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 
http://maven.apache.org/xsd/core-extensions-1.0.0.xsd";>
+
+  <!-- Currently causing a NPE when executing goals not bound to a specific 
maven lifecycle phase -->
+  <!--extension>
+    <groupId>com.soebes.maven.extensions</groupId>
+    <artifactId>maven-buildtime-profiler</artifactId>
+    <version>0.2.0</version>
+  </extension-->
+  <extension>
+    <groupId>fr.jcgay.maven</groupId>
+    <artifactId>maven-profiler</artifactId>
+    <version>2.6</version>
+  </extension>
+
+</extensions>
\ No newline at end of file
diff --git a/.mvn/wrapper/MavenWrapperDownloader.java 
b/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..69e2ece
--- /dev/null
+++ b/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed 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.
+ */
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.2";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' 
is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = 
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/";
+        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + " .jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a 
downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+        ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+        ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default 
download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + 
baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it 
contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, 
MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if(mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new 
FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = 
mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + 
MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if(mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), 
MAVEN_WRAPPER_JAR_PATH);
+        if(!outputFile.getParentFile().exists()) {
+            if(!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                    "- ERROR creating output directory '" + 
outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + 
outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File 
destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && 
System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
\ No newline at end of file
diff --git a/.mvn/wrapper/maven-wrapper.properties 
b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..e897577
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,19 @@
+# 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.
+
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.2/maven-wrapper-0.5.2.jar
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..f7804b8
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,174 @@
+#!groovy
+
+/*
+ *
+ *  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.
+ *
+ */
+pipeline {
+
+    agent {
+        node {
+            label 'git-websites'
+        }
+    }
+
+    environment {
+        // Test failures will be handled by the jenkins junit steps and mark 
the build as unstable.
+        MVN_TEST_FAIL_IGNORE = '-Dmaven.test.failure.ignore=true'
+    }
+
+    tools {
+        maven 'Maven 3 (latest)'
+        jdk 'JDK 1.8 (latest)'
+    }
+
+    options {
+        // Kill this job after one hour.
+        timeout(time: 1, unit: 'HOURS')
+        // When we have test-fails e.g. we don't need to run the remaining 
steps
+        skipStagesAfterUnstable()
+        buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: 
'3'))
+    }
+
+    stages {
+        stage('Initialization') {
+            steps {
+                echo 'Building Branch: ' + env.BRANCH_NAME
+                echo 'Using PATH = ' + env.PATH
+            }
+        }
+
+        stage('Cleanup') {
+            steps {
+                echo 'Cleaning up the workspace'
+                deleteDir()
+            }
+        }
+
+        stage('Checkout') {
+            steps {
+                echo 'Checking out branch ' + env.BRANCH_NAME
+                checkout scm
+            }
+        }
+
+        stage('Build site') {
+            steps {
+                echo 'Building Site'
+                sh 'mvn site'
+            }
+        }
+
+        stage('Stage site') {
+            steps {
+                echo 'Staging Site'
+                // Build a directory containing the aggregated website.
+                sh 'mvn site:stage'
+                // Make sure the script is executable.
+                sh 'chmod +x tools/clean-site.sh'
+                // Remove some redundant resources, which shouldn't be 
required.
+                sh 'tools/clean-site.sh'
+            }
+        }
+
+        stage('Deploy site') {
+            when {
+                branch 'master'
+            }
+            steps {
+                echo 'Deploying Site'
+                // Publish the site with the scm-publish plugin.
+                sh 'mvn scm-publish:publish-scm'
+            }
+        }
+    }
+
+    // Send out notifications on unsuccessful builds.
+    post {
+        // If this build failed, send an email to the list.
+        failure {
+            script {
+                if(env.BRANCH_NAME == "develop") {
+                    emailext(
+                        subject: "[BUILD-FAILURE]: Job '${env.JOB_NAME} 
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
+                        body: """
+BUILD-FAILURE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] 
[${env.BUILD_NUMBER}]':
+
+Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} 
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
+""",
+                        to: "[email protected]"
+                    )
+                }
+            }
+        }
+
+        // If this build didn't fail, but there were failing tests, send an 
email to the list.
+        unstable {
+            script {
+                if(env.BRANCH_NAME == "develop") {
+                    emailext(
+                        subject: "[BUILD-UNSTABLE]: Job '${env.JOB_NAME} 
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
+                        body: """
+BUILD-UNSTABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] 
[${env.BUILD_NUMBER}]':
+
+Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} 
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
+""",
+                        to: "[email protected]"
+                    )
+                }
+            }
+        }
+
+        // Send an email, if the last build was not successful and this one is.
+        success {
+            // Cleanup the build directory if the build was successful
+            // (in this cae we probably don't have to do any post-build 
analysis)
+            deleteDir()
+            script {
+                if ((env.BRANCH_NAME == "develop") && 
(currentBuild.previousBuild != null) && (currentBuild.previousBuild.result != 
'SUCCESS')) {
+                    emailext (
+                        subject: "[BUILD-STABLE]: Job '${env.JOB_NAME} 
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
+                        body: """
+BUILD-STABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]':
+
+Is back to normal.
+""",
+                        to: "[email protected]"
+                    )
+                }
+            }
+        }
+
+        // This block might become interesting if development is done on a 
branch other than master.
+        /*always {
+            script {
+                if(env.BRANCH_NAME == "master") {
+                    emailext(
+                        subject: "[COMMIT-TO-MASTER]: A commit to the master 
branch was made'",
+                        body: """
+COMMIT-TO-MASTER: A commit to the master branch was made:
+
+Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} 
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
+""",
+                        to: "[email protected]"
+                    )
+                }
+            }
+        }*/
+    }
+
+}
\ No newline at end of file
diff --git a/mvnw b/mvnw
new file mode 100755
index 0000000..197b608
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,305 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# 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.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to 
/Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ 
]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from 
Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in 
binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ "$MVNW_REPOURL" = true]; then
+      
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.2/maven-wrapper-0.5.2.jar"
+    else
+      
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.2/maven-wrapper-0.5.2.jar";
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD 
"$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" 
"$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; 
then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; 
then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader 
"$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") 
$MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" 
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
\ No newline at end of file
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..025217a
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,172 @@
+@REM 
----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM 
----------------------------------------------------------------------------
+
+@REM 
----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM 
----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd 
ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another 
setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder 
".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto 
endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do 
set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set 
DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.2/maven-wrapper-0.5.2.jar";
+
+FOR /F "tokens=1,2 delims==" %%A IN 
("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from 
Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in 
binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+       if not "%MVNW_REPOURL%" == "" (
+         SET 
DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.2/maven-wrapper-0.5.2.jar"
+       )
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+       echo Downloading from: %DOWNLOAD_URL%
+
+    powershell -Command "&{"^
+               "$webclient = new-object System.Net.WebClient;"^
+               "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and 
[string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+               "$webclient.Credentials = new-object 
System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+               "}"^
+               "[Net.ServicePointManager]::SecurityProtocol = 
[Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', 
'%WRAPPER_JAR%')"^
+               "}"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% 
-classpath %WRAPPER_JAR% 
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% 
%MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd 
ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..3bc5b4e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,521 @@
+<?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:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+         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>
+
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>21</version>
+  </parent>
+
+  <groupId>org.apache.training</groupId>
+  <artifactId>training-website</artifactId>
+  <version>0.4.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <name>Training</name>
+  <description>
+    Write something sensible here ...
+  </description>
+  <url>https://training.apache.org</url>
+  <inceptionYear>2019</inceptionYear>
+
+  <scm>
+    
<connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</connection>
+    
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</developerConnection>
+    <url>https://github.com/apache/incubator-trainingx</url>
+    <tag>HEAD</tag>
+  </scm>
+
+  <!-- Only configure the site distribution as the rest is handled by the 
apache parent -->
+  <distributionManagement>
+    <site>
+      <id>apache.website</id>
+      
<url>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</url>
+    </site>
+  </distributionManagement>
+
+  <issueManagement>
+    <system>Jira</system>
+    <url>https://issues.apache.org/jira/browse/TRAINING</url>
+  </issueManagement>
+
+  <mailingLists>
+    <mailingList>
+      <name>Apache Training Developer List</name>
+      <subscribe>[email protected]</subscribe>
+      <unsubscribe>[email protected]</unsubscribe>
+      <post>[email protected]</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/training-dev/</archive>
+    </mailingList>
+    <mailingList>
+      <name>Apache Training Commits List</name>
+      <subscribe>[email protected]</subscribe>
+      <unsubscribe>[email protected]</unsubscribe>
+      <post>[email protected]</post>
+      
<archive>http://mail-archives.apache.org/mod_mbox/training-commits/</archive>
+    </mailingList>
+  </mailingLists>
+
+  <properties>
+    <java.version>1.8</java.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
+
+    <!-- Site properties -->
+    <reflow.skin.version>1.5.0</reflow.skin.version>
+    <fontawesome.version>5.2.0</fontawesome.version>
+  </properties>
+
+  <modules>
+  </modules>
+
+  <build>
+    <plugins>
+      <!-- Check if all source files have the required apache license headers 
-->
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>license-check</id>
+            <phase>verify</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <excludes>
+            <!-- Git related files -->
+            <exclude>**/.git/**</exclude>
+            <exclude>**/.gitignore</exclude>
+
+            <!-- Maven related files -->
+            <exclude>**/target/**</exclude>
+
+            <!-- Eclipse related files -->
+            <exclude>**/.project</exclude>
+            <exclude>**/.settings/**</exclude>
+            <exclude>**/.classpath</exclude>
+
+            <!-- IntelliJ related files -->
+            <exclude>**/.idea/**</exclude>
+            <exclude>**/*.iml</exclude>
+
+            <!-- Asciidoctor generated files -->
+            <exclude>**/.asciidoctor/**</exclude>
+
+            <!-- Jenkins build related files -->
+            <exclude>.repository/**</exclude>
+
+            <!-- JSON doesn't like comments -->
+            <exclude>**/*.json</exclude>
+
+            <!-- Output of the profiler maven extension -->
+            <exclude>**/.profiler/**</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+
+      <!-- Generate the legally required text files in the jars -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>process-resource-bundles</id>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <resourceBundles>
+                <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
+                
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+                <!-- Will generate META-INF/DISCLAIMER  -->
+                
<resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
+              </resourceBundles>
+              <!-- Content in this directory will be appended to generated 
resources -->
+              
<appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!--
+        ===================================
+        ==                               ==
+        ==    SITE GENERATION PLUGINS    ==
+        ==                               ==
+        ===================================
+
+        Starting here the following plugins are used for generating the 
projects website.
+
+        Most of the complexity is due to the fact that we selected 
"localResouces" in the site.xml
+        This causes the generated output not to rely on external resources. 
Therefore we have to
+        manually take care of fetching and packaging these external resources 
with the generated site.
+      -->
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>unpack</id>
+            <!-- Only execute this for the parent module -->
+            <inherited>false</inherited>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>io.github.devacfr.maven.skins</groupId>
+                  <artifactId>reflow-default-webdeps</artifactId>
+                  <version>${reflow.skin.version}</version>
+                  <type>jar</type>
+                  <overWrite>false</overWrite>
+                  <includes>
+                    **/css/bootstrap.min.css,
+                    **/css/fontawesome/*,
+                    **/js/*.js,
+                    **/js/languages/*,
+                    **/js/styles/default.min.css
+                  </includes>
+                </artifactItem>
+              </artifactItems>
+              
<outputDirectory>${project.build.directory}/site</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!--
+        Replace the bootstrap css with the version of the theme
+      -->
+      <plugin>
+        <groupId>com.googlecode.maven-download-plugin</groupId>
+        <artifactId>download-maven-plugin</artifactId>
+        <version>1.4.1</version>
+        <executions>
+          <execution>
+            <id>get-fontawesome</id>
+            <!-- Only execute this for the parent module -->
+            <inherited>false</inherited>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>wget</goal>
+            </goals>
+            <configuration>
+              
<url>https://use.fontawesome.com/releases/v${fontawesome.version}/fontawesome-free-${fontawesome.version}-web.zip</url>
+              <unpack>true</unpack>
+              
<outputDirectory>${project.build.directory}/dependency/fontawesome</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>copy-site-resources</id>
+            <!-- Only execute this for the parent module -->
+            <inherited>false</inherited>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              
<outputDirectory>${project.build.directory}/site</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>
+                    
${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web
+                  </directory>
+                  <includes>
+                    <include>css/all.min.css</include>
+                  </includes>
+                </resource>
+                <resource>
+                  <directory>
+                    
${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web/webfonts
+                  </directory>
+                  
<targetPath>${project.build.directory}/site/fonts</targetPath>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!--
+        The bootstrap uses "fonts" as directory for locating fonts and 
fontawesome uses "webfonts".
+        This plugin updates the css to also use "fonts".
+      -->
+      <plugin>
+        <groupId>com.google.code.maven-replacer-plugin</groupId>
+        <artifactId>replacer</artifactId>
+        <version>1.5.3</version>
+        <executions>
+          <execution>
+            <id>streamline-font-urls</id>
+            <!-- Only execute this for the parent module -->
+            <inherited>false</inherited>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>replace</goal>
+            </goals>
+            <configuration>
+              <file>${project.build.directory}/site/css/all.min.css</file>
+              <replacements>
+                <replacement>
+                  <token>../webfonts/</token>
+                  <value>../fonts/</value>
+                </replacement>
+              </replacements>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!--
+        Make the maven-site-plugin stage the output in the "asf-site" branch
+      -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-scm-publish-plugin</artifactId>
+        <configuration>
+          <!-- mono-module doesn't require site:stage -->
+          <content>${project.build.directory}/staging</content>
+          <!-- branch where to deploy -->
+          <scmBranch>asf-site</scmBranch>
+        </configuration>
+      </plugin>
+    </plugins>
+
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <!--
+                Make rat output the files with missing licensed directly into 
the
+                build output (This way we don't have to look into the rat.txt 
to find
+                out which ones)
+            -->
+            <consoleOutput>true</consoleOutput>
+          </configuration>
+        </plugin>
+
+        <!-- Configure the Site generation -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-site-plugin</artifactId>
+          <configuration>
+            
<!--templateFile>${session.executionRootDirectory}/src/site/template/site.vm</templateFile-->
+            <generateReports>true</generateReports>
+            <generateSitemap>true</generateSitemap>
+            <relativizeDecorationLinks>false</relativizeDecorationLinks>
+            <locales>en</locales>
+            <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
+            
<outputEncoding>${project.reporting.outputencoding}</outputEncoding>
+            <!--
+              IntelliJ can't find the asciidoc config option in the site 
plugin, which is correct.
+              However this config section is used by the asciidoctor site 
plugin extension. So plead
+              ignore this error, it's actually ok.
+            -->
+            <asciidoc>
+              <attributes>
+                <source-highlighter>prettify</source-highlighter>
+                
<imagesoutdir>${project.build.directory}/site/images</imagesoutdir>
+              </attributes>
+              <requires>
+                <require>asciidoctor-diagram</require>
+              </requires>
+            </asciidoc>
+          </configuration>
+          <dependencies>
+            <!-- All dependencies needed by the reflow skin -->
+            <dependency>
+              <groupId>io.github.devacfr.maven.skins</groupId>
+              <artifactId>reflow-velocity-tools</artifactId>
+              <version>${reflow.skin.version}</version>
+            </dependency>
+            <!-- add support for scm/git site deployment -->
+            <dependency>
+              <groupId>org.apache.maven.wagon</groupId>
+              <artifactId>wagon-scm</artifactId>
+              <version>2.12</version>
+            </dependency>
+            <dependency>
+              <groupId>org.apache.maven.scm</groupId>
+              <artifactId>maven-scm-api</artifactId>
+              <version>1.9.5</version>
+            </dependency>
+            <dependency>
+              <groupId>org.apache.maven.scm</groupId>
+              <artifactId>maven-scm-manager-plexus</artifactId>
+              <version>1.9.5</version>
+            </dependency>
+            <dependency>
+              <groupId>org.apache.maven.scm</groupId>
+              <artifactId>maven-scm-provider-gitexe</artifactId>
+              <version>1.9.5</version>
+            </dependency>
+            <!-- Add support for asciidoctor -->
+            <dependency>
+              <groupId>org.asciidoctor</groupId>
+              <artifactId>asciidoctor-maven-plugin</artifactId>
+              <version>1.5.7.1</version>
+            </dependency>
+            <dependency>
+              <groupId>org.jruby</groupId>
+              <artifactId>jruby-complete</artifactId>
+              <version>9.1.13.0</version>
+            </dependency>
+            <dependency>
+              <groupId>org.asciidoctor</groupId>
+              <artifactId>asciidoctorj</artifactId>
+              <version>1.5.6</version>
+            </dependency>
+            <dependency>
+              <groupId>org.asciidoctor</groupId>
+              <artifactId>asciidoctorj-diagram</artifactId>
+              <version>1.5.4.1</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+
+  <reporting>
+    <plugins>
+    </plugins>
+  </reporting>
+
+  <!-- Make Snapshots of Apache projects available -->
+  <repositories>
+    <repository>
+      <id>apache-snapshots</id>
+      <url>https://repository.apache.org/content/repositories/snapshots</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <profiles>
+    <profile>
+      <id>only-eclipse</id>
+      <activation>
+        <property>
+          <name>m2e.version</name>
+        </property>
+      </activation>
+      <build>
+        <pluginManagement>
+          <plugins>
+            <!--
+              This is a fake plugin which is used to tell m2e (Eclipse) how
+              to process this maven project.
+            -->
+            <plugin>
+              <groupId>org.eclipse.m2e</groupId>
+              <artifactId>lifecycle-mapping</artifactId>
+              <version>1.0.0</version>
+              <configuration>
+                <lifecycleMappingMetadata>
+                  <pluginExecutions>
+                    <pluginExecution>
+                      <pluginExecutionFilter>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-remote-resources-plugin</artifactId>
+                        <versionRange>[1.0.0,)</versionRange>
+                        <goals>
+                          <goal>process</goal>
+                        </goals>
+                      </pluginExecutionFilter>
+                      <action>
+                        <ignore/>
+                      </action>
+                    </pluginExecution>
+                  </pluginExecutions>
+                </lifecycleMappingMetadata>
+              </configuration>
+            </plugin>
+          </plugins>
+        </pluginManagement>
+      </build>
+    </profile>
+
+    <!--
+      This profile extends the default "apache-release" configuration with 
automatic checksum-
+      generation for the release source artifact. It is automatically 
activated during the
+      release build and only needed there.
+    -->
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <!--
+            Create MD5 and SHA512 checksum files for the release artifacts.
+          -->
+          <plugin>
+            <groupId>net.nicoulaj.maven.plugins</groupId>
+            <artifactId>checksum-maven-plugin</artifactId>
+            <version>1.8</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>files</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <algorithms>
+                <algorithm>SHA-512</algorithm>
+              </algorithms>
+              <fileSets>
+                <fileSet>
+                  <directory>${project.build.directory}</directory>
+                  <includes>
+                    
<include>apache-training-incubating-${project.version}-source-release.zip</include>
+                  </includes>
+                </fileSet>
+              </fileSets>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+</project>
diff --git a/src/remote-resources/NOTICE b/src/remote-resources/NOTICE
new file mode 100644
index 0000000..5c0ba21
--- /dev/null
+++ b/src/remote-resources/NOTICE
@@ -0,0 +1,26 @@
+===============================================================
+= For site generation only
+===============================================================
+
+Reflow Maven skin and Velocity tools
+Copyright 2012 Andrius Velykis
+
+Twitter Bootstrap - licensed under the Apache License v2.0.
+This product includes software developed by
+Twitter (http://twitter.github.com/bootstrap).
+
+Glyphicons Halflings (part of Bootstrap by Twitter) - licensed under the 
Creative Commons Attribution 3.0 Unported (CC BY 3.0).
+This product includes software developed by
+Jan Kovařík (http://glyphicons.com)
+
+jQuery - licensed under the MIT License.
+This product includes software developed by
+jQuery (http://jquery.org)
+
+Lightbox2 - licensed under the Creative Commons Attribution 2.5 License (CC BY 
2.5)
+This product includes software developed by
+Lokesh Dhakar (http://lokeshdhakar.com/projects/lightbox2)
+
+FontAwesome by Dave Gandy - http://fontawesome.io.
+Font files licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL)
+CSS files licensed under the MIT License
\ No newline at end of file
diff --git a/src/site/asciidoc/developers/building.adoc 
b/src/site/asciidoc/developers/building.adoc
new file mode 100644
index 0000000..4ead72e
--- /dev/null
+++ b/src/site/asciidoc/developers/building.adoc
@@ -0,0 +1,71 @@
+//
+//  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.
+//
+
+== Building Training Website
+
+The Apache Training Website is built with `Apache Maven` and we have tried to 
make the build as simple as possible.
+
+For your convenience we also have provided a `Maven-Wrapper`, that should 
allow building with only `Java 8` or greater as requirement.
+
+=== Requirements
+
+The only requirements to building the Apache Training website should be:
+
+* Java 8 JDK (or newer)
+* Apache Maven (3.1.0 or newer) *(Optional)*
+
+=== Using the Maven-Wrapper
+
+The so-called `Maven-Wrapper` is used by calling the Maven-Wrapper scripts 
`mvnw` (Mac & Linux) or `mvnw.cmd` (Windows) instead of the default Maven 
commands `mvn` and `mvn.cmd`.
+
+These helpers ensure Maven is available in at least the version defined in 
`.mvn/maven-wrapper.properties`.
+If no suitable version can be found, it is automatically downloaded and 
installed alongside the project (So it doesn't have to be downloaded every time 
and every project can have it's own Maven version)
+
+After the script has ensured a suitable Maven version is available, this is 
used and all arguments and parameters are transparently forwarded to this.
+So simply adding the additional `w` to each of the Maven commands, there 
should be no difference to using a pre-installed Maven version.
+
+=== Using Maven
+
+This document can't provide you with all the details needed to get started 
with `Maven` itself.
+But there is a lot of good documentation out there.
+
+Justin McLean and Christofer Dutz even recorded a not quite 2 hour Maven 
training Video some time ago for another Apache project.
+
+It should handle all the details needed to get a general understanding of 
Maven and how it works.
+
+.Recording of a Maven Training for Apache Flex from 2016
+video::167857327[vimeo,width=640,height=420]
+
+=== Building the Apache Training Website with Maven
+
+The PLC4X Website is also part of the same GIT repository that contains the 
code and it is built by Maven as well.
+
+In order to build the website the following command should be sufficient:
+
+    mvn site
+
+However this will generate the website for each module inside it's 
`target/site` directory.
+Opening this in a browser and navigating from pages of one module to another 
will not work as these links expect a different directory structure.
+In order to create a fully navigatable version of the Website, the following 
command should be sufficient:
+
+    mvn site site:stage
+
+This will generate an additional `target/staging` directory which contains the 
fully functional version.
+
+A lot of documentation on Maven suggests to use the `site:site` goal directly 
instead of calling the `site` phase, but in case of Apache Training there is 
more than just the site generation that has to be executed.
+
+This is just a quick-start version of the site generation, for a fully 
detailed documentation please read the 
http://training.apache.org/developers/website.html[Website] documentation page.
diff --git a/src/site/asciidoc/developers/ci.adoc 
b/src/site/asciidoc/developers/ci.adoc
new file mode 100644
index 0000000..da4cf84
--- /dev/null
+++ b/src/site/asciidoc/developers/ci.adoc
@@ -0,0 +1,33 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Continuous Integration
+
+We are currently using only Apache Jenkins for building.
+
+- Apache's Jenkins at: https://builds.apache.org/view/S-Z/job/Training/
+
+Only build jobs on Apache's Jenkins are allowed to publish SNAPSHOT versions 
of the Maven artifacts to Apaches Nexus as well as auto publish generated 
websites to production.
+
+=== Structure of the Jenkins Pipeline build
+
+We are using the Jenkins `multi-branch pipeline plugin` to automatically setup 
build for branches based upon the build definition in the `Jenkinsfile` in the 
root of the project.
+
+In general it decides between building of the `master` branch and all others.
+
+When building `master` the build not only builds the project itself, it also 
deploys the generated site content to the `asf-site` branch which deploys the 
website.
diff --git a/src/site/asciidoc/developers/contributing.adoc 
b/src/site/asciidoc/developers/contributing.adoc
new file mode 100644
index 0000000..e743769
--- /dev/null
+++ b/src/site/asciidoc/developers/contributing.adoc
@@ -0,0 +1,117 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Contributing
+
+=== Forms of contribution
+
+There are multiple forms in which you can become involved with the Apache 
Training project.
+
+These usually are, but are not limited to:
+
+- Submitting Pull Requests
+- Filing Bug-Reports
+- Active communication on our mailing lists
+- Promoting the project (articles, blog posts, talks at conferences)
+- Documentation
+
+=== Pull-Requests
+
+The simplest way to submit code changes, is via a GitHub pull-request.
+
+In order to do this first create a GitHub account and sign into you account.
+
+After that's done, please to to our 
https://github.com/apache/incubator-training[GitHub site] and create a 
so-called `Fork`.
+
+image::contributing-github-fork.png[]
+
+What happens now, is that GitHub creates a full copy of the Apache Training 
repo in your account. Only you can commit to this.
+
+Now ideally you check-out your cloned repository:
+
+    git clone https://github.com/{your-user-id}/incubator-training.git
+
+Now you have a copy of Apache Training on your computer and you can change 
whatever you want and as it's your copy, you can even commit these changes 
without any danger of breaking things.
+
+As soon as you're finished with your changes and want us to have a look, it's 
time to create a so-called `Pull-Request`.
+
+You do that by going to your forked repository page on GitHub.
+
+Every forked repository has an additional button called "New Pull Request":
+
+image::contributing-github-create-pull-request.png[]
+
+If you click on this, we will receive a notification on your changes and can 
review them. We also can discuss your changes and have you perfect your pull 
request before we accept and merge it into Apache Training.
+
+==== Keeping your fork up to date
+
+As we are continuously working on Training and you created a copy of our repo, 
this will become out-of-date pretty soon.
+
+In order get the changes we introduced in the official repo you have to tell 
git about that.
+
+You do this locally by adding a new so-called `remote`. Per default the remote 
you cloned from is called `origin`.
+
+Usually you will call the second remote `upstream` but in general you can call 
it whatever you like.
+
+Add the remote on the commandline (or your git gui of choice):
+
+    git remote add upstream https://github.com/apache/incubator-training.git
+
+If you list all your remotes, with the following command:
+
+    git remote -v
+
+It should output something like this:
+
+    origin    https://github.com/{your-user-id}/incubator-training.git (fetch)
+    origin    https://github.com/{your-user-id}/incubator-training.git (push)
+    upstream    https://github.com/apache/incubator-training.git (fetch)
+    upstream    https://github.com/apache/incubator-training.git (push)
+
+If that's so, you're fine to continue, if not ... well you could ask for 
assistance on our dev-list.
+
+In order to get all changes of our upstream-repository, just execute the 
following command:
+
+    git pull upstream
+
+This will get all changed from upstream and merge them locally. In order to 
update your GitHub version, you have to push things back to `origin`. You can 
do this by executing the following command:
+
+    git push
+
+(If no remote is provided, git will use `origin` per default)
+
+===  Bug Reports
+
+We use https://issues.apache.org/jira/projects/TRAINING[JIRA] as our Bug & 
Issue Tracker.
+
+Feel free to submit `feature requests`, `bug reports`, `patches`, `comment on 
issues`, ...
+
+In order to be able to do so, you need to create an account first.
+
+Currently Apache has a separate login system for JIRA and all other services, 
this might change in the future, but right now it's the way things are.
+
+So if you are considering to contribute more than just a one-time-patch, 
please choose a username that hasn't been used by an existing 
http://people.apache.org/committer-index.html[Apache committer] as this will 
simplify things if we invite you to become part of the team.
+
+If you want to be assigned to an issue because you want to work on it, please 
request to be added to the JIRA groups on our 
http://training.apache.org/mailing-lists.html[developers mailing list]
+
+=== Documentation
+
+As our documentation and website are generated as a side-product of our build, 
contributing to this technically the same as contributing to the code.
+
+All our content is written in Asciidoctor and is located in 
`src/site/asciidoc` directories. For a reference of the Asciidoctor syntax 
please have a look at the 
https://asciidoctor.org/docs/user-manual/#introduction-to-asciidoctor[Asciidoctor
 documentation].
+
diff --git a/src/site/asciidoc/developers/decisions.adoc 
b/src/site/asciidoc/developers/decisions.adoc
new file mode 100644
index 0000000..bdb6f89
--- /dev/null
+++ b/src/site/asciidoc/developers/decisions.adoc
@@ -0,0 +1,66 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+
+== Decision Making
+
+=== Introduction
+
+This document describes the roles and responsibilities of the project, who may 
vote, how voting works, how conflicts are resolved, etc.
+
+The https://www.apache.org/foundation/faq[Apache Foundation FAQ] and 
http://www.apache.org/foundation/faq.html[How-It-Works] explain the operation 
and background of the foundation. Terms used are defined in the 
https://www.apache.org/foundation/glossary[ASF glossary].
+
+Apache has a http://www.apache.org/foundation/policies/conduct.html[code of 
conduct] that it expects its members to follow.
+
+=== Roles and Responsibilities
+
+Apache projects define a set of 
https://www.apache.org/foundation/how-it-works.html#roles[roles] with 
associated rights and responsibilities.
+
+==== Project Management Committee
+
+The http://www.apache.org/dev/pmc.html#what-is-a-pmc[PMC] has many 
https://www.apache.org/foundation/how-it-works.html#pmc[responsibilities] 
including complying with http://www.apache.org/dev/pmc.html#policy[ASF 
policies], https://www.apache.org/foundation/board/reporting[reporting to the 
board], https://www.apache.org/foundation/voting.html[approving releases] and 
adding new http://www.apache.org/dev/pmc.html#newcommitter[committers] and 
http://www.apache.org/dev/pmc.html#newpmc[PMC members].
+
+==== The Chair
+
+The http://www.apache.org/dev/pmc.html#chair[chair] ensures board reports are 
submitted and that the project's roster is up to date.
+
+=== Decision Making
+
+Different decisions require different forms of approval but community 
consensus is always the goal. Voting when needed should be open for 
http://www.apache.org/legal/release-policy.html#release-approval[at least 72 
hours].
+
+- https://www.apache.org/foundation/glossary.html#ConsensusApproval[Consensus 
Approval] – Consensus approval requires 3 
https://www.apache.org/foundation/voting.html#binding-votes[binding] +1 votes 
and no -1 votes (https://www.apache.org/foundation/glossary.html#Veto[vetoes]).
+- https://www.apache.org/foundation/glossary.html#MajorityApproval[Majority 
Approval] – requires at least 3 
https://www.apache.org/foundation/voting.html#binding-votes[binding] +1 votes 
more +1 votes than -1 votes.
+- https://www.apache.org/foundation/glossary.html#LazyConsensus[Lazy 
Consensus] – consensus no objections (‘silence gives assent’).
+
+|===
+|Action                     |Who can vote |Approval           |Where to vote   
          |Board approval required
+|Code change                |Committer    |Lazy Consensus     |public dev or 
commit list |
+|Release                    |PMC          |Majority Approval  |public dev list 
          |
+|New committer              |PMC          |Consensus Approval |private list    
          |
+|New PMC member             |PMC          |Consensus Approval |private list    
          |Yes 1)
+|Existing committer removal |PMC          |Consensus Approval |private list    
          |
+|Existing PMC removal       |PMC          |Consensus Approval |private list    
          |Yes 2)
+|Change chair               |PMC          |Consensus Approval |private list    
          |Yes 3)
+|===
+
+1. http://www.apache.org/dev/pmc.html#notice_period[Notice] must be given to 
board.
+2. Except PMC member in question. Only the board can 
http://www.apache.org/dev/pmc.html#pmc-removal[remove PMC members].
+3. Need to be http://www.apache.org/dev/pmc.html#newchair[approved by the 
board] at the next board meeting.
+
+
+
+
diff --git a/src/site/asciidoc/developers/issues.adoc 
b/src/site/asciidoc/developers/issues.adoc
new file mode 100644
index 0000000..e9b5ac9
--- /dev/null
+++ b/src/site/asciidoc/developers/issues.adoc
@@ -0,0 +1,20 @@
+//
+//  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.
+//
+
+== Bug & Issue Tracker
+
+https://issues.apache.org/jira/projects/TRAINING
\ No newline at end of file
diff --git a/src/site/asciidoc/developers/team.adoc 
b/src/site/asciidoc/developers/team.adoc
new file mode 100644
index 0000000..4106238
--- /dev/null
+++ b/src/site/asciidoc/developers/team.adoc
@@ -0,0 +1,34 @@
+//
+//  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.
+//
+:imagesdir: ../images/
+:icons: font
+
+== Team
+
+Sorted by first name:
+
+[width="100%",cols="2,4,1,1",options="header"]
+|=========================================================
+|Name |Bio | |
+| *Christofer Dutz*
+
+ IoT Consultant
+
+ codecentric AG
+
+ Frankfurt |Likes to swim outside the mainstream. He is really passionate 
about walking new paths. His first email to an Apache list on file was to the 
Cocoon project back in the year 2000. His direct involvement started in 2012 
when he was elected to become an Apache Flex committer. Since then he became 
involved with a lot of Apache-internal groups and committees and was elected to 
become a Member of the Apache Software Foundation in 2015 and recently has 
taken up the role of mentoring  [...]
+
diff --git a/src/site/asciidoc/developers/website.adoc 
b/src/site/asciidoc/developers/website.adoc
new file mode 100644
index 0000000..69c2ac7
--- /dev/null
+++ b/src/site/asciidoc/developers/website.adoc
@@ -0,0 +1,159 @@
+//
+//  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.
+//
+
+== Generating the Website
+
+We are currently using the normal `Maven` build to not only generate the 
project artifacts, but also the projects website.
+
+In order to provide content, every module can have a `src/site` directory. 
This content will be generated to that modules site-part.
+
+The `skin` being used to generate the site is none of the default `Maven` 
skins, but a more up-to-date looking skin using:
+
+- Bootstrap (For the CSS)
+- JQuery (For the JavaScript magic)
+- Fontawesome (For icons and symbols)
+
+But we don't have to worry about the details, all is configured to be used 
automatically.
+
+The site content itself is generated from `asciidoc` files (ending `.adoc`) 
which is a simple yet powerful markup language.
+(See http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[AsciiDoc 
Syntax Quick Reference] or https://powerman.name/doc/asciidoc[AsciiDoc 
cheatsheet] for details)
+
+Beyond the basic goodies, the build is also configured to generate images from 
ASCII data using the `asciidoctor-diagram` plugin.
+
+This allows us to generate images like the ones on the 
http://plc4x.apache.org/protocols/s7/index.html[S7 Protocol Description page]
+
+=== Providing new content
+
+Within the `src/site` directory there is a file `site.xml` which generally 
controls the menu and the look of the site.
+
+Most setting are inherited from the `training` parent module. That's also why 
this is more complicated than the others.
+
+The `site.xml` file is optional. Even if this is not available a site will be 
generated however no additional content will be linked from any of the 
navigation menus.
+
+So if we wanted to add a new page on some (hopefully non existent) `Cool 
content`, we would create a file called:
+
+`index.adoc` in the `src/site/asciidoc/content/cool` directory.
+
+For example with this content:
+
+```
+== Cool Hello World
+
+Here comes some extremely cool content.
+
+```
+
+=== Adding links to menus
+
+In order to add links to the menus, you have to create or modify the 
`site.xml` for the module you want to add content to.
+
+The simplest form would probably be something like this:
+
+```
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+ 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="PLC4J">
+
+  <body>
+    <menu name="content">
+      <item name="cool" href="https://training.apache.org/content/cool.html"/>
+    </menu>
+  </body>
+
+</project>
+```
+
+This will generate a `content` menu at the end, and this has one link named 
`cool`.
+
+Notice that the link has to have a file ending of `.html` and not `.adoc`.
+
+If you want to insert the menu somewhere else, you will have to re-define the 
entire menu.
+
+```
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+
+ 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="PLC4J">
+
+  <body>
+
+      <menu ref="reports" inherit="top"/>
+      <menu ref="parent" inherit="top"/>
+
+      <menu name="content">
+        <item name="cool" 
href="https://training.apache.org/content/cool.html"/>
+      </menu>
+
+      <menu ref="modules" inherit="top"/>
+
+  </body>
+
+</project>
+```
+
+The `menu ref` items hereby reference standard menus provided by the `Maven` 
build.
+
+=== Deploying the Website
+
+The Apache Training project uses Apache `gitpubsub` system for maintaining the 
website.
+
+In general all content in a repos `asf-site` branch is copied to the 
Webservers, if that repo is registered for it.
+
+The content in this branch is generated and maintained during the `Maven` 
build as part of the `site` generation if the `site-deploy` phase is executed.
+
+The build system needs to check-in content to the `asf-site` branch and 
usually ASF Jenkins nodes don't have the permissions to do that.
+
+In order to be able to push to the `asf-site` GIT branch, a dedicated build 
job is configured to build on nodes with the Jenkins label `git-websites`.
+
+Only on these machines are jobs allowed to push changes to a Git repo and here 
only to a branch named `asf-site`.
+
+See https://builds.apache.org/view/M-R/job/PLC4X/job/PLC4X%20Site/ for details 
on the PLC4X Jenkins Website build job.
+
+As soon as content is updated in the `asf-site` the `gitpubsub` mechanism will 
make those changes available at https://training.apache.org
diff --git a/src/site/asciidoc/developers/wiki.adoc 
b/src/site/asciidoc/developers/wiki.adoc
new file mode 100644
index 0000000..9ec907b
--- /dev/null
+++ b/src/site/asciidoc/developers/wiki.adoc
@@ -0,0 +1,20 @@
+//
+//  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.
+//
+
+== WIKI
+
+https://cwiki.apache.org/confluence/display/TRAINING
\ No newline at end of file
diff --git a/src/site/asciidoc/index.adoc b/src/site/asciidoc/index.adoc
new file mode 100644
index 0000000..e94d20b
--- /dev/null
+++ b/src/site/asciidoc/index.adoc
@@ -0,0 +1,65 @@
+//
+//  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.
+//
+:imagesdir: images/
+:icons: font
+
+== Apache Training™ (Incubating)
+
+=== Purpose
+The purpose of the Training project is to create high-quality training 
material for various projects in an open source form. Up until now everyone who 
wants to offer a Training course for one of the Apache projects needs to create 
her or his own slides/labs and keep them up-to-date. This is a significant 
investment of time and money. This project aims to spread that burden and help 
all Apache projects as we can create shared resources and we can also create 
cross-project trainings.
+
+To sum up, the main goals for this project:
+
+- Develop shared material that can be used for trainings
+- Cross-project
+    - Focused on Apache but also 3rd party projects where it makes sense
+    - Develop “labs” or “hands-on” exercises
+- Develop or document an infrastructure that can be used for those labs
+- Potentially develop tools to manage the material (e.g. a “slide” repository 
that contains “modules” that can be easily reused and combined)
+
+These are non-goals for this project:
+
+- Some kind of official “Apache Training Program” with certifications etc.
+    - Based on feedback and future developments this may change but we believe 
it’s out of scope initially
+- Project documentation
+- The training material we develop is not necessarily self-explanatory. It 
still benefits from an experienced instructor but it will make it possible for 
talented people without the time and resources to develop material to still 
train others.
+
+=== Rationale
+There are tons of companies offering training for and around the Apache 
ecosystem. From our experience everyone is building a very similar set of 
slides and labs (there’s only so many ways you can explain a concept). This 
project aims to create and use synergies. By also bringing these resources 
closer to their origin we hope to improve quality, freshness of the content and 
versatility (e.g. more language options).
+
+It is the mission of the Apache foundation “to provide software for the public 
good” and we believe this project can help with that mission by making the 
software more accessible for a broader audience.
+
+=== Next steps
+The initial goal for the first few weeks or months is to have discussions and 
agreements on various scoping and technical issues as well as integrating 
existing donated material.
+
+After that we want to start building a library of content.
+
+=== Getting involved
+
+The main resource for any discussion around this project is the dev mailing 
list (see below). If you have any specific question or want to get involved in 
any way, by all means do reach out and say hi!
+
+The following resources are currently being used by the project:
+
+Dev Mailing List: 
[Archive](https://lists.apache.org/[email protected])  -  
[Subscribe](mailto:[email protected])
+
+Issues Mailing List: 
[Archive](https://lists.apache.org/[email protected])  -  
[Subscribe](mailto:[email protected])
+
+Commits Mailing List: 
[Archive](https://lists.apache.org/[email protected])  -  
[Subscribe](mailto:[email protected])
+
+Wiki: 
[https://cwiki.apache.org/confluence/display/TRAINING](https://cwiki.apache.org/confluence/display/TRAINING)
+
+Jira: 
[https://issues.apache.org/jira/browse/TRAINING](https://issues.apache.org/jira/browse/TRAINING)
diff --git a/src/site/resources/css/bootstrap-responsive.min.css 
b/src/site/resources/css/bootstrap-responsive.min.css
new file mode 100644
index 0000000..42b08d3
--- /dev/null
+++ b/src/site/resources/css/bootstrap-responsive.min.css
@@ -0,0 +1,20 @@
+/*
+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 is just a dummy as we are using local resources and that causes the 
skin to look for this file */
\ No newline at end of file
diff --git a/src/site/resources/css/site.css b/src/site/resources/css/site.css
new file mode 100644
index 0000000..0063fee
--- /dev/null
+++ b/src/site/resources/css/site.css
@@ -0,0 +1,91 @@
+/*
+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.
+*/
+
+/* Import the fontawesome 5 css */
+@import url("all.min.css");
+
+.green {
+    color: #008000;
+}
+
+.yellow {
+    color: #ffa500;
+}
+
+.red {
+    color: #ff0000;
+}
+
+.protocolIsoOnTcp {
+    background-color: #068D9D;
+}
+
+.protocolIsoTP {
+    background-color: #53599A;
+}
+
+.protocolS7 {
+    background-color: #6D9DC5;
+}
+
+.protocolId {
+    background-color: #AEECEF;
+}
+
+.protocolParameter {
+    background-color: #80DED9;
+}
+
+.pull-right {
+    width: 400px;
+}
+
+#bannerRight > img {
+    width: 400px;
+}
+
+#apacheEvents {
+    position: relative;
+    width: 234px;
+    top: 20px;
+    left: 83px
+}
+
+/* Set where the focus will be set when using anchor links */
+h2[id]:before {
+    display: block;
+    content: "";
+    height: 360px;
+    margin: -360px 0 0;
+}
+
+/* Set where the focus will be set when using anchor links */
+h3[id]:before, h4[id]:before, h5[id]:before, h6[id]:before, a[name]:before {
+    display: block;
+    content: "";
+    height: 106px;
+    margin: -106px 0 0;
+}
+
+/* Re-Format the position of the "to top" link */
+body > div.container.subfooter > div > div > p.pull-right {
+    width: 100px;
+    height: 60px;
+    text-align: right;
+}
diff --git 
a/src/site/resources/images/contributing-github-create-pull-request.png 
b/src/site/resources/images/contributing-github-create-pull-request.png
new file mode 100644
index 0000000..1d8721a
Binary files /dev/null and 
b/src/site/resources/images/contributing-github-create-pull-request.png differ
diff --git a/src/site/resources/images/contributing-github-fork.png 
b/src/site/resources/images/contributing-github-fork.png
new file mode 100644
index 0000000..8600ffd
Binary files /dev/null and 
b/src/site/resources/images/contributing-github-fork.png differ
diff --git a/src/site/resources/images/team/cdutz.png 
b/src/site/resources/images/team/cdutz.png
new file mode 100644
index 0000000..2e42eb5
Binary files /dev/null and b/src/site/resources/images/team/cdutz.png differ
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..fb6ef10
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 
+ 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="Training">
+
+  <skin>
+    <groupId>io.github.devacfr.maven.skins</groupId>
+    <artifactId>reflow-maven-skin</artifactId>
+    <version>${reflow.skin.version}</version>
+  </skin>
+
+  <!-- Hide the publish date as this will cause changes on every generated 
page every day -->
+  <publishDate position="none"/>
+  <!-- Hide the version as we are usually deploying the develop version -->
+  <version position="none" />
+
+  <!--
+      Details on how to configure the reflow skin:
+      http://andriusvelykis.github.io/reflow-maven-skin/skin/
+  -->
+  <custom>
+    <reflowSkin>
+      <localResources>true</localResources>
+      <absoluteResourceURL>https://training.apache.org/</absoluteResourceURL>
+      <titleTemplate>Apache Training� (Incubating) - %2$s</titleTemplate>
+      <slogan position="bannerLeft">Training material for Apache 
projects</slogan>
+      <showApacheEvents>true</showApacheEvents>
+      <toc>top</toc>
+      <bottomNav maxSpan="6">
+        <column>Apache</column>
+        <column>modules</column>
+      </bottomNav>
+      <brand>
+        <name>Apache Training (Incubating)</name>
+        <href>https://training.apache.org/</href>
+      </brand>
+      <bottomDescription>
+        <![CDATA[
+          <p id="bottomNote" style="font-size: 15px">
+          Apache Training is an effort undergoing incubation at The Apache 
Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is 
required of all newly accepted projects until a further review indicates that 
the infrastructure, communications, and decision making process have stabilized 
in a manner consistent with other successful ASF projects. While incubation 
status is not necessarily a reflection of the completeness or stability of the 
code, it does indicate that  [...]
+          </p>
+        ]]>
+      </bottomDescription>
+      <breadcrumbs>true</breadcrumbs>
+      <highlightJs>true</highlightJs>
+      <pages>
+        <developer-info>
+          <toc>sidebar</toc>
+        </developer-info>
+      </pages>
+    </reflowSkin>
+  </custom>
+
+  <poweredBy>
+    <logo name="Apache Software Foundation" 
img="https://www.apache.org/images/asf_logo.png"; 
href="https://www.apache.org/"/>
+  </poweredBy>
+
+  <bannerLeft>
+      <name>Apache Training (incubating)</name>
+      <src>https://training.apache.org/images/apache_training_logo.png</src>
+      <href>https://training.apache.org/</href>
+  </bannerLeft>
+
+  <bannerRight>
+    <name>Apache Incubator</name>
+    
<src>https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png</src>
+    <href>http://incubator.apache.org/</href>
+  </bannerRight>
+
+  <body>
+    <head>
+      <!-- Use JQuery to manipulate the final output of the page, which is a 
lot simpler than adjusting the templates for site generation. -->
+      <![CDATA[
+        <script>
+          document.addEventListener("DOMContentLoaded", function(event) {
+            /* Add an image for promoting Apache events below the right banner 
*/
+            $("#bannerRight").append('<p id="apacheEvents"><a 
href="//www.apache.org/events/current-event.html"><img 
src="//www.apache.org/events/current-event-234x60.png"/></a></p>');
+            /* Append the trademarks info to the copyright section */
+            $(".copyright").append('<p>Apache Training, Apache, the Apache 
feather logo, and the Apache Training project logo are either registered 
trademarks or trademarks of The Apache Software Foundation in the United States 
and other countries. All other marks mentioned may be trademarks or registered 
trademarks of their respective owners.</p>');
+          });
+        </script>
+      ]]>
+    </head>
+
+    <menu name="Developers">
+      <item name="Bug &amp; Issue Tracker" href="developers/issues.html"/>
+      <item name="Building Training" href="developers/building.html"/>
+      <item name="Continuous Integration" href="developers/ci.html"/>
+      <item name="Contributing" href="developers/contributing.html"/>
+      <item name="Decision Making" href="developers/decisions.html"/>
+      <!--item name="Maturity" href="developers/maturity.html"/>
+      <item name="Releasing" href="developers/release.html"/-->
+      <item name="Team" href="developers/team.html"/>
+      <item name="Website" href="developers/website.html"/>
+      <item name="Wiki" href="developers/wiki.html"/>
+    </menu>
+    <menu name="Apache" inherit="bottom">
+      <item name="Apache Software Foundation" href="http://www.apache.org/"/>
+      <item name="How Apache Works" 
href="https://www.apache.org/foundation/how-it-works.html"/>
+      <item name="License" href="http://www.apache.org/licenses/"/>
+      <item name="Sponsoring Apache" 
href="http://www.apache.org/foundation/sponsorship.html"/>
+      <item name="Thanks" href="http://www.apache.org/foundation/thanks.html"/>
+    </menu>
+    <menu ref="modules" inherit="bottom"/>
+  </body>
+
+</project>
\ No newline at end of file
diff --git a/tools/clean-site.sh b/tools/clean-site.sh
new file mode 100644
index 0000000..a8c9333
--- /dev/null
+++ b/tools/clean-site.sh
@@ -0,0 +1,35 @@
+#!/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.
+##
+################################################################################
+
+# Remove all the css and js directories except the ones in the root of the 
site.
+find target/staging -type d | grep 'target\/staging\/.*\/css$' | xargs rm -r
+find target/staging -type d | grep 'target\/staging\/.*\/js$' | xargs rm -r
+
+# Delete some individual images.
+find target/staging -type f | grep 'target\/staging\/.*/images/close\.png$' | 
xargs rm
+find target/staging -type f | grep 'target\/staging\/.*/images/close\.gif$' | 
xargs rm
+find target/staging -type f | grep 'target\/staging\/.*/images/loading\.png$' 
| xargs rm
+find target/staging -type f | grep 'target\/staging\/.*/images/loading\.gif$' 
| xargs rm
+find target/staging -type f | grep 'target\/staging\/.*/images/next\.png$' | 
xargs rm
+find target/staging -type f | grep 'target\/staging\/.*/images/prev\.png$' | 
xargs rm
+
+# Delete any now empty directories.
+find target/staging -type d -empty | xargs rm -r
\ No newline at end of file

Reply via email to