Hi guys,

wonder how we can manage the site. Here is the issue: I don't think we need
to get too much grey hairs with licensing of the js/css librairies we use
to build the size since we don't care to vote on it or not - doesn't means
we'll not respect the license, just we'll not write LICENSE/NOTICE for it.
For now I put it in the project cause I think it is a nice way to get it
running and maintained but if the license maintenance is too much  pain we
could split it as well.

Happy to get feedback on that since I'm not sure what will be the less
painful ATM.

wdyt?

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
<https://javaeefactory-rmannibucau.rhcloud.com>

---------- Forwarded message ----------
From: <rmannibu...@apache.org>
Date: 2016-10-25 23:27 GMT+02:00
Subject: svn commit: r1766603 [1/8] - in /openwebbeans/microwave/trunk: ./
microwave-arquillian/src/main/java/org/apache/microwave/arquillian/
microwave-core/src/main/java/org/apache/microwave/
microwave-core/src/main/java/org/apache/microwave/tomcat/ microwave...
To: comm...@openwebbeans.apache.org


Author: rmannibucau
Date: Tue Oct 25 21:27:10 2016
New Revision: 1766603

URL: http://svn.apache.org/viewvc?rev=1766603&view=rev
Log:
flag to setup tomcat defaults + basic doc module (TODO: exclude it from the
src module since that's for the site only)

Added:
    openwebbeans/microwave/trunk/microwave-doc/
    openwebbeans/microwave/trunk/microwave-doc/pom.xml
    openwebbeans/microwave/trunk/microwave-doc/src/
    openwebbeans/microwave/trunk/microwave-doc/src/main/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/org/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/org/apache/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/JBake.java   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/PDFify.java   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/org/slf4j/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/slf4j/bridge/
    openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/slf4j/bridge/SLF4JBridgeHandler.java   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/assets/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/css/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/css/styles.css
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/images/
    
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/assets/images/empty.gif
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/js/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/js/main.js
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/bootstrap.min.css   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/bootstrap.min.css.map   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/fonts/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.svg
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/js/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/js/bootstrap.min.js   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/fonts/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/fonts/ElegantIcons.eot   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/fonts/ElegantIcons.svg   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/fonts/ElegantIcons.ttf   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/fonts/ElegantIcons.woff   (with
props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/elegant_font/css/style.css   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/css/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/css/font-awesome.min.css
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/FontAwesome.otf   (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/fontawesome-webfont.eot   (with
props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/fontawesome-webfont.svg
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/fontawesome-webfont.ttf   (with
props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff   (with
props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff2   (with
props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/jquery-1.12.3.min.js
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/jquery-match-height/
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/jquery-match-height/jquery.matchHeight-min.js   (with
props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/favicon.ico
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/favicon.png
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/content/
    
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/content/components.adoc
 (with props)
    
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/content/download.adoc
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/content/start.adoc
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/jbake.properties
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/templates/
    
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/templates/footer.gsp
 (with props)
    
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/templates/header.gsp
 (with props)
    
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/templates/index.gsp
 (with props)
    openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/templates/page.gsp
 (with props)
Modified:
    openwebbeans/microwave/trunk/microwave-arquillian/src/main/
java/org/apache/microwave/arquillian/MicrowaveConfiguration.java
    openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/Microwave.java
    openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/tomcat/TomcatAutoInitializer.java
    openwebbeans/microwave/trunk/microwave-gradle-plugin/src/
main/java/org/apache/microwave/gradle/MicrowaveExtension.java
    openwebbeans/microwave/trunk/microwave-gradle-plugin/src/
main/java/org/apache/microwave/gradle/MicrowaveTask.java
    openwebbeans/microwave/trunk/microwave-maven-plugin/src/
main/java/org/apache/microwave/maven/MicrowaveRunMojo.java
    openwebbeans/microwave/trunk/pom.xml

Modified: openwebbeans/microwave/trunk/microwave-arquillian/src/main/
java/org/apache/microwave/arquillian/MicrowaveConfiguration.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-arquillian/src/main/java/org/apache/microwave/arquillian/
MicrowaveConfiguration.java?rev=1766603&r1=1766602&r2=1766603&view=diff
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-arquillian/src/main/
java/org/apache/microwave/arquillian/MicrowaveConfiguration.java (original)
+++ openwebbeans/microwave/trunk/microwave-arquillian/src/main/
java/org/apache/microwave/arquillian/MicrowaveConfiguration.java Tue Oct 25
21:27:10 2016
@@ -75,6 +75,7 @@ public class MicrowaveConfiguration impl
     private boolean tomcatScanning = true;
     private boolean tomcatAutoSetup = true;
     private boolean useShutdownHook = false /*arquillian*/;
+    private boolean useTomcatDefaults = true;

     @Override
     public void validate() throws ConfigurationException {
@@ -494,4 +495,12 @@ public class MicrowaveConfiguration impl
     public void setTomcatFilter(final String tomcatFilter) {
         this.tomcatFilter = tomcatFilter;
     }
+
+    public boolean isUseTomcatDefaults() {
+        return useTomcatDefaults;
+    }
+
+    public void setUseTomcatDefaults(final boolean useTomcatDefaults) {
+        this.useTomcatDefaults = useTomcatDefaults;
+    }
 }

Modified: openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/Microwave.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-core/src/main/java/org/apache/microwave/
Microwave.java?rev=1766603&r1=1766602&r2=1766603&view=diff
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/Microwave.java (original)
+++ openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/Microwave.java Tue Oct 25 21:27:10 2016
@@ -214,6 +214,24 @@ public class Microwave implements AutoCl
             new TomcatAutoInitializer().onStartup(c, ctx1);
         }, emptySet());

+        if (configuration.isUseTomcatDefaults()) {
+            ctx.setSessionTimeout(30);
+            ctx.addWelcomeFile("index.html");
+            ctx.addWelcomeFile("index.htm");
+            try {
+                final Field mimesField = Tomcat.class.getDeclaredField(
"DEFAULT_MIME_MAPPINGS");
+                if (!mimesField.isAccessible()) {
+                    mimesField.setAccessible(true);
+                }
+                final String[] defaultMimes = String[].class.cast(
mimesField.get(null));
+                for (int i = 0; i < defaultMimes.length; ) {
+                    ctx.addMimeMapping(defaultMimes[i++],
defaultMimes[i++]);
+                }
+            } catch (final NoSuchFieldException | IllegalAccessException
e) {
+                throw new IllegalStateException("Incompatible Tomcat", e);
+            }
+        }
+
         ofNullable(meta.consumer).ifPresent(c -> c.accept(ctx));

         tomcat.getHost().addChild(ctx);
@@ -725,10 +743,21 @@ public class Microwave implements AutoCl
         @CliOption(name = "tomcat-filter", description = "A Tomcat
JarScanFilter")
         private String tomcatFilter;

+        @CliOption(name = "tomcat-default", description = "Should Tomcat
default be set (session timeout, mime mapping etc...)")
+        private boolean useTomcatDefaults = true;
+
         public Builder() { // load defaults
             loadFrom("microwave.properties");
         }

+        public boolean isUseTomcatDefaults() {
+            return useTomcatDefaults;
+        }
+
+        public void setUseTomcatDefaults(final boolean useTomcatDefaults) {
+            this.useTomcatDefaults = useTomcatDefaults;
+        }
+
         public String getTomcatFilter() {
             return tomcatFilter;
         }

Modified: openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/tomcat/TomcatAutoInitializer.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-core/src/main/java/org/apache/microwave/tomcat/
TomcatAutoInitializer.java?rev=1766603&r1=1766602&r2=1766603&view=diff
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/tomcat/TomcatAutoInitializer.java (original)
+++ openwebbeans/microwave/trunk/microwave-core/src/main/java/
org/apache/microwave/tomcat/TomcatAutoInitializer.java Tue Oct 25 21:27:10
2016
@@ -40,7 +40,5 @@ public class TomcatAutoInitializer imple
         def.setInitParameter("debug", "0");
         def.setLoadOnStartup(1);
         def.addMapping("/");
-
-        // TODO: mimetypes
     }
 }

Added: openwebbeans/microwave/trunk/microwave-doc/pom.xml
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/pom.xml?rev=1766603&view=auto
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-doc/pom.xml (added)
+++ openwebbeans/microwave/trunk/microwave-doc/pom.xml Tue Oct 25 21:27:10
2016
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="
+            http://maven.apache.org/POM/4.0.0
+            http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <parent>
+    <artifactId>microwave</artifactId>
+    <groupId>org.apache.microwave</groupId>
+    <version>0.0.1-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>microwave-doc</artifactId>
+  <name>Microwave :: Doc</name>
+
+  <properties>
+    <jbake.http>false</jbake.http>
+    <jbake.pdf>false</jbake.pdf>
+
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.asciidoctor</groupId>
+      <artifactId>asciidoctorj-pdf</artifactId>
+      <version>1.5.0-alpha.11</version>
+    </dependency>
+    <dependency>
+      <groupId>org.asciidoctor</groupId>
+      <artifactId>asciidoctorj</artifactId>
+      <version>1.5.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.microwave</groupId>
+      <artifactId>microwave-core</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jbake</groupId>
+      <artifactId>jbake-core</artifactId>
+      <version>2.4.0</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>jul-to-slf4j</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.groovy</groupId>
+      <artifactId>groovy</artifactId>
+      <version>2.3.6</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.groovy</groupId>
+      <artifactId>groovy-templates</artifactId>
+      <version>2.3.6</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.7</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <version>1.4.0</version>
+        <executions>
+          <execution>
+            <id>microwave-site</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>java</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <includeProjectDependencies>true</includeProjectDependencies>
+          <mainClass>org.apache.microwave.doc.JBake</mainClass>
+          <arguments>
+            <argument>${project.basedir}/src/main/jbake/</argument>
+            <argument>${project.build.directory}/${project.build.
finalName}</argument>
+            <argument>${jbake.http}</argument>
+            <argument>${jbake.pdf}</argument>
+          </arguments>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <!--
+  Don't deliver it yet.
+  -->
+  <distributionManagement>
+    <repository>
+      <id>localhost</id>
+      <url>file://${project.basedir}/target/repo/</url>
+    </repository>
+    <snapshotRepository>
+      <id>localhost</id>
+      <url>file://${project.basedir}/target/snapshot-repo/</url>
+    </snapshotRepository>
+  </distributionManagement>
+</project>

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/JBake.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/java/org/apache/microwave/doc/
JBake.java?rev=1766603&view=auto
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/JBake.java (added)
+++ openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/JBake.java Tue Oct 25 21:27:10 2016
@@ -0,0 +1,185 @@
+package org.apache.microwave.doc;
+
+import com.orientechnologies.orient.core.Orient;
+import org.apache.commons.configuration.CompositeConfiguration;
+import org.apache.microwave.Microwave;
+import org.jbake.app.ConfigUtil;
+import org.jbake.app.Oven;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.ClosedWatchServiceException;
+import java.nio.file.Path;
+import java.nio.file.WatchEvent;
+import java.nio.file.WatchKey;
+import java.nio.file.WatchService;
+import java.util.Scanner;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.stream.Stream;
+
+import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
+import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;
+import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;
+
+public class JBake {
+    private JBake() {
+        // no-op
+    }
+
+    public static void main(final String[] args) throws Exception {
+        
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism",
"64"); // try to have parallelStream better than default
+
+        final File source = args == null || args.length < 1 ? new
File("src/main/jbake") : new File(args[0]);
+        final File pdfSource = new File(source, "content");
+        final File destination = args == null || args.length < 2 ? new
File("target/site-tmp") : new File(args[1]);
+        final boolean startHttp = args == null || args.length < 2 ||
Boolean.parseBoolean(args[2]); // by default we dev
+        final boolean skipPdf = args == null || args.length < 3 ||
Boolean.parseBoolean(args[3]); // by default...too slow sorry
+
+        final Runnable build = () -> {
+            System.out.println("Building Microwave website in " +
destination);
+            final Orient orient = Orient.instance();
+            try {
+                orient.startup();
+
+                final Oven oven = new Oven(source, destination, new
CompositeConfiguration() {{
+                    addConfiguration(ConfigUtil.load(source));
+                }}, true);
+                oven.setupPaths();
+
+                System.out.println("  > baking");
+                oven.bake();
+
+                if (!skipPdf) {
+                    System.out.println("  > pdfifying");
+                    PDFify.generatePdf(pdfSource, destination);
+                }
+
+                System.out.println("  > done :)");
+            } catch (final Exception e) {
+                e.printStackTrace();
+            } finally {
+                orient.shutdown();
+            }
+        };
+
+        build.run();
+        if (startHttp) {
+            final Path watched = source.toPath();
+            final WatchService watchService = watched.getFileSystem().
newWatchService();
+            watched.register(watchService, ENTRY_CREATE, ENTRY_DELETE,
ENTRY_MODIFY);
+            final AtomicBoolean run = new AtomicBoolean(true);
+            final AtomicLong render = new AtomicLong(-1);
+            final Thread renderingThread = new Thread() {
+                {
+                    setName("jbake-renderer");
+                }
+
+                @Override
+                public void run() {
+                    long last = System.currentTimeMillis();
+                    while (run.get()) {
+                        if (render.get() > last) {
+                            last = System.currentTimeMillis();
+                            try {
+                                build.run();
+                            } catch (final Throwable oops) {
+                                oops.printStackTrace();
+                            }
+                        }
+                        try {
+                            sleep(TimeUnit.SECONDS.toMillis(1));
+                        } catch (final InterruptedException e) {
+                            Thread.interrupted();
+                            break;
+                        }
+                    }
+                    System.out.println("Exiting renderer");
+                }
+            };
+            final Thread watcherThread = new Thread() {
+                {
+                    setName("jbake-file-watcher");
+                }
+
+                @Override
+                public void run() {
+                    while (run.get()) {
+                        try {
+                            final WatchKey key = watchService.poll(1,
TimeUnit.SECONDS);
+                            if (key == null) {
+                                continue;
+                            }
+
+                            for (final WatchEvent<?> event :
key.pollEvents()) {
+                                final WatchEvent.Kind<?> kind =
event.kind();
+                                if (kind != ENTRY_CREATE && kind !=
ENTRY_DELETE && kind != ENTRY_MODIFY) {
+                                    continue; // unlikely but better to
protect ourself
+                                }
+
+                                final Path updatedPath =
Path.class.cast(event.context());
+                                if (kind == ENTRY_DELETE ||
updatedPath.toFile().isFile()) {
+                                    final String path =
updatedPath.toString();
+                                    if (!path.contains("___jb") &&
!path.endsWith("~")) {
+                                        render.set(System.
currentTimeMillis());
+                                    }
+                                }
+                            }
+                            key.reset();
+                        } catch (final InterruptedException e) {
+                            Thread.interrupted();
+                            run.compareAndSet(true, false);
+                        } catch (final ClosedWatchServiceException cwse) {
+                            if (!run.get()) {
+                                throw new IllegalStateException(cwse);
+                            }
+                        }
+                    }
+                    System.out.println("Exiting file watcher");
+                }
+            };
+
+            renderingThread.start();
+            watcherThread.start();
+
+            final Runnable onQuit = () -> {
+                run.compareAndSet(true, false);
+                Stream.of(watcherThread, renderingThread).forEach(thread
-> {
+                    try {
+                        thread.join();
+                    } catch (final InterruptedException e) {
+                        Thread.interrupted();
+                    }
+                });
+                try {
+                    watchService.close();
+                } catch (final IOException ioe) {
+                    // not important
+                }
+            };
+
+            try (final Microwave container = new Microwave(new
Microwave.Builder() {{
+                setWebResourceCached(false);
+            }}) {{
+                start();
+                deployWebapp(destination);
+            }}) {
+                System.out.println("Started on http://localhost:"; +
container.getConfiguration().getHttpPort());
+
+                final Scanner console = new Scanner(System.in);
+                String cmd;
+                while (((cmd = console.nextLine())) != null) {
+                    if ("quit".equals(cmd)) {
+                        break;
+                    } else if ("r".equals(cmd) || "rebuild".equals(cmd) ||
"build".equals(cmd) || "b".equals(cmd)) {
+                        render.set(System.currentTimeMillis());
+                    } else {
+                        System.err.println("Ignoring " + cmd + ", please
use 'build' or 'quit'");
+                    }
+                }
+            }
+            onQuit.run();
+        }
+    }
+}

Propchange: openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/JBake.java
------------------------------------------------------------
------------------
    svn:executable = *

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/PDFify.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/java/org/apache/microwave/doc/
PDFify.java?rev=1766603&view=auto
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/PDFify.java (added)
+++ openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/PDFify.java Tue Oct 25 21:27:10 2016
@@ -0,0 +1,74 @@
+/*
+ * 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.
+ */
+package org.apache.microwave.doc;
+
+import org.asciidoctor.Asciidoctor;
+import org.asciidoctor.AttributesBuilder;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import static org.asciidoctor.OptionsBuilder.options;
+
+public class PDFify {
+    private PDFify() {
+        // no-op
+    }
+
+    public static void generatePdf(final File from, final File targetBase)
throws IOException {
+        final Path sourceBase = from.toPath();
+        final Asciidoctor asciidoctor = Asciidoctor.Factory.create();
+        final ExecutorService pool = Executors.newFixedThreadPool(16);
+        Files.walkFileTree(sourceBase, new SimpleFileVisitor<Path>() {
+            @Override
+            public FileVisitResult visitFile(final Path file, final
BasicFileAttributes attrs) throws IOException {
+                final String fileName = file.getFileName().toString();
+                if (fileName.endsWith(".adoc")) {
+                    pool.submit(() -> {
+                        final String path = sourceBase.relativize(file).
toString();
+                        final File target = new File(targetBase,
path.substring(0, path.length() - "adoc".length()) + "pdf");
+                        final File asFile = file.toFile();
+                        final Map<String, Object> attributes = asciidoctor.
readDocumentHeader(asFile).getAttributes();
+                        // if we generate the PDF link we need to create
the PDF excepted if it is expected to be manual
+                        if (attributes.containsKey("jbake-microwavepdf")
&& !attributes.containsKey("jbake-microwavepdf-manual")) {
+                            asciidoctor.convertFile(
+                                    asFile,
+                                    options().backend("pdf").
attributes(AttributesBuilder.attributes().attribute("source-highlighter",
"coderay")).toFile(target).get());
+                            System.out.println("Generated " + target);
+                        }
+                    });
+                }
+                return super.visitFile(file, attrs);
+            }
+        });
+        pool.shutdown();
+        try {
+            pool.awaitTermination(1, TimeUnit.HOURS);
+        } catch (final InterruptedException e) {
+            Thread.interrupted();
+        }
+    }
+}

Propchange: openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/apache/microwave/doc/PDFify.java
------------------------------------------------------------
------------------
    svn:executable = *

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/slf4j/bridge/SLF4JBridgeHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/java/org/slf4j/bridge/SLF4JBridgeHandler.java?rev=
1766603&view=auto
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/slf4j/bridge/SLF4JBridgeHandler.java (added)
+++ openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/slf4j/bridge/SLF4JBridgeHandler.java Tue Oct 25 21:27:10 2016
@@ -0,0 +1,7 @@
+package org.slf4j.bridge;
+
+// dep of org.jbake.app.Oven but we don't want the bridge there
+public class SLF4JBridgeHandler {
+    public static void removeHandlersForRootLogger(){}
+    public static void install() {}
+}

Propchange: openwebbeans/microwave/trunk/microwave-doc/src/main/java/
org/slf4j/bridge/SLF4JBridgeHandler.java
------------------------------------------------------------
------------------
    svn:executable = *

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/css/styles.css
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/jbake/assets/assets/css/styles.css?
rev=1766603&view=auto
============================================================
==================
--- 
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/assets/css/styles.css
(added)
+++ 
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/assets/css/styles.css
Tue Oct 25 21:27:10 2016
@@ -0,0 +1,1268 @@
+/*
+ * Template Name: PrettyDocs - Responsive Website Template for
documentations
+ * Version: 1.0
+ * Author: Xiaoying Riley
+ * License: Creative Commons Attribution 3.0 License -
https://creativecommons.org/licenses/by/3.0/
+ * Twitter: @3rdwave_themes
+ * Website: http://themes.3rdwavemedia.com/
+*/
+/* Theme default */
+/* ======= Base ======= */
+body {
+  font-family: 'Open Sans', arial, sans-serif;
+  color: #494d55;
+  font-size: 14px;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+html,
+body {
+  height: 100%;
+}
+.page-wrapper {
+  min-height: 100%;
+  /* equal to footer height */
+  margin-bottom: -50px;
+}
+.page-wrapper:after {
+  content: "";
+  display: block;
+  height: 50px;
+}
+.footer {
+  height: 50px;
+}
+p {
+  line-height: 1.5;
+}
+a {
+  color: #3aa7aa;
+  -webkit-transition: all 0.4s ease-in-out;
+  -moz-transition: all 0.4s ease-in-out;
+  -ms-transition: all 0.4s ease-in-out;
+  -o-transition: all 0.4s ease-in-out;
+}
+a:hover {
+  text-decoration: underline;
+  color: #339597;
+}
+a:focus {
+  text-decoration: none;
+}
+code {
+  background: #222;
+  color: #fff;
+  font-size: 14px;
+  font-weight: bold;
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  padding: 2px 8px;
+  padding-top: 4px;
+  display: inline-block;
+}
+.btn,
+a.btn {
+  -webkit-transition: all 0.4s ease-in-out;
+  -moz-transition: all 0.4s ease-in-out;
+  -ms-transition: all 0.4s ease-in-out;
+  -o-transition: all 0.4s ease-in-out;
+  font-weight: 600;
+  font-size: 14px;
+  line-height: 1.5;
+}
+.btn .fa,
+a.btn .fa {
+  margin-right: 5px;
+}
+.btn-primary,
+a.btn-primary {
+  background: #40babd;
+  border: 1px solid #40babd;
+  color: #fff !important;
+}
+.btn-primary:hover,
+a.btn-primary:hover,
+.btn-primary:focus,
+a.btn-primary:focus,
+.btn-primary:active,
+a.btn-primary:active,
+.btn-primary.active,
+a.btn-primary.active,
+.btn-primary.hover,
+a.btn-primary.hover {
+  background: #3aa7aa;
+  color: #fff !important;
+  border: 1px solid #3aa7aa;
+}
+.btn-green,
+a.btn-green {
+  background: #75c181;
+  border: 1px solid #75c181;
+  color: #fff !important;
+}
+.btn-green:hover,
+a.btn-green:hover,
+.btn-green:focus,
+a.btn-green:focus,
+.btn-green:active,
+a.btn-green:active,
+.btn-green.active,
+a.btn-green.active,
+.btn-green.hover,
+a.btn-green.hover {
+  background: #63b971;
+  color: #fff !important;
+  border: 1px solid #63b971;
+}
+.body-green .btn-green,
+.body-green a.btn-green {
+  color: #fff !important;
+}
+.body-green .btn-green:hover,
+.body-green a.btn-green:hover,
+.body-green .btn-green:focus,
+.body-green a.btn-green:focus,
+.body-green .btn-green:active,
+.body-green a.btn-green:active,
+.body-green .btn-green.active,
+.body-green a.btn-green.active,
+.body-green .btn-green.hover,
+.body-green a.btn-green.hover {
+  color: #fff !important;
+}
+.btn-blue,
+a.btn-blue {
+  background: #58bbee;
+  border: 1px solid #58bbee;
+  color: #fff !important;
+}
+.btn-blue:hover,
+a.btn-blue:hover,
+.btn-blue:focus,
+a.btn-blue:focus,
+.btn-blue:active,
+a.btn-blue:active,
+.btn-blue.active,
+a.btn-blue.active,
+.btn-blue.hover,
+a.btn-blue.hover {
+  background: #41b2ec;
+  color: #fff !important;
+  border: 1px solid #41b2ec;
+}
+.btn-orange,
+a.btn-orange {
+  background: #F88C30;
+  border: 1px solid #F88C30;
+  color: #fff !important;
+}
+.btn-orange:hover,
+a.btn-orange:hover,
+.btn-orange:focus,
+a.btn-orange:focus,
+.btn-orange:active,
+a.btn-orange:active,
+.btn-orange.active,
+a.btn-orange.active,
+.btn-orange.hover,
+a.btn-orange.hover {
+  background: #f77e17;
+  color: #fff !important;
+  border: 1px solid #f77e17;
+}
+.btn-red,
+a.btn-red {
+  background: #f77b6b;
+  border: 1px solid #f77b6b;
+  color: #fff !important;
+}
+.btn-red:hover,
+a.btn-red:hover,
+.btn-red:focus,
+a.btn-red:focus,
+.btn-red:active,
+a.btn-red:active,
+.btn-red.active,
+a.btn-red.active,
+.btn-red.hover,
+a.btn-red.hover {
+  background: #f66553;
+  color: #fff !important;
+  border: 1px solid #f66553;
+}
+.btn-pink,
+a.btn-pink {
+  background: #EA5395;
+  border: 1px solid #EA5395;
+  color: #fff !important;
+}
+.btn-pink:hover,
+a.btn-pink:hover,
+.btn-pink:focus,
+a.btn-pink:focus,
+.btn-pink:active,
+a.btn-pink:active,
+.btn-pink.active,
+a.btn-pink.active,
+.btn-pink.hover,
+a.btn-pink.hover {
+  background: #e73c87;
+  color: #fff !important;
+  border: 1px solid #e73c87;
+}
+.btn-purple,
+a.btn-purple {
+  background: #8A40A7;
+  border: 1px solid #8A40A7;
+  color: #fff !important;
+}
+.btn-purple:hover,
+a.btn-purple:hover,
+.btn-purple:focus,
+a.btn-purple:focus,
+.btn-purple:active,
+a.btn-purple:active,
+.btn-purple.active,
+a.btn-purple.active,
+.btn-purple.hover,
+a.btn-purple.hover {
+  background: #7b3995;
+  color: #fff !important;
+  border: 1px solid #7b3995;
+}
+.btn-cta {
+  padding: 7px 15px;
+}
+.form-control {
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
+  height: 40px;
+  border-color: #f0f0f0;
+}
+.form-control::-webkit-input-placeholder {
+  /* WebKit browsers */
+  color: #afb3bb;
+}
+.form-control:-moz-placeholder {
+  /* Mozilla Firefox 4 to 18 */
+  color: #afb3bb;
+}
+.form-control::-moz-placeholder {
+  /* Mozilla Firefox 19+ */
+  color: #afb3bb;
+}
+.form-control:-ms-input-placeholder {
+  /* Internet Explorer 10+ */
+  color: #afb3bb;
+}
+.form-control:focus {
+  border-color: #e3e3e3;
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
+}
+input[type="text"],
+input[type="email"],
+input[type="password"],
+input[type="submit"],
+input[type="button"],
+textarea,
+select {
+  appearance: none;
+  /* for mobile safari */
+  -webkit-appearance: none;
+}
+#topcontrol {
+  background: #40babd;
+  color: #fff;
+  text-align: center;
+  display: inline-block;
+  width: 35px;
+  height: 35px;
+  border: none;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -o-border-radius: 4px;
+  border-radius: 4px;
+  -moz-background-clip: padding;
+  -webkit-background-clip: padding-box;
+  background-clip: padding-box;
+  -webkit-transition: all 0.4s ease-in-out;
+  -moz-transition: all 0.4s ease-in-out;
+  -ms-transition: all 0.4s ease-in-out;
+  -o-transition: all 0.4s ease-in-out;
+  z-index: 30;
+}
+#topcontrol:hover {
+  background: #52c2c4;
+}
+#topcontrol .fa {
+  position: relative;
+  top: 3px;
+  font-size: 25px;
+}
+.video-container iframe {
+  max-width: 100%;
+}
+/* ====== Header ====== */
+.header {
+  background: #494d55;
+  color: rgba(255, 255, 255, 0.85);
+  border-top: 5px solid #40babd;
+  padding: 30px 0;
+}
+.header a {
+  color: #fff;
+}
+.branding {
+  text-transform: uppercase;
+  margin-bottom: 10px;
+}
+.branding .logo {
+  font-size: 28px;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.branding .logo a {
+  text-decoration: none;
+}
+.branding .text-highlight {
+  color: #40babd;
+}
+.body-green .branding .text-highlight {
+  color: #75c181;
+}
+.body-blue .branding .text-highlight {
+  color: #58bbee;
+}
+.body-orange .branding .text-highlight {
+  color: #F88C30;
+}
+.body-red .branding .text-highlight {
+  color: #f77b6b;
+}
+.body-pink .branding .text-highlight {
+  color: #EA5395;
+}
+.body-purple .branding .text-highlight {
+  color: #8A40A7;
+}
+.branding .text-bold {
+  font-weight: 800;
+  color: #fff;
+}
+.branding .icon {
+  font-size: 24px;
+  color: #40babd;
+}
+.body-green .branding .icon {
+  color: #75c181;
+}
+.body-blue .branding .icon {
+  color: #58bbee;
+}
+.body-orange .branding .icon {
+  color: #F88C30;
+}
+.body-red .branding .icon {
+  color: #f77b6b;
+}
+.body-pink .branding .icon {
+  color: #EA5395;
+}
+.body-purple .branding .icon {
+  color: #8A40A7;
+}
+.breadcrumb {
+  background: none;
+  margin-bottom: 0;
+  padding: 0;
+}
+.breadcrumb li {
+  color: rgba(255, 255, 255, 0.5);
+}
+.breadcrumb li.active {
+  color: rgba(255, 255, 255, 0.5);
+}
+.breadcrumb li a {
+  color: rgba(255, 255, 255, 0.5);
+}
+.breadcrumb li a:hover {
+  color: #fff;
+}
+.breadcrumb > li + li:before {
+  color: rgba(0, 0, 0, 0.4);
+}
+/* ====== Footer ====== */
+.footer {
+  background: #26282c;
+  color: rgba(255, 255, 255, 0.6);
+  padding: 15px 0;
+}
+.footer a {
+  color: #40babd;
+}
+.footer .fa-heart {
+  color: #EA5395;
+}
+/* ======= Doc Styling ======= */
+.doc-wrapper {
+  padding: 45px 0;
+  background: #f9f9fb;
+}
+.doc-body {
+  position: relative;
+  min-height: 200px;
+}
+.doc-header {
+  margin-bottom: 30px;
+}
+.doc-header .doc-title {
+  color: #40babd;
+  margin-top: 0;
+  font-size: 36px;
+}
+.body-green .doc-header .doc-title {
+  color: #75c181;
+}
+.body-blue .doc-header .doc-title {
+  color: #58bbee;
+}
+.body-orange .doc-header .doc-title {
+  color: #F88C30;
+}
+.body-red .doc-header .doc-title {
+  color: #f77b6b;
+}
+.body-pink .doc-header .doc-title {
+  color: #EA5395;
+}
+.body-purple .doc-header .doc-title {
+  color: #8A40A7;
+}
+.doc-header .icon {
+  font-size: 30px;
+}
+.doc-header .meta {
+  color: #a2a6af;
+}
+.doc-content {
+  margin-left: 230px;
+}
+.doc-section {
+  padding-top: 15px;
+  padding-bottom: 15px;
+}
+.doc-section .section-title {
+  font-size: 26px;
+  margin-top: 0;
+  margin-bottom: 0;
+  font-weight: bold;
+  padding-bottom: 10px;
+  border-bottom: 1px solid #d7d7d7;
+}
+.doc-section h1 {
+  font-size: 24px;
+  font-weight: bold;
+}
+.doc-section h2 {
+  font-size: 22px;
+  font-weight: bold;
+}
+.doc-section h3 {
+  font-size: 20px;
+  font-weight: bold;
+}
+.doc-section h4 {
+  font-size: 18px;
+  font-weight: bold;
+}
+.doc-section h5 {
+  font-size: 16px;
+  font-weight: bold;
+}
+.doc-section h6 {
+  font-size: 14px;
+  font-weight: bold;
+}
+.section-block {
+  padding-top: 15px;
+  padding-bottom: 15px;
+}
+.section-block .block-title {
+  margin-top: 0;
+}
+.section-block .list > li {
+  margin-bottom: 10px;
+}
+.section-block .list ul > li {
+  margin-top: 5px;
+}
+.question {
+  font-weight: 400 !important;
+  color: #3aa7aa;
+}
+.question .body-green {
+  color: #63b971;
+}
+.body-blue .question {
+  color: #41b2ec;
+}
+.body-orange .question {
+  color: #f77e17;
+}
+.body-pink .question {
+  color: #e73c87;
+}
+.body-purple .question {
+  color: #7b3995;
+}
+.question .fa {
+  -webkit-opacity: 0.6;
+  -moz-opacity: 0.6;
+  opacity: 0.6;
+}
+.question .label {
+  font-size: 11px;
+  vertical-align: middle;
+}
+.answer {
+  color: #616670;
+}
+.code-block {
+  margin-top: 30px;
+  margin-bottom: 30px;
+}
+.callout-block {
+  padding: 30px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -o-border-radius: 4px;
+  border-radius: 4px;
+  -moz-background-clip: padding;
+  -webkit-background-clip: padding-box;
+  background-clip: padding-box;
+  position: relative;
+  margin-bottom: 30px;
+}
+.callout-block a {
+  color: rgba(0, 0, 0, 0.55) !important;
+}
+.callout-block a:hover {
+  color: rgba(0, 0, 0, 0.65) !important;
+}
+.callout-block .icon-holder {
+  font-size: 30px;
+  position: absolute;
+  left: 30px;
+  top: 30px;
+  color: rgba(0, 0, 0, 0.25);
+}
+.callout-block .content {
+  margin-left: 60px;
+}
+.callout-block .content p:last-child {
+  margin-bottom: 0;
+}
+.callout-block .callout-title {
+  margin-top: 0;
+  margin-bottom: 5px;
+  color: rgba(0, 0, 0, 0.65);
+}
+.callout-info {
+  background: #58bbee;
+  color: #fff;
+}
+.callout-success {
+  background: #75c181;
+  color: #fff;
+}
+.callout-warning {
+  background: #F88C30;
+  color: #fff;
+}
+.callout-danger {
+  background: #f77b6b;
+  color: #fff;
+}
+.table > thead > tr > th {
+  border-bottom-color: #8bd6d8;
+}
+.body-green .table > thead > tr > th {
+  border-bottom-color: #bbe1c1;
+}
+.body-blue .table > thead > tr > th {
+  border-bottom-color: #b5e1f7;
+}
+.body-orange .table > thead > tr > th {
+  border-bottom-color: #fbc393;
+}
+.body-pink .table > thead > tr > th {
+  border-bottom-color: #f5aecd;
+}
+.body-purple .table > thead > tr > th {
+  border-bottom-color: #b87fce;
+}
+.table-bordered > thead > tr > th {
+  border-bottom-color: inherit;
+}
+.table-striped > tbody > tr:nth-of-type(odd) {
+  background-color: #f5f5f5;
+}
+.screenshot-holder {
+  margin-top: 15px;
+  margin-bottom: 15px;
+  position: relative;
+  text-align: center;
+}
+.screenshot-holder img {
+  border: 1px solid #f0f0f0;
+}
+.screenshot-holder .mask {
+  display: block;
+  visibility: hidden;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  background: rgba(0, 0, 0, 0.25);
+  cursor: pointer;
+  text-decoration: none;
+}
+.screenshot-holder .mask .icon {
+  color: #fff;
+  font-size: 42px;
+  display: block;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 50%;
+  margin-top: -21px;
+}
+.screenshot-holder:hover .mask {
+  visibility: visible;
+}
+.jumbotron h1 {
+  font-size: 28px;
+  margin-top: 0;
+  margin-bottom: 30px;
+}
+.author-profile {
+  margin-top: 30px;
+}
+.author-profile img {
+  width: 100px;
+  height: 100px;
+}
+.speech-bubble {
+  background: #fff;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -o-border-radius: 4px;
+  border-radius: 4px;
+  -moz-background-clip: padding;
+  -webkit-background-clip: padding-box;
+  background-clip: padding-box;
+  padding: 30px;
+  margin-top: 20px;
+  margin-bottom: 30px;
+  position: relative;
+}
+.speech-bubble .speech-title {
+  font-size: 16px;
+}
+.jumbotron .speech-bubble p {
+  font-size: 14px;
+  font-weight: normal;
+  color: #616670;
+}
+.speech-bubble:before {
+  content: "";
+  display: inline-block;
+  position: absolute;
+  left: 50%;
+  top: -10px;
+  margin-left: -10px;
+  width: 0;
+  height: 0;
+  border-left: 10px solid transparent;
+  border-right: 10px solid transparent;
+  border-bottom: 10px solid #fff;
+}
+.card {
+  text-align: center;
+  border: 1px solid #e3e3e3;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -o-border-radius: 4px;
+  border-radius: 4px;
+  -moz-background-clip: padding;
+  -webkit-background-clip: padding-box;
+  background-clip: padding-box;
+  margin-bottom: 30px;
+  position: relative;
+}
+.card .card-block {
+  padding: 15px;
+}
+.card .mask {
+  display: block;
+  visibility: hidden;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  background: rgba(0, 0, 0, 0.25);
+  cursor: pointer;
+  text-decoration: none;
+}
+.card .mask .icon {
+  color: #fff;
+  font-size: 42px;
+  margin-top: 25%;
+}
+.card:hover .mask {
+  visibility: visible;
+}
+/* Color Schemes */
+.body-green .header {
+  border-color: #75c181;
+}
+.body-green a {
+  color: #75c181;
+}
+.body-green a:hover {
+  color: #52b161;
+}
+.body-blue .header {
+  border-color: #58bbee;
+}
+.body-blue a {
+  color: #58bbee;
+}
+.body-blue a:hover {
+  color: #2aa8e9;
+}
+.body-orange .header {
+  border-color: #F88C30;
+}
+.body-orange a {
+  color: #F88C30;
+}
+.body-orange a:hover {
+  color: #ed7108;
+}
+.body-pink .header {
+  border-color: #EA5395;
+}
+.body-pink a {
+  color: #EA5395;
+}
+.body-pink a:hover {
+  color: #e42679;
+}
+.body-purple .header {
+  border-color: #8A40A7;
+}
+.body-purple a {
+  color: #8A40A7;
+}
+.body-purple a:hover {
+  color: #6c3282;
+}
+.body-red .header {
+  border-color: #f77b6b;
+}
+.body-red a {
+  color: #f77b6b;
+}
+.body-red a:hover {
+  color: #f4503b;
+}
+/* Sidebar */
+.doc-sidebar {
+  width: 200px;
+}
+.doc-menu {
+  list-style: none;
+  padding-left: 0;
+}
+.doc-menu > li {
+  margin-bottom: 5px;
+}
+.doc-menu > li > a {
+  display: block;
+  padding: 5px 15px;
+  border-left: 4px solid transparent;
+  color: #616670;
+}
+.doc-menu > li > a:hover,
+.doc-menu > li > a:focus {
+  color: #40babd;
+  text-decoration: none;
+  background: none;
+}
+.body-green .doc-menu > li > a:hover,
+.body-green .doc-menu > li > a:focus {
+  color: #75c181;
+}
+.body-blue .doc-menu > li > a:hover,
+.body-blue .doc-menu > li > a:focus {
+  color: #58bbee;
+}
+.body-orange .doc-menu > li > a:hover,
+.body-orange .doc-menu > li > a:focus {
+  color: #F88C30;
+}
+.body-red .doc-menu > li > a:hover,
+.body-red .doc-menu > li > a:focus {
+  color: #f77b6b;
+}
+.body-pink .doc-menu > li > a:hover,
+.body-pink .doc-menu > li > a:focus {
+  color: #EA5395;
+}
+.body-purple .doc-menu > li > a:hover,
+.body-purple .doc-menu > li > a:focus {
+  color: #8A40A7;
+}
+.doc-menu > li.active > a {
+  background: none;
+  border-left: 4px solid #40babd;
+  color: #40babd;
+  font-weight: 600;
+}
+.body-green .doc-menu > li.active > a {
+  color: #75c181;
+  border-color: #75c181;
+}
+.body-blue .doc-menu > li.active > a {
+  color: #58bbee;
+  border-color: #58bbee;
+}
+.body-orange .doc-menu > li.active > a {
+  color: #F88C30;
+  border-color: #F88C30;
+}
+.body-red .doc-menu > li.active > a {
+  color: #f77b6b;
+  border-color: #f77b6b;
+}
+.body-pink .doc-menu > li.active > a {
+  color: #EA5395;
+  border-color: #EA5395;
+}
+.body-purple .doc-menu > li.active > a {
+  color: #8A40A7;
+  border-color: #8A40A7;
+}
+.doc-sub-menu {
+  list-style: none;
+  padding-left: 0;
+}
+.doc-sub-menu > li {
+  margin-bottom: 10px;
+  font-size: 12px;
+}
+.doc-sub-menu > li:first-child {
+  padding-top: 5px;
+}
+.doc-sub-menu > li > a {
+  display: block;
+  color: #616670;
+  padding: 0;
+  padding-left: 34px;
+  background: none;
+}
+.doc-sub-menu > li > a:hover {
+  color: #40babd;
+  text-decoration: none;
+  background: none;
+}
+.body-green .doc-sub-menu > li > a:hover {
+  color: #75c181;
+}
+.body-blue .doc-sub-menu > li > a:hover {
+  color: #58bbee;
+}
+.body-orange .doc-sub-menu > li > a:hover {
+  color: #F88C30;
+}
+.body-red .doc-sub-menu > li > a:hover {
+  color: #f77b6b;
+}
+.body-pink .doc-sub-menu > li > a:hover {
+  color: #EA5395;
+}
+.body-purple .doc-sub-menu > li > a:hover {
+  color: #8A40A7;
+}
+.doc-sub-menu > li > a:focus {
+  background: none;
+}
+.doc-sub-menu > li.active > a {
+  background: none;
+  color: #40babd;
+}
+.body-green .doc-sub-menu > li.active > a {
+  color: #75c181;
+}
+.body-blue .doc-sub-menu > li.active > a {
+  color: #58bbee;
+}
+.body-orange .doc-sub-menu > li.active > a {
+  color: #F88C30;
+}
+.body-red .doc-sub-menu > li.active > a {
+  color: #f77b6b;
+}
+.body-pink .doc-sub-menu > li.active > a {
+  color: #EA5395;
+}
+.body-purple .doc-sub-menu > li.active > a {
+  color: #8A40A7;
+}
+.affix-top {
+  position: absolute;
+  top: 15px;
+}
+.affix {
+  top: 15px;
+}
+.affix,
+.affix-bottom {
+  width: 230px;
+}
+.affix-bottom {
+  position: absolute;
+}
+/* ===== Promo block ===== */
+.promo-block {
+  background: #3aa7aa;
+}
+.body-green .promo-block {
+  background: #63b971;
+}
+.body-blue .promo-block {
+  background: #41b2ec;
+}
+.body-orange .promo-block {
+  background: #f77e17;
+}
+.body-pink .promo-block {
+  background: #e73c87;
+}
+.body-purple .promo-block {
+  background: #7b3995;
+}
+.promo-block a {
+  color: rgba(0, 0, 0, 0.5);
+}
+.promo-block a:hover {
+  color: rgba(0, 0, 0, 0.6);
+}
+.promo-block .promo-block-inner {
+  padding: 45px;
+  color: #fff;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -o-border-radius: 4px;
+  border-radius: 4px;
+  -moz-background-clip: padding;
+  -webkit-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.promo-block .promo-title {
+  font-size: 20px;
+  font-weight: 800;
+  margin-top: 0;
+  margin-bottom: 45px;
+}
+.promo-block .promo-title .fa {
+  color: rgba(0, 0, 0, 0.5);
+}
+.promo-block .figure-holder-inner {
+  background: #fff;
+  margin-bottom: 30px;
+  position: relative;
+  text-align: center;
+}
+.promo-block .figure-holder-inner img {
+  border: 5px solid #fff;
+}
+.promo-block .figure-holder-inner .mask {
+  display: block;
+  visibility: hidden;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  background: rgba(255, 255, 255, 0.65);
+  cursor: pointer;
+  text-decoration: none;
+}
+.promo-block .figure-holder-inner .mask .icon {
+  color: #fff;
+  font-size: 42px;
+  display: block;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 50%;
+  margin-top: -21px;
+}
+.promo-block .figure-holder-inner .mask .icon.pink {
+  color: #EA5395;
+}
+.promo-block .figure-holder-inner:hover .mask {
+  visibility: visible;
+}
+.promo-block .content-holder-inner {
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.promo-block .content-title {
+  font-size: 16px;
+  font-weight: 600;
+  margin-top: 0;
+}
+.promo-block .highlight {
+  color: rgba(0, 0, 0, 0.4);
+}
+.promo-block .btn-cta {
+  background: rgba(0, 0, 0, 0.35);
+  border: none;
+  color: #fff !important;
+  margin-bottom: 15px;
+}
+.promo-block .btn-cta:hover {
+  background: rgba(0, 0, 0, 0.5);
+  border: none;
+  color: #fff !important;
+}
+/* Extra small devices (phones, less than 768px) */
+@media (max-width: 767px) {
+  .doc-content {
+    margin-left: 0;
+  }
+  .jumbotron {
+    padding: 30px 15px;
+  }
+  .jumbotron h1 {
+    font-size: 24px;
+    margin-bottom: 15px;
+  }
+  .jumbotron p {
+    font-size: 18px;
+  }
+  .promo-block .promo-block-inner {
+    padding: 30px 15px;
+  }
+  .promo-block .content-holder-inner {
+    padding: 0;
+  }
+  .promo-block .promo-title {
+    margin-bottom: 30px;
+  }
+}
+/* Small devices (tablets, 768px and up) */
+/* Medium devices (desktops, 992px and up) */
+/* Large devices (large desktops, 1200px and up) */
+/* ======= Landing Page ======= */
+.landing-page .header {
+  background: #494d55;
+  color: rgba(255, 255, 255, 0.85);
+  padding: 60px 0;
+}
+.landing-page .header a {
+  color: #fff;
+}
+.landing-page .branding {
+  text-transform: uppercase;
+  margin-bottom: 20px;
+}
+.landing-page .branding .logo {
+  font-size: 38px;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.landing-page .branding .text-bold {
+  font-weight: 800;
+  color: #fff;
+}
+.landing-page .branding .icon {
+  font-size: 32px;
+  color: #40babd;
+}
+.landing-page .tagline {
+  font-weight: 600;
+  font-size: 20px;
+}
+.landing-page .tagline p {
+  margin-bottom: 5px;
+}
+.landing-page .tagline .text-highlight {
+  color: #266f71;
+}
+.landing-page .fa-heart {
+  color: #EA5395;
+}
+.landing-page .cta-container {
+  margin-top: 30px;
+}
+.landing-page .social-container {
+  margin-top: 30px;
+}
+.landing-page .social-container .twitter-tweet {
+  display: inline-block;
+  margin-right: 5px;
+  position: relative;
+  top: 5px;
+}
+.landing-page .social-container .fab-like {
+  display: inline-block;
+}
+.cards-section {
+  padding: 60px 0;
+  background: #f9f9fb;
+}
+.cards-section .title {
+  margin-top: 0;
+  margin-bottom: 15px;
+  font-size: 24px;
+  font-weight: 600;
+}
+.cards-section .intro {
+  margin: 0 auto;
+  max-width: 800px;
+  margin-bottom: 60px;
+  color: #616670;
+}
+.cards-section .cards-wrapper {
+  max-width: 860px;
+  margin-left: auto;
+  margin-right: auto;
+}
+.cards-section .item {
+  margin-bottom: 30px;
+}
+.cards-section .item .icon-holder {
+  margin-bottom: 15px;
+}
+.cards-section .item .icon {
+  font-size: 36px;
+}
+.cards-section .item .title {
+  font-size: 16px;
+  font-weight: 600;
+}
+.cards-section .item .intro {
+  margin-bottom: 15px;
+}
+.cards-section .item-inner {
+  padding: 45px 30px;
+  background: #fff;
+  position: relative;
+  border: 1px solid #f0f0f0;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  -ms-border-radius: 4px;
+  -o-border-radius: 4px;
+  border-radius: 4px;
+  -moz-background-clip: padding;
+  -webkit-background-clip: padding-box;
+  background-clip: padding-box;
+}
+.cards-section .item-inner .link {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  z-index: 1;
+  background-image: url("../images/empty.gif");
+  /* for IE8 */
+}
+.cards-section .item-inner:hover {
+  background: #f5f5f5;
+}
+.cards-section .item-primary .item-inner {
+  border-top: 3px solid #40babd;
+}
+.cards-section .item-primary .item-inner:hover .title {
+  color: #2d8284;
+}
+.cards-section .item-primary .icon {
+  color: #40babd;
+}
+.cards-section .item-green .item-inner {
+  border-top: 3px solid #75c181;
+}
+.cards-section .item-green .item-inner:hover .title {
+  color: #48a156;
+}
+.cards-section .item-green .icon {
+  color: #75c181;
+}
+.cards-section .item-blue .item-inner {
+  border-top: 3px solid #58bbee;
+}
+.cards-section .item-blue .item-inner:hover .title {
+  color: #179de2;
+}
+.cards-section .item-blue .icon {
+  color: #58bbee;
+}
+.cards-section .item-orange .item-inner {
+  border-top: 3px solid #F88C30;
+}
+.cards-section .item-orange .item-inner:hover .title {
+  color: #d46607;
+}
+.cards-section .item-orange .icon {
+  color: #F88C30;
+}
+.cards-section .item-red .item-inner {
+  border-top: 3px solid #f77b6b;
+}
+.cards-section .item-red .item-inner:hover .title {
+  color: #f33a22;
+}
+.cards-section .item-red .icon {
+  color: #f77b6b;
+}
+.cards-section .item-pink .item-inner {
+  border-top: 3px solid #EA5395;
+}
+.cards-section .item-pink .item-inner:hover .title {
+  color: #d61a6c;
+}
+.cards-section .item-pink .icon {
+  color: #EA5395;
+}
+.cards-section .item-purple .item-inner {
+  border-top: 3px solid #8A40A7;
+}
+.cards-section .item-purple .item-inner:hover .title {
+  color: #5c2b70;
+}
+.cards-section .item-purple .icon {
+  color: #8A40A7;
+}
+/* Extra small devices (phones, less than 768px) */
+@media (max-width: 767px) {
+  .cards-section .item-inner {
+    padding: 30px 15px;
+  }
+}
+/* Small devices (tablets, 768px and up) */
+/* Medium devices (desktops, 992px and up) */
+/* Large devices (large desktops, 1200px and up) */

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/images/empty.gif
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/jbake/assets/assets/images/empty.
gif?rev=1766603&view=auto
============================================================
==================
Binary file - no diff available.

Propchange: openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/images/empty.gif
------------------------------------------------------------
------------------
    svn:mime-type = application/octet-stream

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/js/main.js
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/jbake/assets/assets/js/main.js?rev=1766603&view=auto
============================================================
==================
--- 
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/assets/js/main.js
(added)
+++ 
openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/assets/assets/js/main.js
Tue Oct 25 21:27:10 2016
@@ -0,0 +1,49 @@
+$(document).ready(function() {
+
+       /* ===== Affix Sidebar ===== */
+       /* Ref: http://getbootstrap.com/javascript/#affix-examples */
+
+
+       $('#doc-menu').affix({
+        offset: {
+            top: ($('#header').outerHeight(true) +
$('#doc-header').outerHeight(true)) + 45,
+            bottom: ($('#footer').outerHeight(true) +
$('#promo-block').outerHeight(true)) + 75
+        }
+    });
+
+    /* Hack related to: https://github.com/twbs/bootstrap/issues/10236 */
+    $(window).on('load resize', function() {
+        $(window).trigger('scroll');
+    });
+
+    /* Activate scrollspy menu */
+    $('body').scrollspy({target: '#doc-nav', offset: 100});
+
+    /*
+    // Smooth scrolling
+       $('a.scrollto').on('click', function(e){
+        //store hash
+        var target = this.hash;
+        e.preventDefault();
+               $('body').scrollTo(target, 800, {offset: 0, 'axis':'y'});
+
+       });
+       */
+
+
+    /* ======= jQuery Responsive equal heights plugin ======= */
+    /* Ref: https://github.com/liabru/jquery-match-height */
+
+     $('#cards-wrapper .item-inner').matchHeight();
+     $('#showcase .card').matchHeight();
+
+    /* Bootstrap lightbox */
+    /* Ref: http://ashleydw.github.io/lightbox/ */
+
+    $(document).delegate('*[data-toggle="lightbox"]', 'click', function(e)
{
+        e.preventDefault();
+        $(this).ekkoLightbox();
+    });
+
+
+});
\ No newline at end of file

Added: openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/bootstrap.min.css
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/
microwave-doc/src/main/jbake/assets/assets/plugins/
bootstrap/css/bootstrap.min.css?rev=1766603&view=auto
============================================================
==================
--- openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/bootstrap.min.css (added)
+++ openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/bootstrap.min.css Tue Oct 25 21:27:10
2016
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/
bootstrap/blob/master/LICENSE)

[... 4 lines stripped ...]
Propchange: openwebbeans/microwave/trunk/microwave-doc/src/main/jbake/
assets/assets/plugins/bootstrap/css/bootstrap.min.css
------------------------------------------------------------
------------------
    svn:executable = *

Reply via email to