diff --git a/geode-book/.gitignore b/geode-book/.gitignore
index 0cae826..30545a4 100644
--- a/geode-book/.gitignore
+++ b/geode-book/.gitignore
@@ -1,2 +1,2 @@
-output
-final_app
+output/
+final_app/
diff --git a/geode-book/Gemfile b/geode-book/Gemfile
index f66d333..b61bbdc 100644
--- a/geode-book/Gemfile
+++ b/geode-book/Gemfile
@@ -1,3 +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.
+
 source "https://rubygems.org"
 
 gem 'bookbindery'
diff --git a/geode-book/Gemfile.lock b/geode-book/Gemfile.lock
index 3c483c0..1fb5a4c 100644
--- a/geode-book/Gemfile.lock
+++ b/geode-book/Gemfile.lock
@@ -200,4 +200,4 @@
   libv8 (= 3.16.14.7)
 
 BUNDLED WITH
-   1.11.2
+   1.13.1
diff --git a/geode-book/config.yml b/geode-book/config.yml
index 74003f0..b2f999a 100644
--- a/geode-book/config.yml
+++ b/geode-book/config.yml
@@ -1,3 +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.
+
 book_repo: apache/incubator-geode/geode-book
 public_host: localhost
 
diff --git a/geode-book/master_middleman/source/index.html.erb b/geode-book/master_middleman/source/index.html.erb
index 39ee634..3d273d3 100644
--- a/geode-book/master_middleman/source/index.html.erb
+++ b/geode-book/master_middleman/source/index.html.erb
@@ -1,4 +1,20 @@
 <html>
+<!--
+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.
+-->
 <head>
 
 <script type="text/javascript">
diff --git a/geode-book/master_middleman/source/javascripts/book.js b/geode-book/master_middleman/source/javascripts/book.js
index 90879c4..16edd95 100644
--- a/geode-book/master_middleman/source/javascripts/book.js
+++ b/geode-book/master_middleman/source/javascripts/book.js
@@ -1,3 +1,18 @@
+//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.
+
 // Declare your book-specific javascript overrides in this file.
 //= require 'waypoints/waypoint'
 //= require 'waypoints/context'
