Le 26 oct. 2016 15:10, "Mark Struberg" <strub...@yahoo.de.invalid> a écrit : > > If we make the site part of the release then we must respect the license. Otherwise we don’t. >
Here my idea - but really personal for now: part of the source tree but not the release. > LieGrue, > strub > > > > Am 25.10.2016 um 23:32 schrieb Romain Manni-Bucau <rmannibu...@gmail.com >: > > > > 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 = * >