GEODE-2507 Add gradle rat checking
diff --git a/.gitignore b/.gitignore
index 426f0fc..f554eff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
+.gradle/
+/build
/content/*
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..b0759c9
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,44 @@
+# 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.
+
+language: java
+
+jdk:
+ - oraclejdk8
+
+before_cache:
+ - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
+
+cache:
+ directories:
+ - $HOME/.gradle/caches/
+ - $HOME/.gradle/wrapper/
+
+script:
+ - ./gradlew rat
+
+after_failure:
+ - cat /home/travis/build/apache/geode-site/build/reports/rat/rat-report.txt
+
+notifications:
+ email:
+ recipients:
+ - dev@geode.apache.org
+ on_success: change
+ on_failure: change
+
+branches:
+ except:
+ - /^feature.*$/
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..acca3ee
--- /dev/null
+++ b/build.gradle
@@ -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.
+ */
+
+plugins {
+ id "org.nosphere.apache.rat" version "0.3.0"
+}
+
+apply plugin: "org.nosphere.apache.rat"
+
+rat {
+ xmlOutput = false
+ htmlOutput = false
+ plainOutput = true
+
+ excludes = [
+ // git
+ '.git/**',
+ '**/.gitignore',
+ '**/.gitkeep',
+
+ // gradle
+ '**/.gradle/**',
+ 'gradle/wrapper/gradle-wrapper.properties',
+ 'caches/**',
+ 'daemon/**',
+ 'native/**',
+ 'wrapper/**',
+ 'build/**',
+
+ // geode-site: Adding exceptions to MIT/BSD licensed files
+ 'website/content/js/head.js',
+ 'website/content/js/html5shiv.js',
+ 'website/content/js/jquery-1.10.1.min.js',
+ 'website/content/js/jquery.icheck.js',
+ 'website/content/js/respond.min.js',
+ 'website/content/css/bootflat-extensions.css',
+ 'website/content/css/bootflat-square.css',
+ 'website/content/css/bootflat.css',
+ 'website/content/css/font-awesome.min.css',
+ 'website/lib/pandoc.template',
+ 'website/content/font/**',
+ 'website/content/fonts/**',
+ 'website/content/stylesheets/**',
+
+ // compiled logs and locks
+ 'website/utilities/markers.txt',
+ 'website/tmp/**',
+ 'website/layouts/**',
+ 'content/**'
+ ]
+}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..211d62b
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Jun 20 23:30:08 PDT 2016
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..de155c6
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,221 @@
+#!/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.
+
+##
+## Tries to recreate Gradle's gradlew command in pure bash.
+## This way you don't have to worry about binaries in your build.
+##
+## Depdencies
+## unzip
+##
+
+set -e
+set -o pipefail
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+ MAX_FD="maximum"
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+bin=`dirname "$0"`
+bin=`cd "$bin">/dev/null; pwd`
+
+if [ -e "$bin/gradle/wrapper/gradle-wrapper.properties" ]; then
+ . "$bin/gradle/wrapper/gradle-wrapper.properties"
+else
+ # the location that the wrapper is at doesn't have a properties
+ # check PWD, gradlew may be shared
+ if [ -e "$PWD/gradle/wrapper/gradle-wrapper.properties" ]; then
+ . "$PWD/gradle/wrapper/gradle-wrapper.properties"
+ else
+ echo "Unable to locate gradle-wrapper.properties. Not at $PWD/gradle/wrapper/gradle-wrapper.properties or $bin/gradle/wrapper/gradle-wrapper.properties" 1>&2
+ exit 1
+ fi
+fi
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+darwin=false
+case "`uname`" in
+ Darwin* )
+ darwin=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+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
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+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
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# does not match gradle's hash
+# waiting for http://stackoverflow.com/questions/26642077/java-biginteger-in-bash-rewrite-gradlew
+hash() {
+ local input="$1"
+ if $darwin; then
+ md5 -q -s "$1"
+ else
+ echo -n "$1" | md5sum | cut -d" " -f1
+ fi
+}
+
+dist_path() {
+ local dir=$(basename $distributionUrl | sed 's;.zip;;g')
+ local id=$(hash "$distributionUrl")
+
+ echo "$HOME/.gradle/${distributionPath:-wrapper/dists}/$dir/$id"
+}
+
+zip_path() {
+ local dir=$(basename $distributionUrl | sed 's;.zip;;g')
+ local id=$(hash "$distributionUrl")
+
+ echo "$HOME/.gradle/${zipStorePath:-wrapper/dists}/$dir/$id"
+}
+
+download() {
+ local base_path=$(dist_path)
+ local file_name=$(basename $distributionUrl)
+ local dir_name=$(echo "$file_name" | sed 's;-bin.zip;;g' | sed 's;-src.zip;;g' |sed 's;-all.zip;;g')
+
+ if [ ! -d "$base_path" ]; then
+ mkdir -p "$base_path"
+ else
+ # if data already exists, it means we failed to do this before
+ # so cleanup last run and try again
+ rm -rf $base_path/*
+ fi
+
+ # download dist. curl on mac doesn't like the cert provided...
+ local zip_path=$(zip_path)
+ curl --insecure -L -o "$zip_path/$file_name" "$distributionUrl"
+
+ pushd "$base_path"
+ touch "$file_name.lck"
+ unzip "$zip_path/$file_name" 1> /dev/null
+ touch "$file_name.ok"
+ popd
+}
+
+is_cached() {
+ local file_name=$(basename $distributionUrl)
+
+ [ -e "$(dist_path)/$file_name.ok" ]
+}
+
+lib_path() {
+ local base_path=$(dist_path)
+ local file_name=$(basename $distributionUrl | sed 's;-bin.zip;;g' | sed 's;-src.zip;;g' |sed 's;-all.zip;;g')
+
+ echo "$base_path/$file_name/lib"
+}
+
+classpath() {
+ local dir=$(lib_path)
+ local cp=$(ls -1 $dir/*.jar | tr '\n' ':')
+ echo "$dir:$cp"
+}
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+
+main() {
+ if ! is_cached; then
+ download
+ fi
+
+ eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+ JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+ $JAVACMD "${JVM_OPTS[@]}" -cp $(classpath) org.gradle.launcher.GradleMain "$@"
+}
+
+main "$@"
+
diff --git a/website/README.md b/website/README.md
index 1f93e24..f67709b 100644
--- a/website/README.md
+++ b/website/README.md
@@ -1,3 +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.
+-->
# Apache Geode Website
This directory contains the source files for the project website. Website content is written in [Markdown](https://help.github.com/articles/markdown-basics) and the site files are generated from that source by a tool called [Pandoc](http://johnmacfarlane.net/pandoc).