diff --git a/geode-book/master_middleman/source/javascripts/waypoints/context.js b/geode-book/master_middleman/source/javascripts/waypoints/context.js
index 5e3551b..d005cb3 100644
--- a/geode-book/master_middleman/source/javascripts/waypoints/context.js
+++ b/geode-book/master_middleman/source/javascripts/waypoints/context.js
@@ -1,3 +1,18 @@
+//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.
+
 (function() {
   'use strict'
 
diff --git a/geode-book/master_middleman/source/javascripts/waypoints/group.js b/geode-book/master_middleman/source/javascripts/waypoints/group.js
index 57c3038..3f14d7c 100644
--- a/geode-book/master_middleman/source/javascripts/waypoints/group.js
+++ b/geode-book/master_middleman/source/javascripts/waypoints/group.js
@@ -1,3 +1,18 @@
+//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.
+
 (function() {
   'use strict'
 
diff --git a/geode-book/master_middleman/source/javascripts/waypoints/noframeworkAdapter.js b/geode-book/master_middleman/source/javascripts/waypoints/noframeworkAdapter.js
index 99abcb5..4c55ca9 100644
--- a/geode-book/master_middleman/source/javascripts/waypoints/noframeworkAdapter.js
+++ b/geode-book/master_middleman/source/javascripts/waypoints/noframeworkAdapter.js
@@ -1,3 +1,18 @@
+//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.
+
 (function() {
   'use strict'
 
diff --git a/geode-book/master_middleman/source/javascripts/waypoints/sticky.js b/geode-book/master_middleman/source/javascripts/waypoints/sticky.js
index 569fcdb..371cac0 100644
--- a/geode-book/master_middleman/source/javascripts/waypoints/sticky.js
+++ b/geode-book/master_middleman/source/javascripts/waypoints/sticky.js
@@ -1,3 +1,18 @@
+//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.
+
 (function() {
   'use strict'
 
diff --git a/geode-book/master_middleman/source/javascripts/waypoints/waypoint.js b/geode-book/master_middleman/source/javascripts/waypoints/waypoint.js
index 7f76f1d..0196b04 100644
--- a/geode-book/master_middleman/source/javascripts/waypoints/waypoint.js
+++ b/geode-book/master_middleman/source/javascripts/waypoints/waypoint.js
@@ -1,3 +1,18 @@
+//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.
+
 (function() {
   'use strict'
 
diff --git a/geode-book/master_middleman/source/layouts/_book-footer.erb b/geode-book/master_middleman/source/layouts/_book-footer.erb
index 55bf514..c3b93f6 100644
--- a/geode-book/master_middleman/source/layouts/_book-footer.erb
+++ b/geode-book/master_middleman/source/layouts/_book-footer.erb
@@ -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.
+-->
 <div class="copyright">
   <a href='/'>Apache Geode Documentation</a>
   &copy; <%= Time.now.year %> <a href='http://www.apache.org/'>The Apache Software Foundation</a>.
diff --git a/geode-book/master_middleman/source/layouts/_title.erb b/geode-book/master_middleman/source/layouts/_title.erb
index ea744d9..e9a0956 100644
--- a/geode-book/master_middleman/source/layouts/_title.erb
+++ b/geode-book/master_middleman/source/layouts/_title.erb
@@ -1,6 +1,21 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance 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.
+-->
 <% if current_page.data.title %>
   <h1 class="title-container" <%= current_page.data.dita ? 'style="display: none;"' : '' %>>
     <%= current_page.data.title %>
   </h1>
 <% end %>
-
diff --git a/geode-book/master_middleman/source/stylesheets/book-styles.css.scss b/geode-book/master_middleman/source/stylesheets/book-styles.css.scss
index 1236d8e..a7ab274 100644
--- a/geode-book/master_middleman/source/stylesheets/book-styles.css.scss
+++ b/geode-book/master_middleman/source/stylesheets/book-styles.css.scss
@@ -1,3 +1,18 @@
+//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.
+
 * {
   box-sizing: border-box;
 }
diff --git a/geode-book/master_middleman/source/stylesheets/partials/_book-base-values.scss b/geode-book/master_middleman/source/stylesheets/partials/_book-base-values.scss
index e69de29..93562f4 100644
--- a/geode-book/master_middleman/source/stylesheets/partials/_book-base-values.scss
+++ b/geode-book/master_middleman/source/stylesheets/partials/_book-base-values.scss
@@ -0,0 +1,14 @@
+//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.
diff --git a/geode-book/master_middleman/source/stylesheets/partials/_book-vars.scss b/geode-book/master_middleman/source/stylesheets/partials/_book-vars.scss
index 4245d57..e2c5e3f 100644
--- a/geode-book/master_middleman/source/stylesheets/partials/_book-vars.scss
+++ b/geode-book/master_middleman/source/stylesheets/partials/_book-vars.scss
@@ -1,3 +1,18 @@
+//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.
+
 $navy: #243640;
 $blue1: #2185c5;
 $blue2: #a7cae1;
@@ -16,4 +31,3 @@
 
 $color-bg-header: $navy;
 $color-bg-dark: $bluegray1;
-
diff --git a/geode-book/master_middleman/source/subnavs/geode-subnav.erb b/geode-book/master_middleman/source/subnavs/geode-subnav.erb
index 12ff6b2..53e9118 100644
--- a/geode-book/master_middleman/source/subnavs/geode-subnav.erb
+++ b/geode-book/master_middleman/source/subnavs/geode-subnav.erb
@@ -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.
+-->
 <div id="sub-nav" class="js-sidenav nav-container" role="navigation">
     <a class="sidenav-title" data-behavior="SubMenuMobile">
         Doc Index
diff --git a/geode-book/redirects.rb b/geode-book/redirects.rb
index d71841a..e913407 100644
--- a/geode-book/redirects.rb
+++ b/geode-book/redirects.rb
@@ -1,3 +1,18 @@
+#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.
+
 r301 %r{/releases/latest/javadoc/(.*)}, 'http://geode.incubator.apache.org/releases/latest/javadoc/$1'
 rewrite '/', '/docs/about_geode.html'
 rewrite '/index.html', '/docs/about_geode.html'
diff --git a/gradle/rat.gradle b/gradle/rat.gradle
index 7e20c56..0b01d81 100644
--- a/gradle/rat.gradle
+++ b/gradle/rat.gradle
@@ -51,7 +51,7 @@
     // IDE
     'etc/eclipseFormatterProfile.xml',
     'etc/intellijIdeaCodeStyle.xml',
-    'etc/eclipseOrganizeImports.importorder', 
+    'etc/eclipseOrganizeImports.importorder',
     '**/.project',
     '**/.classpath',
     '**/.settings/**',
@@ -88,6 +88,7 @@
     '**/*.pdf',
     '**/*.png',
     '**/*.ser',
+    '**/*.svg',
     '**/*.truststore',
     '**/*.xls',
     '**/publickeyfile',
@@ -97,6 +98,7 @@
     'geode-spark-connector/project/plugins.sbt',
     'geode-spark-connector/project/build.properties',
     '**/log4j*.xml',
+    'geode-book/Gemfile.lock',
 
     // modules
     'extensions/**/log4j.properties',
