Merge remote-tracking branch 'origin/master'
diff --git a/README.adoc b/README.adoc
index 34ebc21..0ddf7c0 100755
--- a/README.adoc
+++ b/README.adoc
@@ -51,6 +51,7 @@
 == Extensions
 
 Build will generate a PDF for each page containing the attribute `jbake-tomeepdf`.
+**Note**: Currently, the PDF generation is disabled.
 
 == Examples
 
@@ -71,24 +72,5 @@
 
 == Publish (needs an ASF account)
 
-- To publish the website, you have to add and push the related content to the https://github.com/apache/tomee-site-pub[TomEE Site Pub] repository.
-
-== Legacy SVN Publish (not working anymore)
-
-`SvnPub` is a main to push to the staging the site content once built, you need to set the system properties (or properties in ~/.m2/settings.xml)
-`site.password` to your asf password and `site.username` if you user name is not `USER` environment variable for it to work.
-
-It will checkout/update the site from svn then copy the site folder from target directory to synchronize it with the svn version
-and finally it will commit everything.
-
-You can set the system property `site.message` to not use the default commit message.
-
-NOTE: `.content-site-checkout` will be the local copy of the website (if you need to modify manually the files or delete some old ones.
-
-NOTE: if the process fails unexpectedly (wrong update in the logic or anything) you can unlock the `.content-site-checkout` executing inside `svn cleanup`.
-
-To build and deploy on staging at once: `mvn clean compile pre-site`.
-
-Then to deploy to "prod": go on https://cms.apache.org/tomee/publish and hit "Submit" (note: you can review changes before if you want to check what the CMS took as changes).
-
-TIP: the staging is available when https://ci.apache.org/builders/tomee-site-staging build is done (triggered on commit), you can't deploy before.
+- The website is automatically build and published to https://github.com/apache/tomee-site-pub[TomEE Site Pub] by a https://ci-builds.apache.org/job/Tomee/job/site-publish/[Jenkins build job] every 12 hours.
+- The job can also be triggered manually via the Jenkins website.
\ No newline at end of file
diff --git a/javadoc/pom.xml b/javadoc/pom.xml
new file mode 100755
index 0000000..f9e4c87
--- /dev/null
+++ b/javadoc/pom.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>21</version>
+    <relativePath><!--Resolve on repository--></relativePath>
+  </parent>
+
+  <groupId>org.apache.tomee</groupId>
+  <artifactId>site-javadoc</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <name>Apache TomEE :: javadoc</name>
+
+  <properties>
+    <tomee.version>7.0.3</tomee.version>
+
+    <site.message>notset</site.message>
+
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <!-- Javadoc & Asciidoclet -->
+    <javadoc.version>3.1.1</javadoc.version>
+    <asciidoclet.version>1.5.6</asciidoclet.version>
+  </properties>
+
+  <dependencies>
+<!--    <dependency>-->
+<!--      <groupId>org.apache.geronimo.specs</groupId>-->
+<!--      <artifactId>geronimo-json_1.0_spec</artifactId>-->
+<!--      <version>1.0-alpha-1</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.apache.johnzon</groupId>-->
+<!--      <artifactId>johnzon-jaxrs</artifactId>-->
+<!--      <version>0.9.5</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.apache.cxf</groupId>-->
+<!--      <artifactId>cxf-rt-rs-client</artifactId>-->
+<!--      <version>3.1.8</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.apache.tomee</groupId>-->
+<!--      <artifactId>javaee-api</artifactId>-->
+<!--      <version>7.0-1</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.apache.tomee</groupId>-->
+<!--      <artifactId>tomee-embedded</artifactId>-->
+<!--      <version>${tomee.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.11</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.codehaus.groovy</groupId>-->
+<!--      <artifactId>groovy-templates</artifactId>-->
+<!--      <version>2.3.11</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.pegdown</groupId>-->
+<!--      <artifactId>pegdown</artifactId>-->
+<!--      <version>1.6.0</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.tmatesoft.svnkit</groupId>-->
+<!--      <artifactId>svnkit</artifactId>-->
+<!--      <version>1.8.15</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.eclipse.jgit</groupId>-->
+<!--      <artifactId>org.eclipse.jgit</artifactId>-->
+<!--      <version>5.1.3.201810200350-r</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>org.eclipse.jgit</groupId>-->
+<!--      <artifactId>org.eclipse.jgit.pgm</artifactId>-->
+<!--      <version>5.1.3.201810200350-r</version>-->
+<!--    </dependency>-->
+<!--    <dependency>-->
+<!--      <groupId>args4j</groupId>-->
+<!--      <artifactId>args4j</artifactId>-->
+<!--      <version>2.33</version>-->
+<!--    </dependency>-->
+    <dependency>
+      <groupId>org.apache.tomee</groupId>
+      <artifactId>apache-tomee</artifactId>
+      <version>8.0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.microprofile.opentracing</groupId>
+      <artifactId>microprofile-opentracing-api</artifactId>
+      <version>1.3.3</version>
+    </dependency>
+
+    <dependency>
+      <groupId>jakarta.servlet</groupId>
+      <artifactId>jakarta.servlet-api</artifactId>
+      <version>5.0.0-M1</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>3.0.1</version>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>3.0.2</version>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>${javadoc.version}</version>
+        <configuration>
+          <includeDependencySources>true</includeDependencySources>
+<!--          <doclet>org.asciidoctor.Asciidoclet</doclet>-->
+<!--          <docletArtifact>-->
+<!--            <groupId>org.asciidoctor</groupId>-->
+<!--            <artifactId>asciidoclet</artifactId>-->
+<!--            <version>${asciidoclet.version}</version>-->
+<!--          </docletArtifact>-->
+<!--          <additionalOptions>-->
+<!--            <additionalOption>&#45;&#45;base-dir ${basedir}</additionalOption>-->
+<!--            <additionalOption>&#45;&#45;attribute "name=${project.name}"</additionalOption>-->
+<!--            <additionalOption>&#45;&#45;attribute "version=${project.version}"</additionalOption>-->
+<!--          </additionalOptions>-->
+<!--          <additionalOptions>-->
+<!--            <additionalOption>-exclude javax.faces:javax.mail</additionalOption>-->
+<!--          </additionalOptions>-->
+          <doclint>none</doclint> <!-- Doclint is enabled by default in java 8+, this conf is needed disable it till a rewrite of javadoc is done (https://www.oracle.com/technetwork/java/javase/documentation/index-137868.html#format)-->
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+
+  <repositories>
+    <repository>
+      <id>svnkit</id>
+      <name>SVNKit</name>
+      <url>https://maven.tmatesoft.com/content/repositories/releases/</url>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+</project>
diff --git a/pom.xml b/pom.xml
index 2cfa242..38bf22d 100755
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
   <name>Apache TomEE :: WebSite NG</name>
 
   <properties>
-    <tomee.version>7.0.3</tomee.version>
+    <tomee.version>8.0.6</tomee.version>
     <jbake.http>false</jbake.http>
     <jbake.pdf>false</jbake.pdf>
 
@@ -20,15 +20,15 @@
   </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-pdf</artifactId>-->
+<!--      <version>1.5.0-alpha.11</version>-->
+<!--    </dependency>-->
     <dependency>
       <groupId>org.asciidoctor</groupId>
       <artifactId>asciidoctorj</artifactId>
-      <version>1.5.4</version>
+      <version>1.5.8.1</version>
     </dependency>
     <dependency>
       <groupId>org.projectlombok</groupId>
@@ -38,23 +38,28 @@
     </dependency>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-json_1.0_spec</artifactId>
-      <version>1.0-alpha-1</version>
+      <artifactId>geronimo-json_1.1_spec</artifactId>
+      <version>1.5</version>
     </dependency>
     <dependency>
       <groupId>org.apache.johnzon</groupId>
       <artifactId>johnzon-jaxrs</artifactId>
-      <version>0.9.5</version>
+      <version>1.2.11</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.johnzon</groupId>
+      <artifactId>johnzon-jsonb</artifactId>
+      <version>1.2.11</version>
     </dependency>
     <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-rs-client</artifactId>
-      <version>3.1.8</version>
+      <version>3.4.3</version>
     </dependency>
     <dependency>
       <groupId>org.apache.tomee</groupId>
       <artifactId>javaee-api</artifactId>
-      <version>7.0-1</version>
+      <version>8.0-5</version>
     </dependency>
     <dependency>
       <groupId>org.apache.tomee</groupId>
diff --git a/src/main/java/org/apache/tomee/website/Configuration.java b/src/main/java/org/apache/tomee/website/Configuration.java
index 1b90fac..d137778 100644
--- a/src/main/java/org/apache/tomee/website/Configuration.java
+++ b/src/main/java/org/apache/tomee/website/Configuration.java
@@ -89,6 +89,7 @@
                 new Source("https://github.com/eclipse-ee4j/websocket-api.git", "master", "websocket-api-ee9")
         };
 
+//        if (1 == 1) return new Source[0];
         return new Source[]{
 //                new Source("https://github.com/apache/tomee.git", "master", "tomee-8.0"),
                 new Source("https://github.com/apache/tomee.git", "master", "tomee-9.0").label("milestone").related(microProfile2).related(jakartaEE9).javadoc("^org.apache.(openejb|tomee).*"),
diff --git a/src/main/java/org/apache/tomee/website/Contributors.java b/src/main/java/org/apache/tomee/website/Contributors.java
deleted file mode 100755
index fb4d0bf..0000000
--- a/src/main/java/org/apache/tomee/website/Contributors.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * 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.tomee.website;
-
-import lombok.Builder;
-import lombok.Data;
-import org.apache.johnzon.jaxrs.JohnzonProvider;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-import static java.util.Collections.emptyList;
-import static java.util.Optional.ofNullable;
-import static java.util.stream.Collectors.toList;
-
-public class Contributors {
-    private static final String GRAVATAR_BASE = "http://fr.gravatar.com/";
-
-    private Contributors() {
-        // no-op
-    }
-
-    public static Contributor singleLoad(final WebTarget target, final String input) throws IOException {
-        try {
-            return ofNullable(loadGravatar(target, input)).orElse(loadStatic(input));
-        } catch (Exception e) {
-            e.printStackTrace();
-            return loadStatic(input);
-        }
-    }
-
-    public static Contributor loadStatic(final String input) {
-        final String[] strings = input.split(" *\\| *");
-        final String mail = strings[0].replaceAll("\\*$", "");
-        final boolean committer = strings[0].endsWith("*");
-        final String name = strings.length > 1 ? strings[1] : mail.replaceAll("@.*", "");
-        final String picture = strings.length > 2 ? strings[2] : "../img/noimg.png";
-        return Contributor.builder()
-                .name(name)
-                .id(mail)
-                .committer(committer)
-                .gravatar(picture)
-                .build();
-    }
-
-    public static Contributor loadGravatar(final WebTarget target, final String input) throws IOException {
-        final String[] strings = input.split(" *\\| *");
-        final boolean committer = strings[0].endsWith("*");
-        final String mail = committer ? strings[0].substring(0, strings[0].length() - 1) : strings[0];
-        final String hash = gravatarHash(mail);
-        final Response gravatar = target.path(hash + ".json").request(MediaType.APPLICATION_JSON_TYPE).get();
-        if (gravatar.getStatus() != HttpsURLConnection.HTTP_OK) {
-            System.err.println("[ERROR] No gravatar for " + mail);
-            return null;
-        }
-        final Contributor contributor = ofNullable(gravatar.readEntity(Gravatar.class).getEntry())
-                .map(e -> e[0])
-                .map(e -> Contributor.builder()
-                        .id(e.getId())
-                        .name(
-                                ofNullable(e.getName())
-                                        .map(n -> ofNullable(n.getFormatted()).orElse(ofNullable(n.getGivenName()).orElse("") + ofNullable(n.getFamilyName()).orElse("")))
-                                        .orElseGet(() -> ofNullable(e.getDisplayName()).orElse(ofNullable(e.getPreferredUsername()).orElse(mail))))
-                        .description(e.getAboutMe())
-                        .link(
-                                Stream.concat(
-                                        ofNullable(e.getAccounts())
-                                                .map(a -> Stream.of(a).map(l -> Link.builder().name(l.getShortname()).url(l.getUrl()).build()).collect(toList()))
-                                                .orElse(emptyList()).stream(),
-                                        ofNullable(e.getUrls())
-                                                .map(a -> Stream.of(a).map(l -> Link.builder().name(l.getTitle()).url(l.getValue()).build()).collect(toList()))
-                                                .orElse(emptyList()).stream())
-                                        .collect(toList()))
-                        .gravatar("http://www.gravatar.com/avatar/" + hash + "?s=140")
-                        .build())
-                .orElse(Contributor.builder().name(mail).id(mail).build());
-        contributor.setCommitter(committer);
-        ofNullable(contributor.getLink()).ifPresent(l -> Collections.sort(l, (o1, o2) -> o1.getName().compareTo(o2.getName())));
-        return contributor;
-    }
-
-    public static Collection<Contributor> load(final String contributorsList) throws IOException { // used in page.gsp
-        final WebTarget target = ClientBuilder.newClient().register(new JohnzonProvider()).target(GRAVATAR_BASE);
-        final List<Contributor> contributors = new ArrayList<>();
-        final ExecutorService es = Executors.newFixedThreadPool(16);
-        final String rawList = contributorsList.substring(contributorsList.indexOf("<pre>") + "<pre>".length(), contributorsList.indexOf("</pre>"));
-        try (final BufferedReader reader = new BufferedReader(new StringReader(rawList))) {
-            String line;
-            while ((line = reader.readLine()) != null) {
-                line = line.trim();
-                if (line.isEmpty() || line.startsWith("#")) {
-                    continue;
-                }
-                final String mail = line;
-                es.submit(() -> {
-                    Contributor contributor = null;
-                    try {
-                        contributor = singleLoad(target, mail);
-                    } catch (final IOException e) {
-                        throw new IllegalStateException(e);
-                    }
-                    if (contributor != null) {
-                        synchronized (contributors) {
-                            contributors.add(contributor);
-                        }
-                    }
-                });
-            }
-        }
-        es.shutdown();
-        try {
-            es.awaitTermination(30, TimeUnit.MINUTES);
-        } catch (final InterruptedException e) {
-            Thread.interrupted();
-            return Collections.emptyList();
-        }
-        Collections.sort(contributors, (o1, o2) -> o1.name.compareTo(o2.id));
-        return contributors;
-    }
-
-    private static String gravatarHash(final String mail) {
-        try {
-            final MessageDigest md = MessageDigest.getInstance("MD5");
-            byte[] cp1252s = md.digest(mail.getBytes("CP1252"));
-            final StringBuilder sb = new StringBuilder();
-            for (final byte anArray : cp1252s) {
-                sb.append(Integer.toHexString((anArray & 0xFF) | 0x100).substring(1, 3));
-            }
-            return sb.toString();
-        } catch (final NoSuchAlgorithmException | UnsupportedEncodingException e) {
-            throw new IllegalStateException(e);
-        }
-    }
-
-    @Data
-    @Builder
-    public static class Link {
-        private String name;
-        private String url;
-    }
-
-    @Data
-    @Builder
-    public static class Contributor {
-        private String id;
-        private boolean committer;
-        private String name;
-        private String description;
-        private String gravatar;
-        private List<Link> link;
-    }
-
-    @Data
-    public static class GravatarName {
-        private String formatted;
-        private String givenName;
-        private String familyName;
-    }
-
-    @Data
-    public static class GravatarUrl {
-        private String value;
-        private String title;
-    }
-
-    @Data
-    public static class GravatarAccount {
-        private String shortname;
-        private String url;
-    }
-
-    @Data
-    public static class Gravatar {
-        private GravatarEntry[] entry;
-    }
-
-    @Data
-    public static class GravatarEntry {
-        private String id;
-        private String hash;
-        private String aboutMe;
-        private String requestHash;
-        private String profileUrl;
-        private String preferredUsername;
-        private String thumbnailUrl;
-        private GravatarName name;
-        private GravatarUrl[] urls;
-        private GravatarAccount[] accounts;
-        private String displayName;
-    }
-}
diff --git a/src/main/java/org/apache/tomee/website/GitHubContributors.java b/src/main/java/org/apache/tomee/website/GitHubContributors.java
new file mode 100644
index 0000000..075a0e1
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/GitHubContributors.java
@@ -0,0 +1,74 @@
+package org.apache.tomee.website;
+
+import lombok.Data;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.tomitribe.util.IO;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+public class GitHubContributors {
+
+    protected static final String BASE_URL = "https://api.github.com/repos/apache/tomee/contributors";
+
+    /*
+     * Can be used to retrieve an up 2 date list of contributors via the GitHub API
+     * The output of this class can be pasted into /src/main/jbake/content/community/contributors.adoc
+     */
+    public static void main(String[] args) throws IOException {
+
+        final List<Contributor> contributorList = GitHubContributors.fillContributors();
+
+        for (Contributor c : contributorList) {
+            System.out.println(c);
+        }
+    }
+
+
+    public static List<Contributor> fillContributors() throws IOException {
+        final List<Contributor> contributorList = new ArrayList<>();
+
+        boolean hasPagesLeft = true;
+
+        int currentPage = 1;
+        while (hasPagesLeft) {
+            final String content = IO.slurp(new URL(BASE_URL + "?per_page=100&page=" + currentPage));
+            final JSONArray contributors = new JSONArray(content);
+
+            if (contributors.length() == 0) {
+                hasPagesLeft = false;
+            } else {
+                for (int i = 0; i < contributors.length(); i++) {
+
+                    JSONObject c = contributors.getJSONObject(i);
+
+                    contributorList.add(new Contributor(
+                            c.getString("id"),
+                            c.getString("login"),
+                            c.getString("avatar_url"),
+                            c.getString("html_url"),
+                            c.getLong("contributions")));
+                }
+            }
+            currentPage++;
+        }
+        return contributorList;
+    }
+
+    @Data
+    public static class Contributor {
+        private final String id;
+        private final String name;
+        private final String avatar;
+        private final String url;
+        private final long contributions;
+
+        @Override
+        public String toString() {
+            return name + " | " + url + " | " + avatar;
+        }
+    }
+}
diff --git a/src/main/java/org/apache/tomee/website/contributors/Contributor.java b/src/main/java/org/apache/tomee/website/contributors/Contributor.java
new file mode 100644
index 0000000..0ff60aa
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/contributors/Contributor.java
@@ -0,0 +1,61 @@
+/*
+ * 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.tomee.website.contributors;
+
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Data
+@Builder
+public class Contributor {
+    private String id;
+    private boolean committer;
+    private String name;
+    private String github;
+    private String avatar;
+    private Stats stats;
+
+    public Contributor add(final Contributor that) {
+        return new Contributor(id, committer, name, github, avatar, stats.add(that.stats));
+    }
+
+    /**
+     * Take the specified list of Contributors, which may have duplicates, and
+     * combine each duplicate down to one Contributor instance while keeping a
+     * total of all their stats.
+     */
+    public static List<Contributor> unique(final List<Contributor> listWithDuplicates) {
+        final Map<String, List<Contributor>> map = listWithDuplicates.stream()
+                .collect(Collectors.groupingBy(Contributor::getName));
+
+        return map.values().stream()
+                .map(Contributor::reduce)
+                .collect(Collectors.toList());
+    }
+
+    private static Contributor reduce(final List<Contributor> instances) {
+        return instances.stream()
+                .reduce(Contributor::add)
+                .orElseThrow(IllegalStateException::new);
+    }
+
+
+}
diff --git a/src/main/java/org/apache/tomee/website/contributors/ContributorData.java b/src/main/java/org/apache/tomee/website/contributors/ContributorData.java
new file mode 100644
index 0000000..ccea200
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/contributors/ContributorData.java
@@ -0,0 +1,106 @@
+/*
+ * 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.tomee.website.contributors;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import javax.json.bind.annotation.JsonbProperty;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@EqualsAndHashCode(onlyExplicitlyIncluded = true)
+public class ContributorData {
+
+    @JsonbProperty("total")
+    private int total;
+
+    @JsonbProperty("author")
+    private Author author;
+
+    @JsonbProperty("weeks")
+    private List<Week> weeks;
+
+    public Stats getStats() {
+        return weeks.stream()
+                .map(week -> new Stats(week.c, week.a, week.d))
+                .reduce(Stats::add)
+                .orElse(new Stats(0, 0, 0));
+    }
+
+    /**
+     * Convert the ContributorData to a Contributor instance
+     */
+    public Contributor asContributor() {
+        final ContributorData.Author author = this.getAuthor();
+
+        return Contributor.builder()
+                .id(author.getId() + "")
+                .name(author.getLogin())
+                .github("https://github.com/" + author.getLogin())
+                .avatar("https://avatars.githubusercontent.com/u/" + author.getId() + "?v=4")
+                .stats(this.getStats())
+                .build();
+    }
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @Builder
+    @EqualsAndHashCode(onlyExplicitlyIncluded = true)
+    public static class Author {
+        @JsonbProperty("id")
+        private int id;
+
+        @JsonbProperty("login")
+        private String login;
+
+        @JsonbProperty("avatar")
+        private String avatar;
+
+        @JsonbProperty("path")
+        private String path;
+
+        @JsonbProperty("hovercard_url")
+        private String hovercardUrl;
+    }
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @Builder
+    @EqualsAndHashCode(onlyExplicitlyIncluded = true)
+    public static class Week {
+        @JsonbProperty("w")
+        private long w;
+
+        @JsonbProperty("a")
+        private int a;
+
+        @JsonbProperty("d")
+        private int d;
+
+        @JsonbProperty("c")
+        private int c;
+    }
+}
diff --git a/src/main/java/org/apache/tomee/website/contributors/Contributors.java b/src/main/java/org/apache/tomee/website/contributors/Contributors.java
new file mode 100755
index 0000000..1c26dee
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/contributors/Contributors.java
@@ -0,0 +1,118 @@
+/*
+ * 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.tomee.website.contributors;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class Contributors {
+    private static final Logger log = Logger.getLogger(Github.class.getName());
+
+    private Contributors() {
+        // no-op
+    }
+
+    public static Contributor loadStatic(final String input) {
+        final String[] strings = input.split(" *\\| *");
+        final String name = strings.length > 0 ? strings[0] : "";
+        final String github = strings.length > 1 ? strings[1] : "";
+        final String picture = strings.length > 2 ? strings[2] : "../img/noimg.png";
+        return Contributor.builder()
+                .name(name)
+                .id(name)
+                .avatar(picture)
+                .github(github)
+                .build();
+    }
+
+    public static Collection<Contributor> load(final String contributorsList) throws IOException { // used in page.gsp
+        /*
+         * Try getting the full list from Github across all repositories
+         */
+        try {
+            final List<Contributor> contributors = new Github().getContributors();
+            return sort(contributors);
+        } catch (Exception e) {
+            log.log(Level.SEVERE, "Unable to fetch contributors from github.com", e);
+        }
+
+        /*
+         * Fallback to our cached list
+         */
+        final List<Contributor> contributors = new ArrayList<>();
+        final ExecutorService es = Executors.newFixedThreadPool(16);
+        final String rawList = contributorsList.substring(contributorsList.indexOf("<pre>") + "<pre>".length(), contributorsList.indexOf("</pre>"));
+        try (final BufferedReader reader = new BufferedReader(new StringReader(rawList))) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                line = line.trim();
+                if (line.isEmpty() || line.startsWith("#")) {
+                    continue;
+                }
+                final String mail = line;
+                es.submit(() -> {
+                    Contributor contributor = null;
+                    contributor = loadStatic(mail);
+                    synchronized (contributors) {
+                        contributors.add(contributor);
+                    }
+                });
+            }
+        }
+        es.shutdown();
+        try {
+            es.awaitTermination(30, TimeUnit.MINUTES);
+        } catch (final InterruptedException e) {
+            Thread.interrupted();
+            return Collections.emptyList();
+        }
+        Collections.sort(contributors, Comparator.comparing(Contributor::getName));
+        return contributors;
+    }
+
+    public static List<Contributor> sort(final List<Contributor> list) {
+        final Stats max = list.stream()
+                .map(Contributor::getStats)
+                .reduce(Stats::max)
+                .orElse(new Stats(0, 0, 0));
+
+        list.sort(Comparator.<Contributor, Integer>comparing(contributor -> max.score(contributor.getStats())).reversed());
+
+        final boolean debug = false;
+        if (debug){
+            for (final Contributor contributor : list) {
+                final Stats stats = contributor.getStats();
+                System.out.printf("Contributor: %-7s %-20s %5s %7s %7s%n",
+                        max.score(contributor.getStats()), contributor.getName(),
+                        stats.getCommits(), stats.getLinesAdded(),
+                        stats.getLinesRemoved());
+            }
+        }
+        return list;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/org/apache/tomee/website/contributors/Github.java b/src/main/java/org/apache/tomee/website/contributors/Github.java
new file mode 100644
index 0000000..4469444
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/contributors/Github.java
@@ -0,0 +1,131 @@
+/*
+ * 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.tomee.website.contributors;
+
+import org.apache.johnzon.jaxrs.JohnzonProvider;
+import org.apache.openejb.loader.IO;
+import org.tomitribe.swizzle.stream.StreamBuilder;
+
+import javax.json.bind.Jsonb;
+import javax.json.bind.JsonbBuilder;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.Response;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UncheckedIOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.logging.Logger;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class Github {
+
+    private static final Logger log = Logger.getLogger(Github.class.getName());
+    private final Client client = ClientBuilder.newClient().register(new JohnzonProvider<>());
+
+    public List<Contributor> getContributors() {
+        final List<URI> repositoryURIs = getRepositoryURIs();
+        final List<Contributor> list = repositoryURIs.stream()
+                .map(this::getContributorsForRepository)
+                .flatMap(Collection::stream)
+                .collect(Collectors.toList());
+
+        return Contributor.unique(list);
+    }
+
+    /**
+     * List all the repositories for Apache TomEE
+     */
+    public List<URI> getRepositoryURIs() {
+        try {
+            final WebTarget github = client.target("https://github.com");
+            final String content = github.path("/apache").queryParam("q", "tomee").request().get(String.class);
+            final List<String> links = new ArrayList<String>();
+            StreamBuilder.create(IO.read(content))
+                    .watch("href=\"/apache/tomee", "\"", links::add)
+                    .run();
+
+            return links.stream()
+                    .filter(s -> !s.contains("/"))
+                    .filter(s -> !s.equals("-site-pub"))
+                    .filter(s -> !s.equals("-site"))
+                    .distinct()
+                    .map(s -> "https://github.com/apache/tomee" + s)
+                    .map(URI::create)
+                    .collect(Collectors.toList());
+        } catch (IOException e) {
+            throw new UncheckedIOException("Unable to list TomEE repositories", e);
+        }
+    }
+
+    /**
+     * Get the contributor-data json for the specified repository
+     */
+    private List<Contributor> getContributorsForRepository(final URI repositoryUri) {
+        final Response response = client.target(repositoryUri.toASCIIString())
+                .path("graphs/contributors-data")
+                .request()
+                .header("referer", repositoryUri.toASCIIString() + "/graphs/contributors")
+                .header("authority", "github.com")
+                .header("pragma", "no-cache")
+                .header("cache-control", "no-cache")
+                .header("sec-ch-ua", "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"90\", \"Google Chrome\";v=\"90\"")
+                .header("accept", "application/json")
+                .header("sec-ch-ua-mobile", "?0")
+                .header("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36")
+                .header("sec-fetch-site", "same-origin")
+                .header("sec-fetch-mode", "cors")
+                .header("sec-fetch-dest", "empty")
+                .header("accept-language", "en-US,en;q=0.9,es;q=0.8")
+                .get();
+
+        if (response.getStatus() != 200) {
+            log.severe("Unexpected status from " + repositoryUri + ": " + response.getStatus());
+            return Collections.EMPTY_LIST;
+        }
+
+        if (!response.getHeaderString("content-type").startsWith("application/json")) {
+            log.severe("Unexpected content-type from " + repositoryUri + ": " + response.getHeaderString("content-type"));
+            return Collections.EMPTY_LIST;
+        }
+        
+        final String json;
+        try {
+            json = IO.slurp((InputStream) response.getEntity());
+        } catch (IOException e) {
+            throw new UncheckedIOException("Unable to read response from " + repositoryUri, e);
+        }
+        
+        final ContributorData[] data;
+        try {
+            final Jsonb jsonb = JsonbBuilder.create();
+            data = jsonb.fromJson(json, ContributorData[].class);
+        } catch (final Exception e) {
+            throw new IllegalStateException("Unable to unmarshal response from " + repositoryUri + "\n\n" + json, e);
+        }
+        return Stream.of(data)
+                .map(ContributorData::asContributor)
+                .collect(Collectors.toList());
+    }
+
+}
diff --git a/src/main/java/org/apache/tomee/website/contributors/Stats.java b/src/main/java/org/apache/tomee/website/contributors/Stats.java
new file mode 100644
index 0000000..447c7e0
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/contributors/Stats.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tomee.website.contributors;
+
+import lombok.Data;
+
+/**
+ * We add a contributor's commits, lines added and lines removed together
+ * across all repos to create an overall score that is used to sort contributors.
+ */
+@Data
+@lombok.Builder(builderClassName = "Builder", toBuilder = true)
+public class Stats {
+    private final int commits;
+    private final int linesAdded;
+    private final int linesRemoved;
+
+    /**
+     * Aggregate the stats from one git repo with the same
+     * contributors stats on another repo
+     */
+    public Stats add(final Stats that) {
+        return new Stats(
+                this.commits + that.commits,
+                this.linesAdded + that.linesAdded,
+                this.linesRemoved + that.linesRemoved);
+    }
+
+    public Stats max(final Stats that) {
+        return new Stats(
+                Math.max(this.commits, that.commits),
+                Math.max(this.linesAdded, that.linesAdded),
+                Math.max(this.linesRemoved, that.linesRemoved));
+    }
+
+    /**
+     * Assumes this instance of Stats holds the max (highest)
+     * possible values for commits, lines added, and lines removed.
+     *
+     * The passed in stats will be evaluated against these numbers
+     * a percentage (0-100) will be returned.  The return value is
+     * intentionally an int so it can easily be used for sorting.
+     */
+    public int score(final Stats that) {
+        final double commitsPercentage = that.commits / (double) this.commits;
+        final double linesAddedPercentage = that.linesAdded / (double) this.linesAdded;
+        final double linesRemovedPercentage = that.linesRemoved / (double) this.linesRemoved;
+        final double average = (commitsPercentage + linesAddedPercentage + linesRemovedPercentage) / 3;
+
+        return (int) Math.round(average * 1000000);
+    }
+}
diff --git a/src/main/jbake/assets/.htaccess b/src/main/jbake/assets/.htaccess
new file mode 100644
index 0000000..dcad3d0
--- /dev/null
+++ b/src/main/jbake/assets/.htaccess
@@ -0,0 +1,162 @@
+# Redirect visitors from HTTP to HTTPS
+RewriteEngine On
+RewriteCond %{HTTPS} off
+RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
+
+# Index config
+DirectoryIndex index.html README.html
+
+# Legacy redirects
+Redirect permanent /builds.html                 https://tomee.apache.org/download.html
+Redirect permanent /tomcat.html                 https://tomee.apache.org/apache-tomee.html
+Redirect permanent /3.0/tomcat.html             https://tomee.apache.org/apache-tomee.html
+Redirect permanent /3.0/apache-tomee.html       https://tomee.apache.org/apache-tomee.html
+Redirect permanent /3.0/tomee.html              https://tomee.apache.org/apache-tomee.html
+Redirect permanent /download-ng.html            https://tomee.apache.org/download.html
+Redirect permanent /download/index.html         https://tomee.apache.org/download.html
+Redirect permanent /downloads.html              https://tomee.apache.org/download.html
+Redirect permanent /3.0/index.html              https://tomee.apache.org/documentation.html
+Redirect permanent /design.html                 https://tomee.apache.org/dev/design.html
+Redirect permanent /design_appserver.html       https://tomee.apache.org/dev/design-application-server.html
+Redirect permanent /design_assembler.html       https://tomee.apache.org/dev/design-assembler.html
+Redirect permanent /design_bmpcontainer.html    https://tomee.apache.org/dev/design-bmp-entitybean-container.html
+Redirect permanent /design_classicassembler.html        https://tomee.apache.org/dev/design-classic-assembler.html
+Redirect permanent /design_cmpcontainer.html    https://tomee.apache.org/dev/design-cmp-entitybean-container.html
+Redirect permanent /design_configfactory.html   https://tomee.apache.org/dev/design-configuration-factory.html
+Redirect permanent /design_container.html       https://tomee.apache.org/dev/design-container.html
+Redirect permanent /design_intravm.html         https://tomee.apache.org/dev/design-local-server.html
+Redirect permanent /design_novaconfig.html      https://tomee.apache.org/dev/design-nova-configuration-factory.html
+Redirect permanent /design_openejb.html         https://tomee.apache.org/dev/design.html
+Redirect permanent /design_rafpassivator.html   https://tomee.apache.org/dev/design-random-file-passivator.html
+Redirect permanent /design_remoteserver.html    https://tomee.apache.org/dev/design-remote-server.html
+Redirect permanent /design_resmanager.html      https://tomee.apache.org/dev/design-resource-manager.html
+Redirect permanent /design_secservice.html      https://tomee.apache.org/dev/design-security-service.html
+Redirect permanent /design_simplepassivator.html        https://tomee.apache.org/dev/design-simple-passivator.html
+Redirect permanent /design_stfulcontainer.html  https://tomee.apache.org/dev/design-stateful-sessionbean-container.html
+Redirect permanent /design_stfulpassivator.html https://tomee.apache.org/dev/design-passivation-strategy.html
+Redirect permanent /design_stlesscontainer.html https://tomee.apache.org/dev/design-stateless-sessionbean-container.html
+Redirect permanent /design_txservice.html       https://tomee.apache.org/dev/design-transaction-service.html
+Redirect permanent /embedded-and-remotable.html https://tomee.apache.org/3.0/embedded-and-remotable.html
+
+Redirect permanent /3.0/apache-tomee.html https://tomee.apache.org/apache-tomee.html
+Redirect permanent /3.0/jpa-concepts.html https://tomee.apache.org/jpa-concepts.html
+
+
+Redirect permanent /3.0/injection-of-entitymanager-example.html https://tomee.apache.org/examples-trunk/injection-of-entitymanager/README.html
+Redirect permanent /3.0/simple-stateless-example.html           https://tomee.apache.org/examples-trunk/simple-stateless/README.html
+Redirect permanent /3.0/stateless-session-beans.html            https://tomee.apache.org/examples-trunk/simple-stateless/README.html
+Redirect permanent /3.0/injection-of-other-ejbs-example.html    https://tomee.apache.org/examples-trunk/injection-of-ejbs/README.html
+Redirect permanent /3.0/simple-stateful-example.html            https://tomee.apache.org/examples-trunk/simple-stateful/README.html
+Redirect permanent /3.0/testing-transactions-example.html       https://tomee.apache.org/examples-trunk/testing-transactions/README.html
+Redirect permanent /3.0/injection-of-datasource-example.html    https://tomee.apache.org/examples-trunk/injection-of-datasource/README.html
+Redirect permanent /3.0/injection-of-env-entry-example.html     https://tomee.apache.org/examples-trunk/injection-of-env-entry/README.html
+Redirect permanent /3.0/ejb-21-compatibility-example.html       https://tomee.apache.org/examples-trunk/component-interfaces/README.html
+Redirect permanent /3.0/testing-security-example.html           https://tomee.apache.org/examples-trunk/testing-security/README.html
+Redirect permanent /3.0/lookup-of-other-ejbs-example.html       https://tomee.apache.org/examples-trunk/lookup-of-ejbs/README.html
+Redirect permanent /3.0/embedded-and-remotable.html             https://tomee.apache.org/examples-trunk/telephone-stateful/README.html
+Redirect permanent /3.0/unit-testing-transactions.html          https://tomee.apache.org/examples-trunk/testing-transactions/README.html
+Redirect permanent /3.0/singleton-example.html                  https://tomee.apache.org/examples-trunk/simple-singleton/README.html
+Redirect permanent /3.0/interceptor-example.html                https://tomee.apache.org/examples-trunk/interceptors/README.html
+
+
+Redirect permanent /3.0/transaction-annotations.html https://tomee.apache.org/transaction-annotations.html
+Redirect permanent /3.0/index.html https://tomee.apache.org/index.html
+Redirect permanent /3.0/jndi-names.html https://tomee.apache.org/jndi-names.html
+Redirect permanent /3.0/openjpa.html https://tomee.apache.org/openjpa.html
+Redirect permanent /3.0/spring-ejb-and-jpa.html https://tomee.apache.org/spring-ejb-and-jpa.html
+Redirect permanent /3.0/configuring-persistenceunits-in-tests.html https://tomee.apache.org/configuring-persistenceunits-in-tests.html
+Redirect permanent /3.0/persistence-context.html https://tomee.apache.org/persistence-context.html
+Redirect permanent /3.0/hibernate.html https://tomee.apache.org/hibernate.html
+Redirect permanent /3.0/tomcat.html https://tomee.apache.org/tomcat.html
+Redirect permanent /3.0/ejb-local-ref.html https://tomee.apache.org/ejb-local-ref.html
+Redirect permanent /3.0/ejb-refs.html https://tomee.apache.org/ejb-refs.html
+Redirect permanent /3.0/security-annotations.html https://tomee.apache.org/security-annotations.html
+Redirect permanent /3.0/configuring-datasources.html https://tomee.apache.org/configuring-datasources.html
+Redirect permanent /3.0/persistence-unit-ref.html https://tomee.apache.org/persistence-unit-ref.html
+Redirect permanent /3.0/resource-injection.html https://tomee.apache.org/resource-injection.html
+Redirect permanent /3.0/resource-ref-for-datasource.html https://tomee.apache.org/resource-ref-for-datasource.html
+Redirect permanent /3.0/javaagent.html https://tomee.apache.org/javaagent.html
+Redirect permanent /3.0/basics-getting-things.html https://tomee.apache.org/basics-getting-things.html
+Redirect permanent /3.0/ejb-30-specification.html https://tomee.apache.org/ejb-30-specification.html
+Redirect permanent /3.0/local-client-injection.html https://tomee.apache.org/local-client-injection.html
+Redirect permanent /3.0/deploy-tool.html https://tomee.apache.org/deploy-tool.html
+Redirect permanent /3.0/examples.html https://tomee.apache.org/examples.html
+Redirect permanent /3.0/embedded-configuration.html https://tomee.apache.org/embedded-configuration.html
+Redirect permanent /3.0/javaagent-with-maven-surefire.html https://tomee.apache.org/javaagent-with-maven-surefire.html
+Redirect permanent /3.0/tomcat-detailed-instructions.html https://tomee.apache.org/tomcat-detailed-instructions.html
+Redirect permanent /3.0/jms-resources-and-mdb-container.html https://tomee.apache.org/jms-resources-and-mdb-container.html
+Redirect permanent /3.0/spring.html https://tomee.apache.org/spring.html
+Redirect permanent /3.0/startup.html https://tomee.apache.org/startup.html
+Redirect permanent /3.0/service-locator.html https://tomee.apache.org/service-locator.html
+Redirect permanent /3.0/singleton-beans.html https://tomee.apache.org/singleton-beans.html
+Redirect permanent /3.0/containers-and-resources.html https://tomee.apache.org/containers-and-resources.html
+Redirect permanent /3.0/tomcat-ejb-refs.html https://tomee.apache.org/tomcat-ejb-refs.html
+Redirect permanent /3.0/application-discovery-via-the-classpath.html https://tomee.apache.org/application-discovery-via-the-classpath.html
+Redirect permanent /3.0/failover.html https://tomee.apache.org/ejb-failover.html
+Redirect permanent /3.0/clients.html https://tomee.apache.org/clients.html
+Redirect permanent /3.0/ejb-jpa-jsf-jax-rs.html https://tomee.apache.org/ejb-jpa-jsf-jax-rs.html
+Redirect permanent /3.0/common-persistenceprovider-properties.html https://tomee.apache.org/common-persistenceprovider-properties.html
+Redirect permanent /3.0/jpa-usage.html https://tomee.apache.org/jpa-usage.html
+Redirect permanent /3.0/ejb-ref.html https://tomee.apache.org/ejb-ref.html
+Redirect permanent /3.0/alternate-descriptors.html https://tomee.apache.org/alternate-descriptors.html
+Redirect permanent /3.0/deployments.html https://tomee.apache.org/deployments.html
+Redirect permanent /3.0/constructor-injection.html https://tomee.apache.org/constructor-injection.html
+Redirect permanent /3.0/databases.html https://tomee.apache.org/databases.html
+Redirect permanent /3.0/properties-tool.html https://tomee.apache.org/properties-tool.html
+Redirect permanent /3.0/space-index.html https://tomee.apache.org/space-index.html
+Redirect permanent /3.0/callbacks.html https://tomee.apache.org/callbacks.html
+Redirect permanent /3.0/custom-injection.html https://tomee.apache.org/custom-injection.html
+Redirect permanent /3.0/dynamic-datasource.html https://tomee.apache.org/dynamic-datasource.html
+Redirect permanent /3.0/basics-security.html https://tomee.apache.org/basics-security.html
+Redirect permanent /3.0/datasource-password-encryption.html https://tomee.apache.org/datasource-password-encryption.html
+Redirect permanent /3.0/helloworld-weblogic.html https://tomee.apache.org/helloworld-weblogic.html
+Redirect permanent /3.0/mdb-container.html https://tomee.apache.org/mdb-container.html
+Redirect permanent /3.0/system-properties.html https://tomee.apache.org/system-properties.html
+Redirect permanent /3.0/configuring-logging-in-tests.html https://tomee.apache.org/configuring-logging-in-tests.html
+Redirect permanent /3.0/spring-and-openejb-30.html https://tomee.apache.org/spring-and-openejb-30.html
+Redirect permanent /3.0/configuring-datasources-in-tests.html https://tomee.apache.org/configuring-datasources-in-tests.html
+Redirect permanent /3.0/tomcat-installation.html https://tomee.apache.org/tomcat-installation.html
+Redirect permanent /3.0/webapp-based-ejbs.html https://tomee.apache.org/webapp-based-ejbs.html
+Redirect permanent /3.0/openejbxml.html https://tomee.apache.org/openejbxml.html
+Redirect permanent /3.0/security.html https://tomee.apache.org/security.html
+Redirect permanent /3.0/understanding-callbacks.html https://tomee.apache.org/understanding-callbacks.html
+Redirect permanent /3.0/annotations-xml-and-defaults.html https://tomee.apache.org/annotations-xml-and-defaults.html
+Redirect permanent /3.0/manual-installation.html https://tomee.apache.org/manual-installation.html
+Redirect permanent /3.0/common-datasource-configurations.html https://tomee.apache.org/common-datasource-configurations.html
+Redirect permanent /3.0/getting-started.html https://tomee.apache.org/getting-started.html
+Redirect permanent /3.0/configuring-javamail.html https://tomee.apache.org/configuring-javamail.html
+Redirect permanent /3.0/restful-web-service-with-openejb-jersey-junit-maven-mysql-and-tomcat.html https://tomee.apache.org/restful-web-service-with-openejb-jersey-junit-maven-mysql-and-tomcat.html
+Redirect permanent /3.0/testcase-with-testbean-inner-class.html https://tomee.apache.org/testcase-with-testbean-inner-class.html
+Redirect permanent /3.0/basics-transactions.html https://tomee.apache.org/basics-transactions.html
+Redirect permanent /3.0/design-application-server.html https://tomee.apache.org/design-application-server.html
+Redirect permanent /3.0/understanding-the-directory-layout.html https://tomee.apache.org/understanding-the-directory-layout.html
+Redirect permanent /3.0/design-container.html https://tomee.apache.org/design-container.html
+Redirect permanent /3.0/openejb-per-tomcat-installation.html https://tomee.apache.org/openejb-per-tomcat-installation.html
+Redirect permanent /3.0/client-server-transports.html https://tomee.apache.org/client-server-transports.html
+Redirect permanent /3.0/property-overriding.html https://tomee.apache.org/property-overriding.html
+Redirect permanent /3.0/configuring-containers-in-tests.html https://tomee.apache.org/configuring-containers-in-tests.html
+Redirect permanent /3.0/design-assembler.html https://tomee.apache.org/design-assembler.html
+Redirect permanent /3.0/design-configuration-factory.html https://tomee.apache.org/design-configuration-factory.html
+Redirect permanent /3.0/ejb-servlet.html https://tomee.apache.org/ejb-servlet.html
+Redirect permanent /3.0/collapsed-ear-on-linux.html https://tomee.apache.org/collapsed-ear-on-linux.html
+Redirect permanent /3.0/app-clients-and-jndi.html https://tomee.apache.org/app-clients-and-jndi.html
+Redirect permanent /3.0/built-in-type-converters.html https://tomee.apache.org/built-in-type-converters.html
+Redirect permanent /3.0/configuring-durations.html https://tomee.apache.org/configuring-durations.html
+Redirect permanent /3.0/design-classic-assembler.html https://tomee.apache.org/design-classic-assembler.html
+Redirect permanent /3.0/design-random-access-file-passivater.html https://tomee.apache.org/design-random-access-file-passivater.html
+Redirect permanent /3.0/users-guide.html https://tomee.apache.org/users-guide.html
+Redirect permanent /3.0/configuration-properties.html https://tomee.apache.org/configuration-properties.html
+Redirect permanent /3.0/design-cmp-entitybean-container.html https://tomee.apache.org/design-cmp-entitybean-container.html
+Redirect permanent /3.0/design-passivation-strategy.html https://tomee.apache.org/design-passivation-strategy.html
+Redirect permanent /3.0/design-transaction-service.html https://tomee.apache.org/design-transaction-service.html
+Redirect permanent /3.0/hello-world.html https://tomee.apache.org/hello-world.html
+Redirect permanent /3.0/online-javadocs.html https://tomee.apache.org/online-javadocs.html
+Redirect permanent /3.0/design-bmp-entitybean-container.html https://tomee.apache.org/design-bmp-entitybean-container.html
+Redirect permanent /3.0/design-nova-configuration-factory.html https://tomee.apache.org/design-nova-configuration-factory.html
+Redirect permanent /3.0/design-resource-manager.html https://tomee.apache.org/design-resource-manager.html
+Redirect permanent /3.0/design-simple-passivater.html https://tomee.apache.org/design-simple-passivater.html
+Redirect permanent /3.0/design-stateless-sessionbean-container.html https://tomee.apache.org/design-stateless-sessionbean-container.html
+Redirect permanent /3.0/design.html https://tomee.apache.org/design.html
+Redirect permanent /3.0/documentation.html https://tomee.apache.org/documentation.html
+Redirect permanent /3.0/embedding.html https://tomee.apache.org/embedding.html
+Redirect permanent /3.0/introduction-to-the-command-line-tools.html https://tomee.apache.org/introduction-to-the-command-line-tools.html
\ No newline at end of file
diff --git a/src/main/jbake/assets/css/cardio.css b/src/main/jbake/assets/css/cardio.css
index 366b5cf..afaae7f 100755
--- a/src/main/jbake/assets/css/cardio.css
+++ b/src/main/jbake/assets/css/cardio.css
@@ -1,4 +1,32 @@
-@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,500,700);
+@import url(https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Montserrat&family=Poppins:wght@200;300;400;500;600;700&display=swap);
+
+:root {
+  --white: #FFF;
+  --black: #000;
+  --light-black: rgba(0, 0, 0, 0.6);
+  --light-orange: #f59423;
+  --orange: #e2632a;
+  --red: rgba(206,31,49,1);
+  --violet-light: rgb(144, 19, 254);
+  --violet: #832677;
+  --orange: rgba(243,143,35,1);
+  --pre-border: #ccc;
+  --code-color: #8a6d3b;
+  --code-back: #f5f5f5;
+  --light-blue: #31b9ff;
+  --gray: #bbb;
+  --light-gray: #ddd;
+  --green: green;
+  --blue: blue;
+  --light-white: rgba(255, 255, 255, 0.8);
+  --dark-gray: #6f6f6f;
+  --lightest-gray: #f7f7f7;
+  --light-black: #222;
+}
+
+body {
+  font-family: Poppins, Helvetica, Arial, sans-serif;
+}
 
 .parallax {
   position: absolute;
@@ -21,7 +49,7 @@
   z-index: 9999;
   width: 100%;
   height: 100%;
-  background-color: white;
+  background-color: var(--white);
 }
 
 .preloader img {
@@ -42,7 +70,7 @@
 .bigp {
   font-size: 18px;
   line-height: 1.5;
-  color: #80287a;
+  color: var(--violet);
 }
 
 ul.white-list {
@@ -53,7 +81,7 @@
 ul.white-list li {
   font-size: 18px;
   margin: 10px 0;
-  color: #fff;
+  color: var(--white);
 }
 
 ul.white-list li:before {
@@ -64,16 +92,17 @@
   width: 6px;
   height: 6px;
   margin-right: 15px;
-  background: white;
+  background: var(--white);
 }
 
 header {
   position: relative;
   width: 100%;
-  color: #80287a;
+  color: var(--violet);
   background: rgba(28, 36, 65, 0.93);
-  background: url('../img/header.jpg');
-  background-size: cover;
+  background: linear-gradient(150deg, rgba(212, 105, 128, 0.57), rgba(240, 160, 110, 0.95)), url('../img/header.jpg');
+  background-size: cover, cover;
+  padding: 200px 0 0 0;
 }
 
 header .table {
@@ -89,7 +118,8 @@
   display: table-cell;
   text-align: center;
   vertical-align: middle;
-  color: #80287a;
+  color: var(--white);
+  font-weight: normal;
 }
 
 header .typed {
@@ -101,7 +131,7 @@
   font-size: 60px;
   display: inline-block;
   margin: 0 10px;
-  color: #80287a;
+  color: var(--violet);
 }
 
 ul, ol {
@@ -109,13 +139,13 @@
 }
 
 pre {
-  border: 0 solid #ccc;
+  border: 0 solid var(--pre-border);
   margin: 0 0 20px;
 }
 
 code {
-  color: #8a6d3b;
-  background-color: #f5f5f5;
+  color: var(--code-color);
+  background-color: var(--code-back);
 }
 
 p {
@@ -164,7 +194,7 @@
 
 /*a {*/
 /*text-decoration: none;*/
-/*color: #80287a;*/
+/*color: var(--violet);*/
 /*-webkit-transition: all 0.3s ease;*/
 /*transition: all 0.3s ease;*/
 /*}*/
@@ -180,118 +210,100 @@
 /*}*/
 
 nav.navbar .navbar-nav li.active a:not(.btn) {
-  color: #80287a !important;
+  color: var(--light-black) !important;
 }
 
 nav.navbar-fixed-top {
-  background-image: linear-gradient(90deg,#f59423,#e2632a,#ca2136,#832778);
+  background: var(--white);
   z-index: 9499;
   top: 0;
-  padding-top: 10px;
-  padding-bottom: 10px;
+  padding-top: 15px;
+  padding-bottom: 15px;
   opacity: 1;
-}
-
-.navbar .button, .nav > li:last-child {
-    display: inline-flex;
-    align-items: center;
-    background: #fff;
-    border: 1px solid #e1e1e1;
-    border-radius: 0.25rem;
-    height: 31px;
-    padding: 0 6px;
-    margin-top: 6px;
-    margin-left: 15px;
+  border-bottom: 1px solid var(--light-gray);
 }
 
 nav.navbar-fixed-top .navbar-nav > li > a:not(.btn) {
-    color: #ffffff;
-    font-family: Roboto,sans-serif;
+    color: var(--light-black);
+    font-family: Poppins, sans-serif;
     font-size: 16px;
     font-weight: 400;
     -webkit-font-smoothing: auto;
 }
 
-nav.navbar-fixed-top .navbar-nav > li:last-child > a:not(.btn) {
-    display: inline-flex;
-    color: #222;
-    padding: 6px;
-    white-space: nowrap;
-    cursor: pointer;
-}
 .navbar-brand {
     float: left;
     height: 100%;
     padding: 0px 15px;
     font-size: 22px;
     line-height: 20px;
-    color: #fff;
-    font-family: Roboto,sans-serif;
+    color: var(--black);
+    font-family: Poppins, sans-serif;
     -webkit-font-smoothing: auto;
 }
 .icon-bar {
-  background: #bbb;
+  background: var(--gray);
 }
 
 /* Buttons */
 
 .btn {
-  font-size: 18px;
+  /*font-size: 18px;
   display: inline-block;
   padding: 15px 30px;
-  color: #80287a;
+  color: var(--violet);
   border: 2px solid transparent;
   border-radius: 2px;
   background: transparent;
-  /*-webkit-transition: all 0.3s ease;*/
+  -webkit-transition: all 0.3s ease;*/
   /*transition: all 0.3s ease;*/
 }
 
 .btn:hover,
 .btn:focus {
-  color: #CE2D34;
+  color: var(--red);
 }
 
 .btn.btn-blue {
-  background: #80287a;
-  color: #fff;
+  background: var(--violet);
+  color: var(--white);
 }
 
 .btn.btn-blue:hover {
-  background: #31b9ff;
+  background: var(--light-blue);
 }
 
 .btn.btn-blue-fill {
-  color: #80287a;
-  border-color: #80287a;
+  color: var(--violet);
+  border-color: var(--violet);
   background: transparent;
 }
 
 .btn.btn-blue-fill:hover {
-  color: white;
-  background: #80287a;
+  color: var(--white);
+  background: var(--violet);
 }
 
 .btn.btn-white-fill {
-  color: #fff;
-  border-color: #fff;
+  color: var(--white);
+  border-color: var(--white);
   background: transparent;
 }
 
 .btn.btn-white-fill:hover {
-  color: #80287a;
-  background: #fff;
+  color: var(--violet);
+  background: var(--white);
 }
 
 .btn.btn-gray-fill {
-  color: #fff;
-  border-color: #fff;
+  color: var(--white);
+  border-color: var(--white);
   background: transparent;
 }
 
 .btn.btn-gray-fill:hover {
-  border-color: #bbb;
-  background: #bbb;
+  border-color: var(--gray);
+  background: var(--gray);
 }
 
 /* Blink Cursor */
@@ -308,7 +320,6 @@
 
 .navbar {
   top: 50px;
-  height: 63px;
 }
 
 .container {
@@ -319,11 +330,11 @@
 /* Sections */
 section {
   position: relative;
+  overflow: hidden;
 }
 
 .section {
   padding: 40px 0;
-  background: #fff;
 }
 
 .main-block {
@@ -339,7 +350,7 @@
   width: 0;
   height: 0;
   border-top: 80px solid transparent;
-  border-right: 30px solid white;
+  border-right: 30px solid var(--white);
 }
 
 .cut-bottom {
@@ -351,7 +362,7 @@
   width: 0;
   height: 0;
   border-bottom: 80px solid transparent;
-  border-left: 30px solid white;
+  border-left: 30px solid var(--white);
 }
 
 .intro-tables {
@@ -446,8 +457,8 @@
 }
 
 header h2 {
-  font-size: 48px;
-  font-weight: 500;
+  font-size: 40px;
+  font-weight: normal;
 }
 
 section h5 {
@@ -455,26 +466,6 @@
   font-size: 20px;
 }
 
-.intro-tables .intro-table .heading {
-  margin: 0;
-  padding: 30px;
-}
-
-.intro-tables .intro-table .small-heading {
-  margin: 0;
-  padding: 0 30px;
-}
-
-.intro-tables .intro-table .bottom {
-  position: absolute;
-  bottom: 0;
-}
-
-.intro-tables .intro-table .owl-schedule .schedule-row {
-  padding: 10px 30px;
-  color: #80287a;
-  transition: all 0.3s ease;
-}
 
 .owl-schedule .schedule-row:not(:last-child) {
   border-bottom: 1px solid rgba(255, 255, 255, 0.4);
@@ -489,7 +480,7 @@
   width: 50px;
   height: 50px;
   border-radius: 50%;
-  background: #80287a;
+  background: var(--violet);
   /*-webkit-animation: ripple-animation 2s;*/
   /*animation: ripple-animation 2s;*/
 }
@@ -529,7 +520,7 @@
   height: 320px;
   margin: 80px 0;
   text-align: center;
-  border: 1px solid #ddd;
+  border: 1px solid var(--light-gray);
   -webkit-transition: all 0.3s ease;
   transition: all 0.3s ease;
 }
@@ -540,7 +531,7 @@
   display: inline-block;
   margin-bottom: 40px;
   padding: 10px;
-  background: #80287a;
+  background: var(--violet);
   -webkit-transition: all 0.3s ease;
   transition: all 0.3s ease;
 }
@@ -557,7 +548,7 @@
 }
 
 .service:hover {
-  border-color: #80287a;
+  border-color: var(--violet);
 }
 
 .service:hover .icon-holder {
@@ -589,7 +580,7 @@
 .team {
   margin: 80px 0;
   padding-bottom: 60px;
-  background: #80287a;
+  background: var(--violet);
   box-shadow: 0 2px 3px rgba(0, 0, 0, 0.07);
 }
 
@@ -620,7 +611,7 @@
 /* Pricing */
 
 #pricing {
-  background: #80287a url('../img/pricing1.jpg') no-repeat center center;
+  background: var(--violet) url('../img/pricing1.jpg') no-repeat center center;
   -webkit-background-size: cover;
   background-size: cover;
   -webkit-transition: background-image 0.6s linear 0.3s;
@@ -650,7 +641,7 @@
   width: 50%;
   height: 300px;
   padding: 50px 40px;
-  background: #bbb;
+  background: var(--gray);
   -webkit-transition: -webkit-transform 0.3s, background-image 0.3s, opacity 0.3s;
   transition: transform 0.3s, background-image 0.3s, opacity 0.3s;
   -webkit-backface-visibility: hidden;
@@ -673,7 +664,7 @@
   right: 20px;
   pointer-events: none;
   opacity: 0;
-  color: #fff;
+  color: var(--white);
   -webkit-transition: opacity 0.3s;
   transition: opacity 0.3s;
 }
@@ -689,7 +680,7 @@
 }
 
 .pricings .pricing .box-main.active {
-  background: #80287a;
+  background: var(--violet);
   -webkit-transform: translateX(-99%);
   -ms-transform: translateX(-99%);
   transform: translateX(-99%);
@@ -706,12 +697,12 @@
 
 .pricings .pricing .box-second.active {
   opacity: 1;
-  background: #80287a;
+  background: var(--violet);
 }
 
 .pricings .pricing.active .box-main,
 .pricings .pricing .box-second {
-  background: #80287a;
+  background: var(--violet);
 }
 
 .pricings .pricing .box-main a.btn {
@@ -721,14 +712,14 @@
 .owl-twitter i.icon {
   font-size: 36px;
   margin-bottom: 60px;
-  color: #80287a;
+  color: var(--violet);
 }
 
 /* Footer */
 
 footer {
   padding: 60px 0 40px;
-  background-image: linear-gradient(to right, #f59423, #e2632a, #ca2136, #832778);
+  background-image: linear-gradient(to right, #F3A865, #E98B69, #DD6A6F, #A8659F);
   -webkit-background-size: cover;
   background-size: cover;
 }
@@ -752,11 +743,11 @@
 
 footer .social-footer li a {
   font-size: 24px;
-  color: #fff;
+  color: var(--white);
 }
 
 footer .social-footer li:hover a {
-  color: #80287a;
+  color: var(--violet);
 }
 
 /* Form Control */
@@ -773,8 +764,8 @@
 }
 
 .form-control.form-white {
-  color: #fff;
-  border: 2px solid white;
+  color: var(--white);
+  border: 2px solid var(--white);
   background: transparent;
   -webkit-transition: background-color 0.3s;
   transition: background-color 0.3s;
@@ -782,24 +773,24 @@
 
 .form-control.form-white::-webkit-input-placeholder {
   /* WebKit browsers */
-  color: #fff;
+  color: var(--white);
 }
 
 .form-control.form-white:-moz-placeholder {
   opacity: 1;
   /* Mozilla Firefox 4 to 18 */
-  color: #fff;
+  color: var(--white);
 }
 
 .form-control.form-white::-moz-placeholder {
   opacity: 1;
   /* Mozilla Firefox 19+ */
-  color: #fff;
+  color: var(--white);
 }
 
 .form-control.form-white:-ms-input-placeholder {
   /* Internet Explorer 10+ */
-  color: #fff;
+  color: var(--white);
 }
 
 .form-control.form-white:focus {
@@ -831,7 +822,7 @@
   position: absolute;
   top: 20px;
   right: 30px;
-  color: #fff;
+  color: var(--white);
 }
 
 .popup-form {
@@ -853,17 +844,17 @@
   font-family: 'FontAwesome';
   display: inline-block;
   float: right;
-  color: white;
+  color: var(--white);
 }
 
 .popup-form .dropdown .dropdown-menu {
   top: 65px;
   width: 100%;
   padding: 0;
-  border: 2px solid white;
+  border: 2px solid var(--white);
   border-top: 0;
   border-radius: 0;
-  background: white;
+  background: var(--white);
   box-shadow: none;
 }
 
@@ -876,12 +867,12 @@
 .popup-form .dropdown .dropdown-menu li a {
   width: 100%;
   padding: 15px 30px;
-  color: #80287a;
+  color: var(--violet);
 }
 
 .popup-form .dropdown .dropdown-menu li:hover a {
-  color: #fff;
-  background: #80287a;
+  color: var(--white);
+  background: var(--violet);
 }
 
 /* Checkbox */
@@ -907,7 +898,7 @@
   width: 20px;
   height: 20px;
   cursor: pointer;
-  border: 2px solid white;
+  border: 2px solid var(--white);
   background: transparent;
   -webkit-transition: background-color 0.3s;
   transition: background-color 0.3s;
@@ -925,7 +916,7 @@
   width: 8px;
   height: 8px;
   opacity: 0;
-  background: white;
+  background: var(--white);
   -webkit-transition: all 0.3s ease;
   transition: all 0.3s ease;
 }
@@ -946,15 +937,15 @@
   display: inline-block;
   margin: 0 0 0 10px;
   white-space: normal;
-  color: #fff;
+  color: var(--white);
 }
 
 .btn.btn-submit {
   width: 100%;
   margin-top: 30px;
-  color: #80287a;
-  border: 2px solid #fff;
-  background: #fff;
+  color: var(--violet);
+  border: 2px solid var(--white);
+  background: var(--white);
 }
 
 .btn.btn-submit:focus {
@@ -962,8 +953,8 @@
 }
 
 .btn.btn-submit:hover {
-  color: #80287a;
-  background: #fff;
+  color: var(--violet);
+  background: var(--white);
 }
 
 /* Mobile Nav */
@@ -1004,7 +995,7 @@
 }
 
 .mobile-nav ul li a:not(.btn) {
-  color: #aaa;
+  color: var(--light-black);
 }
 
 .mobile-nav a.close-link {
@@ -1015,8 +1006,8 @@
   left: 0;
   width: 100%;
   padding: 15px 0;
-  color: #fff;
-  background: #80287a;
+  color: var(--white);
+  background: var(--violet);
 }
 
 .light {
@@ -1034,31 +1025,35 @@
 /* Colors */
 
 .white {
-  color: white;
+  color: var(--white);
 }
 
 .light-white {
-  color: rgba(255, 255, 255, 0.5);
+  color: var(--light-white);
+}
+
+a.light-white:hover, a.light-white:active {
+  color: var(--white);
 }
 
 .white-bg {
-  background: white;
+  background: var(--white);
 }
 
 .gray-bg {
-  background: #f7f7f7;
+  background: var(--lightest-gray);
 }
 
 .blue {
-  color: #80287a;
+  color: var(--violet);
 }
 
 .blue-bg {
-  background: #80287a;
+  background: var(--violet);
 }
 
 .muted {
-  color: #989da0;
+  color: var(--dark-gray);
 }
 
 .margin-top {
@@ -1118,11 +1113,11 @@
     width: 100%;
     padding: 50px 50px 0;
     text-align: left;
-    background: #80287a;
+    background: var(--violet);
   }
 
   .pricings .pricing .box-main.active {
-    background: #80287a;
+    background: var(--violet);
     -webkit-transform: translateX(0%);
     -ms-transform: translateX(0%);
     transform: translateX(0%);
@@ -1161,25 +1156,31 @@
 
 .index-title {
   font-size: 80px;
+  font-weight: 300;
 }
 
 .contributor-name {
-  color: #80287a;
+  color: var(--violet);
   font-size: 1.7em;
   margin-bottom: 0.5em;
 }
 
 .photo {
-  border: 1px solid #ddd;
+  border: 1px solid var(--light-gray);
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
   border-radius: 4px;
   padding: 4px;
+  margin-top: 10px;
+}
+
+.photo img {
+  max-width: 100%;
 }
 
 .bs-callout {
   min-height: 160px;
   padding: 20px;
-  border: 1px solid #eee;
+  border: 1px solid var(--light-gray);
   border-left-width: 5px;
   border-radius: 3px;
 }
@@ -1203,11 +1204,11 @@
 
 .bs-callout-primary {
 
-  border-left-color: #80287a;
+  border-left-color: var(--violet);
 }
 
 .bs-callout-primary h4 {
-  color: #80287a;
+  color: var(--violet);
 }
 
 h2 {
@@ -1260,8 +1261,8 @@
 .admonitionblock > table td.content {
   padding-left: 1.125em;
   padding-right: 1.25em;
-  border-left: 1px solid #dddddd;
-  color: #6f6f6f;
+  border-left: 1px solid var(--light-gray);
+  color: var(--dark-gray);
   font-size: 15px;
 }
 
@@ -1279,7 +1280,15 @@
 span.icon > [class^="icon-"], span.icon > [class*=" icon-"] {
   cursor: default;
 }
-
+.green {
+  color: var(--green);
+}
+.red {
+  color: var(--red);
+}
+.blue {
+  color: var(--blue);
+}
 .admonitionblock td.icon [class^="fa icon-"]:before {
   font-size: 2.5em;
   text-shadow: 1px 1px 2px #e6e6e6;
@@ -1315,7 +1324,7 @@
 
 /* Markdown table */
 .mdtable {
-  border: 1px solid #ddd;
+  border: 1px solid var(--light-gray);
   width: 100%;
   max-width: 100%;
   margin-bottom: 20px;
@@ -1326,19 +1335,19 @@
 }
 
 .mdtable > thead > tr > th, .mdtable > tbody > tr > th, .mdtable > tfoot > tr > th, .mdtable > thead > tr > td, .mdtable > tbody > tr > td, .mdtable > tfoot > tr > td {
-  border: 1px solid #ddd;
+  border: 1px solid var(--light-gray);
 }
 
 .mdtable > thead > tr > th {
   vertical-align: bottom;
-  border-bottom: 2px solid #ddd;
+  border-bottom: 2px solid var(--light-gray);
 }
 
 .mdtable > thead > tr > th, .mdtable > tbody > tr > th, .mdtable > tfoot > tr > th, .mdtable > thead > tr > td, .mdtable > tbody > tr > td, .mdtable > tfoot > tr > td {
   padding: 8px;
   line-height: 1.42857143;
   vertical-align: top;
-  border-top: 1px solid #ddd;
+  border-top: 1px solid var(--light-gray);
 }
 
 .group {
@@ -1362,9 +1371,396 @@
 .group-item-i {
   margin-right: 5px;
   margin-left: 3px;
-  color: #8c8c8c;
+  color: var(--gray);
   /* height: 100%; */
   position: relative;
   float: left;
   /* margin-inline-start: 40px; */
 }
+
+table {
+  border: 1px solid var(--light-gray);
+  width: 100%;
+  max-width: 100%;
+  margin-bottom: 20px;
+}
+
+table > thead > tr > th,
+table > tbody > tr > th,
+table > tfoot > tr > th,
+table > thead > tr > td,
+table > tbody > tr > td,
+table > tfoot > tr > td {
+  border: 1px solid var(--light-gray);
+  padding: 8px;
+}
+table > thead > tr > th,
+table > thead > tr > td {
+  border-bottom-width: 2px;
+  padding: 8px;
+}
+
+div.compact > ul > li,
+div.compact > ul > li > p {
+  margin: 0px;
+}
+
+.link-block {
+  background: rgba(133,38,117,0.4);
+  padding: 15px 20px 40px 20px;
+  font-size: 19px;
+  display: flex;
+  align-items: flex-start;
+}
+
+.link-block .bottom h5 {
+  font-size: 15px;
+  font-weight: normal;
+  margin-top: 10px;
+}
+
+.link-block .bottom h4 {
+  font-size: 19px;
+  margin-bottom: 10px;
+}
+
+.link-block i {
+  margin: 10px 20px 0 10px;
+}
+
+.circled-icon {
+  border: 2px solid var(--light-white);
+  border-radius: 100%;
+  padding: 8px;
+}
+
+.header-links {
+  margin-top: 100px;
+}
+
+#main-block .table {
+  margin-bottom: 0;
+}
+
+.d-flex {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.m-auto {
+  margin: 0 auto;
+}
+
+.lead {
+  font-size: 20px;
+}
+
+.accented-block {
+  padding: 10px 30px;
+}
+
+.accented-block::before {
+  content: "";
+  width: 40px;
+  height: 4px;
+  display: block;
+  position: absolute;
+}
+
+.btn.btn-accent {
+  text-transform: uppercase;
+  padding: 10px 30px;
+  line-height: 25px;
+  font-size: 15px;
+  box-shadow: 2px 2px 3px -2px var(--light-black);
+  letter-spacing: 1.2px;
+  border-radius: 0;
+  color: var(--white);
+}
+
+.btn.btn-accent:active {
+  box-shadow: 0 0 15px -5px var(--light-black);
+}
+
+.btn i {
+  padding: 0 15px 0 0;
+  font-size: 27px;
+  margin: 0 -5px 0 -15px;
+  vertical-align: bottom;
+}
+
+.accented-block h5 {
+  font-size: 19px;
+}
+
+.accented-block h4 {
+  font-size: 38px;
+  color: var(--light-black)
+}
+
+.accented-block.accent-violet::before {
+  background: var(--violet);
+}
+
+.accented-block.accent-violet .btn.btn-accent,
+.accent-violet.btn.btn-accent {
+  background: var(--violet);
+  border-color: var(--violet);
+}
+
+.accented-block.accent-violet .btn.btn-accent:hover,
+.accented-block.accent-violet .btn.btn-accent:active,
+.accent-violet.btn.btn-accent:hover,
+.accent-violet.btn.btn-accent:active {
+  background: var(--white);
+  color: var(--violet);
+}
+
+.accented-block.accent-red::before {
+  background: var(--red);
+}
+
+.accented-block.accent-red .btn.btn-accent,
+.accent-red.btn.btn-accent {
+  background: var(--red);
+  border-color: var(--red);
+}
+
+.accented-block.accent-red .btn.btn-accent:hover,
+.accented-block.accent-red .btn.btn-accent:active,
+.accent-red.btn.btn-accent:hover,
+.accent-red.btn.btn-accent:active {
+  background: var(--white);
+  color: var(--red);
+}
+
+.accented-block.accent-orange::before {
+  background: var(--orange);
+}
+
+.accented-block.accent-orange .btn.btn-accent,
+.accent-orange.btn.btn-accent {
+  background: var(--orange);
+  border-color: var(--orange);
+}
+
+.accented-block.accent-orange .btn.btn-accent:hover,
+.accented-block.accent-orange .btn.btn-accent:active,
+.accent-orange.btn.btn-accent:hover,
+.accent-orange.btn.btn-accent:active {
+  background: var(--white);
+  color: var(--orange);
+}
+
+.f-column-start {
+  flex-direction: column;
+  align-items: flex-start;
+  text-align: left;
+}
+
+.f-column-end {
+  flex-direction: column;
+  align-items: flex-end;
+  text-align: right;
+}
+
+.f-column-end .btn, .f-column-end.accented-block::before {
+  align-self: flex-end;
+}
+
+.f-space-between {
+  justify-content: space-between;
+}
+
+.row.section {
+  padding: 80px 0;
+}
+
+.compatible-badge {
+  width: 204px;
+  height: 72px;
+  background-image: url(../img/jakartaee-compatible-badge-color.svg);
+  color: transparent;
+  display: inline-block;
+  background-size: contain;
+  user-select: none;
+}
+
+.compatible-badge.white {
+  background-image: url(../img/jakartaee-compatible-badge-white.svg);
+}
+
+.jakarta-ee-logo {
+  width: 265px;
+  height: 80px;
+  background: url(../img/jakarta_ee_logo.png) center center no-repeat;
+  background-size: contain;
+  display: inline-block;
+  user-select: none;
+}
+
+.microprofile-logo {
+  width: 288px;
+  height: 80px;
+  background: url(../img/microprofile_logo.png) center center no-repeat;
+  background-size: contain;
+  display: inline-block;
+  user-select: none;
+}
+
+.committers-info-section {
+  width: 100%;
+  color: var(--violet);
+  background: rgba(28, 36, 65, 0.93);
+  background: url('../img/commiters-info-back.jpg');
+  background-size: cover;
+  text-align: center;
+  padding: 25px 0;
+}
+
+.committers-info-section .info-count {
+  display: block;
+  font-weight: bold;
+  font-size: 60px;
+  color: rgba(255,255,255,1);
+  letter-spacing: 0.4px;
+  margin-top: 25px;
+}
+
+.committers-info-section .info-title {
+  display: block;
+  font-weight: normal;
+  font-size: 35px;
+  color: rgba(255,255,255,1);
+  text-transform: uppercase;
+  margin-bottom: 25px;
+}
+
+.flavours-title {
+  position: absolute;
+  writing-mode: vertical-rl;
+  text-orientation: mixed;
+  right: -92px;
+  top: calc(50% - 55px);
+  padding: 10px 0;
+}
+
+.flavours-block {
+  width: 375px;
+  max-width: calc(100vw - 130px);
+  position: relative;
+  min-width: 240px;
+}
+
+.flavour {
+  border: 2px solid rgb(229, 229, 229);
+  border-radius: 20px;
+  padding: 5px 20px;
+  margin-bottom: 25px;
+  display: flex;
+  box-shadow: 0 0 80px -10px var(--light-gray);
+}
+
+.flavour-icon {
+  border-radius: 100%;
+  width: 56px;
+  height: 56px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin: 3px 15px 3px 0;
+}
+
+.flavour-plus .flavour-icon{
+  background: rgb(238, 226, 255);
+  font-family: Montserrat;
+  font-style: normal;
+  font-weight: bold;
+  font-size: 40px;
+  color: rgba(131,38,119,1);
+}
+
+.flavour-plume .flavour-icon{
+  background: rgba(255,87,87, 0.344);
+  font-family: Poppins;
+  font-style: normal;
+  font-weight: bold;
+  font-size: 28px;
+  color: rgba(253,87,87,1);
+}
+
+.flavour-webprofile .flavour-icon{
+  background: rgba(243,143,36,0.476);
+  font-family: Poppins;
+  font-style: normal;
+  font-weight: bold;
+  font-size: 26px;
+  color: rgba(243,143,36,1);
+}
+
+.flavour-microprofile .flavour-icon{
+  background: url(../img/microprofile-icon-orange.png) center center no-repeat rgba(86,109,131,1);
+  color: transparent;
+}
+
+.flavour-content {
+  display: flex;
+  align-items: start;
+  justify-content: center;
+  flex-direction: column;
+  padding: 10px 0 0;
+}
+.flavour-artifact {
+  font-family: Montserrat;
+  font-style: normal;
+  font-weight: bold;
+  font-size: 11px;
+  color: rgba(34,34,34,1);
+  text-transform: uppercase;
+  letter-spacing: 2.5px;
+  opacity: 0.5;
+}
+.flavour-identifier, .flavours-title {
+  font-family: Bebas Neue;
+  font-style: normal;
+  font-weight: bold;
+  font-size: 21px;
+  color: rgba(34,34,34,1);
+  text-transform: uppercase;
+  letter-spacing: 1.25px;
+  background: var(--white);
+}
+
+.flavours-block::after {
+  display: block;
+  content: '';
+  bottom: 60px;
+  border: 3px dashed var(--light-gray);
+  position: absolute;
+  top: 36px;
+  border-left: none;
+  width: 68px;
+  right: -79px;
+  z-index: -1;
+}
+
+.block-content {
+  max-width: 90%;
+}
+
+.no-shadow {
+  box-shadow: none !important;
+}
+
+.navbar-nav > li > a.btn {
+  padding: 7px 16px;
+  text-transform: initial;
+}
+
+.navbar-brand img {
+  margin: -5px 0;
+}
+
+h2 > a, h3 > a, h4 > a {
+  padding-top: 155px;
+}
diff --git a/src/main/jbake/assets/css/jqtree.css b/src/main/jbake/assets/css/jqtree.css
index 6d07f16..4b92bdf 100755
--- a/src/main/jbake/assets/css/jqtree.css
+++ b/src/main/jbake/assets/css/jqtree.css
@@ -31,6 +31,8 @@
       margin-left: 0.5em; }
   ul.jqtree-tree .jqtree-element {
     cursor: pointer;
+    padding: 0 10px;
+    border: 1px solid transparent;
     position: relative; }
   ul.jqtree-tree .jqtree-title {
     color: #1C4257;
@@ -83,12 +85,11 @@
     box-sizing: content-box; }
   ul.jqtree-tree li.jqtree-selected > .jqtree-element,
   ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover {
-    background-color: #97BDD6;
-    background: -webkit-gradient(linear, left top, left bottom, from(#BEE0F5), to(#89AFCA));
-    background: -moz-linear-gradient(top, #BEE0F5, #89AFCA);
-    background: -ms-linear-gradient(top, #BEE0F5, #89AFCA);
-    background: -o-linear-gradient(top, #BEE0F5, #89AFCA);
-    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); }
+    border: 1px solid #97BDD6;
+  }
+  ul.jqtree-tree li.jqtree-selected > .jqtree-element .fa-folder-o::before {
+      content: "\f115";
+  }
   ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title {
     outline: dashed 1px #0000ff; }
 
diff --git a/src/main/jbake/assets/img/apache_tomee-logo-white.svg b/src/main/jbake/assets/img/apache_tomee-logo-white.svg
new file mode 100644
index 0000000..265da49
--- /dev/null
+++ b/src/main/jbake/assets/img/apache_tomee-logo-white.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 309.12 84.6"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}.cls-3{fill:url(#linear-gradient-3);}.cls-4{fill:url(#linear-gradient-4);}.cls-5{fill:url(#linear-gradient-5);}.cls-6{fill:url(#linear-gradient-6);}.cls-7{fill:url(#linear-gradient-7);}.cls-8{fill:#fff;}</style><linearGradient id="linear-gradient" x1="-140.8" y1="299.74" x2="-140.54" y2="299.82" gradientTransform="matrix(73.55, 13.53, 12.37, -67.22, 6705.27, 22065.73)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69a24"/><stop offset="0.31" stop-color="#f79b24"/><stop offset="0.84" stop-color="#e97927"/></linearGradient><linearGradient id="linear-gradient-2" x1="-140.57" y1="301.1" x2="-140.04" y2="301.79" gradientTransform="matrix(73.18, 13.46, 22.17, -120.5, 3610.25, 38263.65)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9f2065"/><stop offset="0.63" stop-color="#c92039"/><stop offset="0.75" stop-color="#ce2335"/><stop offset="1" stop-color="#e97927"/></linearGradient><linearGradient id="linear-gradient-3" x1="-139.85" y1="302.64" x2="-139.44" y2="303.04" gradientTransform="matrix(94.54, 17.39, 39.31, -213.67, 1324.66, 67181.12)" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-4" x1="-138.47" y1="303.49" x2="-138.13" y2="303.7" gradientTransform="matrix(61.33, 11.28, 37.35, -202.99, -2836.49, 63245.35)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282762"/><stop offset="0.1" stop-color="#66308d"/><stop offset="0.79" stop-color="#9f2065"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-5" x1="-140.85" y1="300.81" x2="-140.49" y2="301.63" gradientTransform="matrix(109.04, 20.06, 18.91, -102.77, 9674.72, 33833.56)" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-6" x1="-140.36" y1="302.64" x2="-140.09" y2="303.08" gradientTransform="matrix(147.15, 27.07, 35.4, -192.43, 9947.36, 62125.85)" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-139.7" y1="303.39" x2="-139.43" y2="304" gradientTransform="matrix(87.39, 16.08, 15.27, -82.98, 7588.49, 27506.27)" xlink:href="#linear-gradient-4"/></defs><path class="cls-1" d="M62.41,3.82c-1.59.58-4.44,2.56-8,5.53l0,.22,1.66,5.11.11.11a64.47,64.47,0,0,1,6.92-6,2.77,2.77,0,0,1,.25-.19c-.08.05-.17.13-.25.19a59.64,59.64,0,0,0-6.6,6.17l.31.13s6.67.56,9.93.61l.21-.13c2-5.45.53-8.41.53-8.41S65.71,2.62,62.41,3.82Z" transform="translate(-6.36 -3.62)"/><path class="cls-2" d="M46.06,26.2c1.08-1.34,2.16-2.67,3.23-3.94s2.24-2.59,3.37-3.81a.87.87,0,0,0,.19-.23c1.12-1.2,2.22-2.33,3.33-3.43L54.45,9.33q-.36.3-.72.63c-.93.81-1.91,1.67-2.91,2.6s-2.32,2.17-3.52,3.36-2.25,2.26-3.38,3.45c-1,1-2,2.07-2.94,3.17l-.11.12,0,.2L42.92,30l.13.08C44.05,28.76,45.05,27.46,46.06,26.2Z" transform="translate(-6.36 -3.62)"/><path class="cls-3" d="M25.88,55.47c.88-1.44,1.8-2.88,2.71-4.35s1.78-2.81,2.71-4.21,1.85-2.82,2.8-4.24S36,39.8,37,38.38s2-2.79,2.95-4.17c.35-.49.73-1,1.09-1.49.62-.85,1.26-1.69,1.88-2.53,0-.05.07-.08.1-.13l-2.18-7.4-.22.24c-1,1.17-2.08,2.35-3.1,3.57s-2.08,2.5-3.09,3.78c-.87,1.08-1.7,2.17-2.54,3.28l-.49.67c-1,1.4-2,2.75-2.85,4.08q-1.47,2.23-2.68,4.29c-.54.91-1,1.76-1.48,2.61s-.75,1.44-1.1,2.15c-.85,1.7-1.61,3.4-2.3,5.13v.22l2.09,7.14.09.08c.68-1.14,1.37-2.28,2.08-3.45C25.49,56.12,25.69,55.8,25.88,55.47Z" transform="translate(-6.36 -3.62)"/><path class="cls-4" d="M20.94,52.68A54,54,0,0,0,18.85,59c0,.07-.05.14-.07.23a14.17,14.17,0,0,0-3.32-4.12C17,58.49,18,61.74,17.69,64.69a9,9,0,0,1-4.23-1.54,9.09,9.09,0,0,0,3.3,2.95c-1.69-.2-3.64.62-5.64,1.61,2.76-.57,4.9-.6,6.33,0-3.58,6.22-7.28,13.15-11.09,20.51A2.16,2.16,0,0,0,8,87.11C8.69,85.77,13.19,77,19.8,65.63c.19-.31.38-.65.57-1l.16-.27c.7-1.18,1.41-2.41,2.16-3.65.16-.28.34-.56.5-.85v0L21,52.46A.93.93,0,0,1,20.94,52.68Z" transform="translate(-6.36 -3.62)"/><path class="cls-5" d="M56.5,15c-1,1-2.08,2.23-3.28,3.59-.07.06-.12.15-.19.21-1,1.18-2.12,2.47-3.29,3.9-1,1.23-2.07,2.55-3.19,4-1,1.25-2,2.57-3,4l.15.1,8.52.64.22-.1a10.83,10.83,0,0,0,5.45-2.88c.36-.36.75-.75,1.12-1.15,1.15-1.24,2.31-2.6,3.37-4s2-2.69,2.72-3.9a22.43,22.43,0,0,0,1.19-2.16c.28-.58.51-1.13.7-1.65A95.38,95.38,0,0,1,56.5,15Z" transform="translate(-6.36 -3.62)"/><path class="cls-6" d="M43.08,31.29,41.84,33c-.45.62-.92,1.27-1.38,1.93-.22.33-.47.68-.7,1-.73,1-1.44,2.08-2.2,3.16-.91,1.34-1.86,2.74-2.81,4.18S32.9,46.09,32,47.58,30.13,50.46,29.2,52s-1.69,2.71-2.54,4.15c-.05.07-.08.14-.13.2-.86,1.42-1.7,2.87-2.59,4.36,0,0-.07.12-.1.15l.12,0,2.55.19.15,0c-.05,0-.07-.11-.12-.13,3.38.19,8.23-1.48,11.65-4a27.4,27.4,0,0,0,4.53-4.35,44,44,0,0,0,3.2-4.4c.93-1.43,1.85-3,2.78-4.71a10.35,10.35,0,0,1-2.75.43H44.87a12.22,12.22,0,0,0,7.6-5.1,11.08,11.08,0,0,1-4,.95c-.22,0-.44,0-.68,0H47.6a12.7,12.7,0,0,0,3-1l.56-.3.8-.53a5.25,5.25,0,0,0,.49-.37,8.61,8.61,0,0,0,1.08-1c.12-.11.22-.24.33-.35s.27-.36.39-.54c.59-.79,1.08-1.49,1.47-2.13.21-.31.37-.6.54-.88a2.58,2.58,0,0,1,.18-.32c.17-.3.31-.57.44-.83s.28-.65.36-.86a3.15,3.15,0,0,1-.41.18,12.8,12.8,0,0,1-4.06.59l2.6.18-2.6-.18h-.46s-2.93-.24-8.81-.68A7.25,7.25,0,0,0,43.08,31.29Z" transform="translate(-6.36 -3.62)"/><path class="cls-7" d="M23.45,61.44c-.68,1.16-1.38,2.35-2.07,3.56,0,0,0,0,0,0a5.08,5.08,0,0,0-.3.52c-.47.82-.88,1.54-1.82,3.23a7.11,7.11,0,0,1,2,3.52,5.49,5.49,0,0,0-1.1-4.11c4.94,1.13,9.46.66,12.33-2.56a9.66,9.66,0,0,0,.73-.93c-1.24,1.09-2.6,1.4-4.91.85h0c3.75-.91,5.75-2.08,7.75-4.26.46-.52.94-1.09,1.43-1.72A11,11,0,0,1,26.66,61l-2.82-.2C23.71,61,23.58,61.22,23.45,61.44Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M96.11,64.39H92.05a1.71,1.71,0,0,1-1.11-.34,2.18,2.18,0,0,1-.65-.85l-2.1-5.76H76.49L74.38,63.2a1.86,1.86,0,0,1-.61.82,1.67,1.67,0,0,1-1.11.37h-4.1L79.67,36.15H85ZM86.84,53.73l-3.44-9.4c-.17-.41-.34-.91-.53-1.48s-.36-1.19-.54-1.85c-.17.66-.35,1.28-.53,1.86s-.36,1.08-.53,1.51l-3.41,9.36Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M103,47.09a10.51,10.51,0,0,1,2.79-2.25,7.51,7.51,0,0,1,3.67-.86,6.55,6.55,0,0,1,3,.69,6.67,6.67,0,0,1,2.34,2,9.24,9.24,0,0,1,1.52,3.2,16.08,16.08,0,0,1,.54,4.37,13.78,13.78,0,0,1-.6,4.15,10.16,10.16,0,0,1-1.73,3.32,8,8,0,0,1-2.72,2.2,7.86,7.86,0,0,1-3.56.79,7.26,7.26,0,0,1-2.87-.51,7.15,7.15,0,0,1-2.13-1.44v8.2H98.44V44.35h3a1.2,1.2,0,0,1,1.23.88Zm.25,12.11a4.72,4.72,0,0,0,1.79,1.4,5.35,5.35,0,0,0,2.1.41,4.69,4.69,0,0,0,2-.41,3.86,3.86,0,0,0,1.49-1.25,6.11,6.11,0,0,0,1-2.12,12.15,12.15,0,0,0,.33-3,13.28,13.28,0,0,0-.28-3,5.68,5.68,0,0,0-.81-2,3.25,3.25,0,0,0-1.28-1.12,4,4,0,0,0-1.71-.35,4.82,4.82,0,0,0-2.56.64,7.76,7.76,0,0,0-2,1.78Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M120.35,47.15A11.86,11.86,0,0,1,128.66,44a8.23,8.23,0,0,1,3.15.58,6.68,6.68,0,0,1,2.34,1.6,6.92,6.92,0,0,1,1.46,2.45,9.47,9.47,0,0,1,.5,3.13V64.39h-2.19a2.19,2.19,0,0,1-1.06-.21,1.4,1.4,0,0,1-.58-.83l-.43-1.44a15.07,15.07,0,0,1-1.49,1.2,8.72,8.72,0,0,1-1.5.87,8.82,8.82,0,0,1-1.67.54,9.91,9.91,0,0,1-2,.18,7.56,7.56,0,0,1-2.34-.34,5.11,5.11,0,0,1-1.86-1,4.63,4.63,0,0,1-1.21-1.69,6,6,0,0,1-.43-2.37,4.64,4.64,0,0,1,.25-1.51,4.59,4.59,0,0,1,.83-1.44A6.93,6.93,0,0,1,122,55,9.43,9.43,0,0,1,124.22,54a19.46,19.46,0,0,1,3.12-.73,31,31,0,0,1,4.06-.34V51.74a4.38,4.38,0,0,0-.86-3,3.12,3.12,0,0,0-2.48-1,5.92,5.92,0,0,0-1.94.27,8.24,8.24,0,0,0-1.36.62l-1.07.61a2,2,0,0,1-1.06.28,1.38,1.38,0,0,1-.86-.27,2.16,2.16,0,0,1-.56-.61Zm11.05,8.69a25.25,25.25,0,0,0-3.52.36,9.2,9.2,0,0,0-2.28.67,3.05,3.05,0,0,0-1.23,1A2,2,0,0,0,124,59a2.11,2.11,0,0,0,.75,1.82,3.27,3.27,0,0,0,2,.54,5.7,5.7,0,0,0,2.57-.54,7.5,7.5,0,0,0,2.12-1.63Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M155.18,48.59a2.15,2.15,0,0,1-.42.43.9.9,0,0,1-.59.16,1.36,1.36,0,0,1-.73-.23c-.23-.15-.51-.32-.84-.5a6,6,0,0,0-1.16-.51,5.3,5.3,0,0,0-1.67-.23,5.15,5.15,0,0,0-2.22.46A4.24,4.24,0,0,0,146,49.49a5.86,5.86,0,0,0-1,2.08,11,11,0,0,0-.31,2.76,10.71,10.71,0,0,0,.34,2.85,6,6,0,0,0,1,2.1,4.15,4.15,0,0,0,1.57,1.29,4.76,4.76,0,0,0,2.07.44,5.09,5.09,0,0,0,1.86-.28,5.57,5.57,0,0,0,1.2-.63c.33-.22.61-.43.85-.62a1.27,1.27,0,0,1,.81-.28,1,1,0,0,1,.88.44l1.39,1.76A8.77,8.77,0,0,1,154.91,63,9.5,9.5,0,0,1,153,64a10.51,10.51,0,0,1-2.07.54,15.22,15.22,0,0,1-2.12.15,9,9,0,0,1-3.5-.69,8.32,8.32,0,0,1-2.87-2,9.63,9.63,0,0,1-1.94-3.25,12.48,12.48,0,0,1-.71-4.39,12.84,12.84,0,0,1,.63-4.09A9.3,9.3,0,0,1,142.26,47a8.5,8.5,0,0,1,3-2.16,10.53,10.53,0,0,1,4.18-.78,9.24,9.24,0,0,1,7,2.79Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M164.67,46.5a10.21,10.21,0,0,1,2.58-1.77,7.43,7.43,0,0,1,3.3-.69,7.23,7.23,0,0,1,2.91.56,5.74,5.74,0,0,1,2.12,1.56,7.09,7.09,0,0,1,1.29,2.4,10.32,10.32,0,0,1,.44,3.08V64.39h-4.83V51.64a4.3,4.3,0,0,0-.84-2.84,3.14,3.14,0,0,0-2.55-1,5,5,0,0,0-2.35.57,8.44,8.44,0,0,0-2.07,1.54V64.39h-4.82v-29h4.82Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M185.78,55a9.39,9.39,0,0,0,.55,2.66,5.36,5.36,0,0,0,1.13,1.86,4.44,4.44,0,0,0,1.67,1.09,6.08,6.08,0,0,0,2.14.36,6.72,6.72,0,0,0,2-.27,8.26,8.26,0,0,0,1.48-.61c.43-.22.8-.42,1.12-.6a1.86,1.86,0,0,1,.92-.27,1,1,0,0,1,.9.44l1.39,1.76A7.85,7.85,0,0,1,197.3,63a9.79,9.79,0,0,1-2.08,1,12.18,12.18,0,0,1-2.2.54,16.53,16.53,0,0,1-2.18.15A10.79,10.79,0,0,1,187,64a8.65,8.65,0,0,1-3.12-2.05,9.68,9.68,0,0,1-2.09-3.36,12.93,12.93,0,0,1-.76-4.64,11.12,11.12,0,0,1,.66-3.85,9.15,9.15,0,0,1,1.91-3.15,8.9,8.9,0,0,1,3-2.12,10,10,0,0,1,4-.78,9.68,9.68,0,0,1,3.5.61,7.51,7.51,0,0,1,2.75,1.76,8.28,8.28,0,0,1,1.81,2.86,10.5,10.5,0,0,1,.65,3.85,3.14,3.14,0,0,1-.23,1.48,1,1,0,0,1-.9.38Zm9.2-2.91a5.66,5.66,0,0,0-.27-1.77,3.93,3.93,0,0,0-.79-1.45,3.6,3.6,0,0,0-1.33-1,4.62,4.62,0,0,0-1.89-.36,4.49,4.49,0,0,0-3.29,1.19,5.82,5.82,0,0,0-1.53,3.38Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M222.79,38.46h-9.71V64.39h-2V38.46h-9.76v-1.7h21.48Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M229.58,44.65a9.27,9.27,0,0,1,3.74.71,7.65,7.65,0,0,1,2.78,2,8.89,8.89,0,0,1,1.73,3.15,14.51,14.51,0,0,1,0,8.26,8.93,8.93,0,0,1-1.73,3.14,7.51,7.51,0,0,1-2.78,2,10.34,10.34,0,0,1-7.48,0,7.63,7.63,0,0,1-2.79-2,9,9,0,0,1-1.74-3.14,14.75,14.75,0,0,1,0-8.26,8.91,8.91,0,0,1,1.74-3.15,7.77,7.77,0,0,1,2.79-2A9.27,9.27,0,0,1,229.58,44.65Zm0,18.53a7.2,7.2,0,0,0,3-.6,5.56,5.56,0,0,0,2.16-1.71,7.36,7.36,0,0,0,1.3-2.68,14.62,14.62,0,0,0,0-7,7.46,7.46,0,0,0-1.3-2.7,5.7,5.7,0,0,0-2.16-1.73,7.05,7.05,0,0,0-3-.61,7,7,0,0,0-3,.61,5.73,5.73,0,0,0-2.17,1.73,7.64,7.64,0,0,0-1.31,2.7,14.3,14.3,0,0,0,0,7,7.54,7.54,0,0,0,1.31,2.68,5.59,5.59,0,0,0,2.17,1.71A7.12,7.12,0,0,0,229.58,63.18Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M243.87,64.39V45h1a.52.52,0,0,1,.57.49l.17,2.81a10.28,10.28,0,0,1,2.6-2.62,5.77,5.77,0,0,1,3.3-1A4.73,4.73,0,0,1,255,45.88a6.33,6.33,0,0,1,1.72,3.41,7.1,7.1,0,0,1,1-2.07,6.09,6.09,0,0,1,1.46-1.45,5.84,5.84,0,0,1,1.78-.85,7.39,7.39,0,0,1,2-.27,6.69,6.69,0,0,1,2.6.48,5,5,0,0,1,1.95,1.41,6.3,6.3,0,0,1,1.23,2.31A10.28,10.28,0,0,1,269.1,52V64.39h-1.85V52A6.66,6.66,0,0,0,266,47.63a4.29,4.29,0,0,0-3.52-1.5,5.15,5.15,0,0,0-1.94.37,4.77,4.77,0,0,0-1.64,1.11,5.26,5.26,0,0,0-1.13,1.82,7.08,7.08,0,0,0-.42,2.54V64.39h-1.88V52a7.17,7.17,0,0,0-1.12-4.34,3.86,3.86,0,0,0-3.29-1.5,5,5,0,0,0-2.93.94,8.78,8.78,0,0,0-2.4,2.6V64.39Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M292.63,62.73l0,1.66H276V36.76H292.6v1.66H278.05V49.59h12.1v1.62h-12.1V62.73Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M315.48,62.73l0,1.66H298.88V36.76h16.56v1.66H300.89V49.59H313v1.62H300.89V62.73Z" transform="translate(-6.36 -3.62)"/></svg>
\ No newline at end of file
diff --git a/src/main/jbake/assets/img/apache_tomee-logo.svg b/src/main/jbake/assets/img/apache_tomee-logo.svg
new file mode 100644
index 0000000..e1c990c
--- /dev/null
+++ b/src/main/jbake/assets/img/apache_tomee-logo.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 309.12 84.6"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}.cls-3{fill:url(#linear-gradient-3);}.cls-4{fill:url(#linear-gradient-4);}.cls-5{fill:url(#linear-gradient-5);}.cls-6{fill:url(#linear-gradient-6);}.cls-7{fill:url(#linear-gradient-7);}.cls-8{fill:#231f20;}</style><linearGradient id="linear-gradient" x1="-140.8" y1="299.74" x2="-140.54" y2="299.82" gradientTransform="matrix(73.55, 13.53, 12.37, -67.22, 6705.27, 22065.73)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69a24"/><stop offset="0.31" stop-color="#f79b24"/><stop offset="0.84" stop-color="#e97927"/></linearGradient><linearGradient id="linear-gradient-2" x1="-140.57" y1="301.1" x2="-140.04" y2="301.79" gradientTransform="matrix(73.18, 13.46, 22.17, -120.5, 3610.25, 38263.65)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9f2065"/><stop offset="0.63" stop-color="#c92039"/><stop offset="0.75" stop-color="#ce2335"/><stop offset="1" stop-color="#e97927"/></linearGradient><linearGradient id="linear-gradient-3" x1="-139.85" y1="302.64" x2="-139.44" y2="303.04" gradientTransform="matrix(94.54, 17.39, 39.31, -213.67, 1324.66, 67181.12)" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-4" x1="-138.47" y1="303.49" x2="-138.13" y2="303.7" gradientTransform="matrix(61.33, 11.28, 37.35, -202.99, -2836.49, 63245.35)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282762"/><stop offset="0.1" stop-color="#66308d"/><stop offset="0.79" stop-color="#9f2065"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-5" x1="-140.85" y1="300.81" x2="-140.49" y2="301.63" gradientTransform="matrix(109.04, 20.06, 18.91, -102.77, 9674.72, 33833.56)" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-6" x1="-140.36" y1="302.64" x2="-140.09" y2="303.08" gradientTransform="matrix(147.15, 27.07, 35.4, -192.43, 9947.36, 62125.85)" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-139.7" y1="303.39" x2="-139.43" y2="304" gradientTransform="matrix(87.39, 16.08, 15.27, -82.98, 7588.49, 27506.27)" xlink:href="#linear-gradient-4"/></defs><path class="cls-1" d="M62.41,3.82c-1.59.58-4.44,2.56-8,5.53l0,.22,1.66,5.11.11.11a64.47,64.47,0,0,1,6.92-6,2.77,2.77,0,0,1,.25-.19c-.08.05-.17.13-.25.19a59.64,59.64,0,0,0-6.6,6.17l.31.13s6.67.56,9.93.61l.21-.13c2-5.45.53-8.41.53-8.41S65.71,2.62,62.41,3.82Z" transform="translate(-6.36 -3.62)"/><path class="cls-2" d="M46.06,26.2c1.08-1.34,2.16-2.67,3.23-3.94s2.24-2.59,3.37-3.81a.87.87,0,0,0,.19-.23c1.12-1.2,2.22-2.33,3.33-3.43L54.45,9.33q-.36.3-.72.63c-.93.81-1.91,1.67-2.91,2.6s-2.32,2.17-3.52,3.36-2.25,2.26-3.38,3.45c-1,1-2,2.07-2.94,3.17l-.11.12,0,.2L42.92,30l.13.08C44.05,28.76,45.05,27.46,46.06,26.2Z" transform="translate(-6.36 -3.62)"/><path class="cls-3" d="M25.88,55.47c.88-1.44,1.8-2.88,2.71-4.35s1.78-2.81,2.71-4.21,1.85-2.82,2.8-4.24S36,39.8,37,38.38s2-2.79,2.95-4.17c.35-.49.73-1,1.09-1.49.62-.85,1.26-1.69,1.88-2.53,0-.05.07-.08.1-.13l-2.18-7.4-.22.24c-1,1.17-2.08,2.35-3.1,3.57s-2.08,2.5-3.09,3.78c-.87,1.08-1.7,2.17-2.54,3.28l-.49.67c-1,1.4-2,2.75-2.85,4.08q-1.47,2.23-2.68,4.29c-.54.91-1,1.76-1.48,2.61s-.75,1.44-1.1,2.15c-.85,1.7-1.61,3.4-2.3,5.13v.22l2.09,7.14.09.08c.68-1.14,1.37-2.28,2.08-3.45C25.49,56.12,25.69,55.8,25.88,55.47Z" transform="translate(-6.36 -3.62)"/><path class="cls-4" d="M20.94,52.68A54,54,0,0,0,18.85,59c0,.07-.05.14-.07.23a14.17,14.17,0,0,0-3.32-4.12C17,58.49,18,61.74,17.69,64.69a9,9,0,0,1-4.23-1.54,9.09,9.09,0,0,0,3.3,2.95c-1.69-.2-3.64.62-5.64,1.61,2.76-.57,4.9-.6,6.33,0-3.58,6.22-7.28,13.15-11.09,20.51A2.16,2.16,0,0,0,8,87.11C8.69,85.77,13.19,77,19.8,65.63c.19-.31.38-.65.57-1l.16-.27c.7-1.18,1.41-2.41,2.16-3.65.16-.28.34-.56.5-.85v0L21,52.46A.93.93,0,0,1,20.94,52.68Z" transform="translate(-6.36 -3.62)"/><path class="cls-5" d="M56.5,15c-1,1-2.08,2.23-3.28,3.59-.07.06-.12.15-.19.21-1,1.18-2.12,2.47-3.29,3.9-1,1.23-2.07,2.55-3.19,4-1,1.25-2,2.57-3,4l.15.1,8.52.64.22-.1a10.83,10.83,0,0,0,5.45-2.88c.36-.36.75-.75,1.12-1.15,1.15-1.24,2.31-2.6,3.37-4s2-2.69,2.72-3.9a22.43,22.43,0,0,0,1.19-2.16c.28-.58.51-1.13.7-1.65A95.38,95.38,0,0,1,56.5,15Z" transform="translate(-6.36 -3.62)"/><path class="cls-6" d="M43.08,31.29,41.84,33c-.45.62-.92,1.27-1.38,1.93-.22.33-.47.68-.7,1-.73,1-1.44,2.08-2.2,3.16-.91,1.34-1.86,2.74-2.81,4.18S32.9,46.09,32,47.58,30.13,50.46,29.2,52s-1.69,2.71-2.54,4.15c-.05.07-.08.14-.13.2-.86,1.42-1.7,2.87-2.59,4.36,0,0-.07.12-.1.15l.12,0,2.55.19.15,0c-.05,0-.07-.11-.12-.13,3.38.19,8.23-1.48,11.65-4a27.4,27.4,0,0,0,4.53-4.35,44,44,0,0,0,3.2-4.4c.93-1.43,1.85-3,2.78-4.71a10.35,10.35,0,0,1-2.75.43H44.87a12.22,12.22,0,0,0,7.6-5.1,11.08,11.08,0,0,1-4,.95c-.22,0-.44,0-.68,0H47.6a12.7,12.7,0,0,0,3-1l.56-.3.8-.53a5.25,5.25,0,0,0,.49-.37,8.61,8.61,0,0,0,1.08-1c.12-.11.22-.24.33-.35s.27-.36.39-.54c.59-.79,1.08-1.49,1.47-2.13.21-.31.37-.6.54-.88a2.58,2.58,0,0,1,.18-.32c.17-.3.31-.57.44-.83s.28-.65.36-.86a3.15,3.15,0,0,1-.41.18,12.8,12.8,0,0,1-4.06.59l2.6.18-2.6-.18h-.46s-2.93-.24-8.81-.68A7.25,7.25,0,0,0,43.08,31.29Z" transform="translate(-6.36 -3.62)"/><path class="cls-7" d="M23.45,61.44c-.68,1.16-1.38,2.35-2.07,3.56,0,0,0,0,0,0a5.08,5.08,0,0,0-.3.52c-.47.82-.88,1.54-1.82,3.23a7.11,7.11,0,0,1,2,3.52,5.49,5.49,0,0,0-1.1-4.11c4.94,1.13,9.46.66,12.33-2.56a9.66,9.66,0,0,0,.73-.93c-1.24,1.09-2.6,1.4-4.91.85h0c3.75-.91,5.75-2.08,7.75-4.26.46-.52.94-1.09,1.43-1.72A11,11,0,0,1,26.66,61l-2.82-.2C23.71,61,23.58,61.22,23.45,61.44Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M96.11,64.39H92.05a1.71,1.71,0,0,1-1.11-.34,2.18,2.18,0,0,1-.65-.85l-2.1-5.76H76.49L74.38,63.2a1.86,1.86,0,0,1-.61.82,1.67,1.67,0,0,1-1.11.37h-4.1L79.67,36.15H85ZM86.84,53.73l-3.44-9.4c-.17-.41-.34-.91-.53-1.48s-.36-1.19-.54-1.85c-.17.66-.35,1.28-.53,1.86s-.36,1.08-.53,1.51l-3.41,9.36Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M103,47.09a10.51,10.51,0,0,1,2.79-2.25,7.51,7.51,0,0,1,3.67-.86,6.55,6.55,0,0,1,3,.69,6.67,6.67,0,0,1,2.34,2,9.24,9.24,0,0,1,1.52,3.2,16.08,16.08,0,0,1,.54,4.37,13.78,13.78,0,0,1-.6,4.15,10.16,10.16,0,0,1-1.73,3.32,8,8,0,0,1-2.72,2.2,7.86,7.86,0,0,1-3.56.79,7.26,7.26,0,0,1-2.87-.51,7.15,7.15,0,0,1-2.13-1.44v8.2H98.44V44.35h3a1.2,1.2,0,0,1,1.23.88Zm.25,12.11a4.72,4.72,0,0,0,1.79,1.4,5.35,5.35,0,0,0,2.1.41,4.69,4.69,0,0,0,2-.41,3.86,3.86,0,0,0,1.49-1.25,6.11,6.11,0,0,0,1-2.12,12.15,12.15,0,0,0,.33-3,13.28,13.28,0,0,0-.28-3,5.68,5.68,0,0,0-.81-2,3.25,3.25,0,0,0-1.28-1.12,4,4,0,0,0-1.71-.35,4.82,4.82,0,0,0-2.56.64,7.76,7.76,0,0,0-2,1.78Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M120.35,47.15A11.86,11.86,0,0,1,128.66,44a8.23,8.23,0,0,1,3.15.58,6.68,6.68,0,0,1,2.34,1.6,6.92,6.92,0,0,1,1.46,2.45,9.47,9.47,0,0,1,.5,3.13V64.39h-2.19a2.19,2.19,0,0,1-1.06-.21,1.4,1.4,0,0,1-.58-.83l-.43-1.44a15.07,15.07,0,0,1-1.49,1.2,8.72,8.72,0,0,1-1.5.87,8.82,8.82,0,0,1-1.67.54,9.91,9.91,0,0,1-2,.18,7.56,7.56,0,0,1-2.34-.34,5.11,5.11,0,0,1-1.86-1,4.63,4.63,0,0,1-1.21-1.69,6,6,0,0,1-.43-2.37,4.64,4.64,0,0,1,.25-1.51,4.59,4.59,0,0,1,.83-1.44A6.93,6.93,0,0,1,122,55,9.43,9.43,0,0,1,124.22,54a19.46,19.46,0,0,1,3.12-.73,31,31,0,0,1,4.06-.34V51.74a4.38,4.38,0,0,0-.86-3,3.12,3.12,0,0,0-2.48-1,5.92,5.92,0,0,0-1.94.27,8.24,8.24,0,0,0-1.36.62l-1.07.61a2,2,0,0,1-1.06.28,1.38,1.38,0,0,1-.86-.27,2.16,2.16,0,0,1-.56-.61Zm11.05,8.69a25.25,25.25,0,0,0-3.52.36,9.2,9.2,0,0,0-2.28.67,3.05,3.05,0,0,0-1.23,1A2,2,0,0,0,124,59a2.11,2.11,0,0,0,.75,1.82,3.27,3.27,0,0,0,2,.54,5.7,5.7,0,0,0,2.57-.54,7.5,7.5,0,0,0,2.12-1.63Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M155.18,48.59a2.15,2.15,0,0,1-.42.43.9.9,0,0,1-.59.16,1.36,1.36,0,0,1-.73-.23c-.23-.15-.51-.32-.84-.5a6,6,0,0,0-1.16-.51,5.3,5.3,0,0,0-1.67-.23,5.15,5.15,0,0,0-2.22.46A4.24,4.24,0,0,0,146,49.49a5.86,5.86,0,0,0-1,2.08,11,11,0,0,0-.31,2.76,10.71,10.71,0,0,0,.34,2.85,6,6,0,0,0,1,2.1,4.15,4.15,0,0,0,1.57,1.29,4.76,4.76,0,0,0,2.07.44,5.09,5.09,0,0,0,1.86-.28,5.57,5.57,0,0,0,1.2-.63c.33-.22.61-.43.85-.62a1.27,1.27,0,0,1,.81-.28,1,1,0,0,1,.88.44l1.39,1.76A8.77,8.77,0,0,1,154.91,63,9.5,9.5,0,0,1,153,64a10.51,10.51,0,0,1-2.07.54,15.22,15.22,0,0,1-2.12.15,9,9,0,0,1-3.5-.69,8.32,8.32,0,0,1-2.87-2,9.63,9.63,0,0,1-1.94-3.25,12.48,12.48,0,0,1-.71-4.39,12.84,12.84,0,0,1,.63-4.09A9.3,9.3,0,0,1,142.26,47a8.5,8.5,0,0,1,3-2.16,10.53,10.53,0,0,1,4.18-.78,9.24,9.24,0,0,1,7,2.79Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M164.67,46.5a10.21,10.21,0,0,1,2.58-1.77,7.43,7.43,0,0,1,3.3-.69,7.23,7.23,0,0,1,2.91.56,5.74,5.74,0,0,1,2.12,1.56,7.09,7.09,0,0,1,1.29,2.4,10.32,10.32,0,0,1,.44,3.08V64.39h-4.83V51.64a4.3,4.3,0,0,0-.84-2.84,3.14,3.14,0,0,0-2.55-1,5,5,0,0,0-2.35.57,8.44,8.44,0,0,0-2.07,1.54V64.39h-4.82v-29h4.82Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M185.78,55a9.39,9.39,0,0,0,.55,2.66,5.36,5.36,0,0,0,1.13,1.86,4.44,4.44,0,0,0,1.67,1.09,6.08,6.08,0,0,0,2.14.36,6.72,6.72,0,0,0,2-.27,8.26,8.26,0,0,0,1.48-.61c.43-.22.8-.42,1.12-.6a1.86,1.86,0,0,1,.92-.27,1,1,0,0,1,.9.44l1.39,1.76A7.85,7.85,0,0,1,197.3,63a9.79,9.79,0,0,1-2.08,1,12.18,12.18,0,0,1-2.2.54,16.53,16.53,0,0,1-2.18.15A10.79,10.79,0,0,1,187,64a8.65,8.65,0,0,1-3.12-2.05,9.68,9.68,0,0,1-2.09-3.36,12.93,12.93,0,0,1-.76-4.64,11.12,11.12,0,0,1,.66-3.85,9.15,9.15,0,0,1,1.91-3.15,8.9,8.9,0,0,1,3-2.12,10,10,0,0,1,4-.78,9.68,9.68,0,0,1,3.5.61,7.51,7.51,0,0,1,2.75,1.76,8.28,8.28,0,0,1,1.81,2.86,10.5,10.5,0,0,1,.65,3.85,3.14,3.14,0,0,1-.23,1.48,1,1,0,0,1-.9.38Zm9.2-2.91a5.66,5.66,0,0,0-.27-1.77,3.93,3.93,0,0,0-.79-1.45,3.6,3.6,0,0,0-1.33-1,4.62,4.62,0,0,0-1.89-.36,4.49,4.49,0,0,0-3.29,1.19,5.82,5.82,0,0,0-1.53,3.38Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M222.79,38.46h-9.71V64.39h-2V38.46h-9.76v-1.7h21.48Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M229.58,44.65a9.27,9.27,0,0,1,3.74.71,7.65,7.65,0,0,1,2.78,2,8.89,8.89,0,0,1,1.73,3.15,14.51,14.51,0,0,1,0,8.26,8.93,8.93,0,0,1-1.73,3.14,7.51,7.51,0,0,1-2.78,2,10.34,10.34,0,0,1-7.48,0,7.63,7.63,0,0,1-2.79-2,9,9,0,0,1-1.74-3.14,14.75,14.75,0,0,1,0-8.26,8.91,8.91,0,0,1,1.74-3.15,7.77,7.77,0,0,1,2.79-2A9.27,9.27,0,0,1,229.58,44.65Zm0,18.53a7.2,7.2,0,0,0,3-.6,5.56,5.56,0,0,0,2.16-1.71,7.36,7.36,0,0,0,1.3-2.68,14.62,14.62,0,0,0,0-7,7.46,7.46,0,0,0-1.3-2.7,5.7,5.7,0,0,0-2.16-1.73,7.05,7.05,0,0,0-3-.61,7,7,0,0,0-3,.61,5.73,5.73,0,0,0-2.17,1.73,7.64,7.64,0,0,0-1.31,2.7,14.3,14.3,0,0,0,0,7,7.54,7.54,0,0,0,1.31,2.68,5.59,5.59,0,0,0,2.17,1.71A7.12,7.12,0,0,0,229.58,63.18Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M243.87,64.39V45h1a.52.52,0,0,1,.57.49l.17,2.81a10.28,10.28,0,0,1,2.6-2.62,5.77,5.77,0,0,1,3.3-1A4.73,4.73,0,0,1,255,45.88a6.33,6.33,0,0,1,1.72,3.41,7.1,7.1,0,0,1,1-2.07,6.09,6.09,0,0,1,1.46-1.45,5.84,5.84,0,0,1,1.78-.85,7.39,7.39,0,0,1,2-.27,6.69,6.69,0,0,1,2.6.48,5,5,0,0,1,1.95,1.41,6.3,6.3,0,0,1,1.23,2.31A10.28,10.28,0,0,1,269.1,52V64.39h-1.85V52A6.66,6.66,0,0,0,266,47.63a4.29,4.29,0,0,0-3.52-1.5,5.15,5.15,0,0,0-1.94.37,4.77,4.77,0,0,0-1.64,1.11,5.26,5.26,0,0,0-1.13,1.82,7.08,7.08,0,0,0-.42,2.54V64.39h-1.88V52a7.17,7.17,0,0,0-1.12-4.34,3.86,3.86,0,0,0-3.29-1.5,5,5,0,0,0-2.93.94,8.78,8.78,0,0,0-2.4,2.6V64.39Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M292.63,62.73l0,1.66H276V36.76H292.6v1.66H278.05V49.59h12.1v1.62h-12.1V62.73Z" transform="translate(-6.36 -3.62)"/><path class="cls-8" d="M315.48,62.73l0,1.66H298.88V36.76h16.56v1.66H300.89V49.59H313v1.62H300.89V62.73Z" transform="translate(-6.36 -3.62)"/></svg>
\ No newline at end of file
diff --git a/src/main/jbake/assets/img/commiters-info-back.jpg b/src/main/jbake/assets/img/commiters-info-back.jpg
new file mode 100644
index 0000000..2a206ac
--- /dev/null
+++ b/src/main/jbake/assets/img/commiters-info-back.jpg
Binary files differ
diff --git a/src/main/jbake/assets/img/jakarta_ee_logo.png b/src/main/jbake/assets/img/jakarta_ee_logo.png
new file mode 100644
index 0000000..a45c0aa
--- /dev/null
+++ b/src/main/jbake/assets/img/jakarta_ee_logo.png
Binary files differ
diff --git a/src/main/jbake/assets/img/jakartaee-compatible-badge-color.svg b/src/main/jbake/assets/img/jakartaee-compatible-badge-color.svg
new file mode 100644
index 0000000..5b411d8
--- /dev/null
+++ b/src/main/jbake/assets/img/jakartaee-compatible-badge-color.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 139.89 49.15"><defs><style>.cls-1{fill:#f58220;}.cls-2{fill:#fdb940;}.cls-3{fill:#fcb322;}.cls-4{fill:#2d3183;}.cls-5{fill:#fff;}</style></defs><path class="cls-1" d="M99.92,40.55l34.79,0s-17.25,5.39-25.83,8.23c-2.5.83-5,1.57-7.54,2.37-1.26.41-2.8,0-2.48-2.13s1.06-8.44,1.06-8.44" transform="translate(-0.92 -2.11)"/><path class="cls-2" d="M139.34,11H45.52c.22,7.67-.79,18.61-9.68,27.18H136.23a1.47,1.47,0,0,0,1.47-1.47l3.11-24.24A1.47,1.47,0,0,0,139.34,11" transform="translate(-0.92 -2.11)"/><path class="cls-2" d="M41.57,2.11l-10.09,11a36.75,36.75,0,0,1-7.42,21.74l8.77,2.2c14.65-13.79,8.74-35,8.74-35" transform="translate(-0.92 -2.11)"/><path class="cls-3" d="M31.48,13.15a32.65,32.65,0,0,0-.42-6.38L8.8,31.14,24,34.94l0,0L13.94,32.37Z" transform="translate(-0.92 -2.11)"/><path class="cls-1" d="M13.94,32.37l10.12,2.52a36.75,36.75,0,0,0,7.42-21.74Z" transform="translate(-0.92 -2.11)"/><path class="cls-4" d="M27,38.41c.88,0,1.74,0,2.59.12L.92,31.44s5.34,1.77,11.8,11.43c3.41-2.73,8.56-4.46,14.32-4.46" transform="translate(-0.92 -2.11)"/><path class="cls-4" d="M56.91,20.78a2.07,2.07,0,0,1-.1.68,1.36,1.36,0,0,1-.29.53,1.23,1.23,0,0,1-.49.34,1.68,1.68,0,0,1-.7.13l-.36,0-.36-.06,0-.61a.19.19,0,0,1,.07-.13.21.21,0,0,1,.16-.05H55a.53.53,0,0,0,.19,0,.77.77,0,0,0,.27,0,.38.38,0,0,0,.19-.14.73.73,0,0,0,.12-.25,2.13,2.13,0,0,0,0-.39V17.91h1.07Z" transform="translate(-0.92 -2.11)"/><path class="cls-4" d="M61.41,20.69,61,19.45c0-.07-.06-.17-.1-.27s-.07-.22-.11-.35a2.92,2.92,0,0,1-.1.35l-.1.28-.43,1.23Zm1.71,1.72h-.83a.33.33,0,0,1-.23-.07.34.34,0,0,1-.13-.16l-.27-.78H59.89l-.27.78a.38.38,0,0,1-.35.23h-.84l1.79-4.5h1.11Z" transform="translate(-0.92 -2.11)"/><path class="cls-4" d="M65.83,19.73H66a.38.38,0,0,0,.34-.15l1-1.47a.51.51,0,0,1,.47-.2h.93l-1.37,1.82a1,1,0,0,1-.32.27.66.66,0,0,1,.22.12.91.91,0,0,1,.19.2l1.4,2.09H68l-.16,0a.35.35,0,0,1-.11,0l-.09-.06a.7.7,0,0,1-.06-.09l-1-1.56a.29.29,0,0,0-.15-.12.5.5,0,0,0-.23,0h-.27v1.92H64.76v-4.5h1.07Z" transform="translate(-0.92 -2.11)"/><path class="cls-4" d="M73,20.69l-.43-1.24a2.64,2.64,0,0,1-.1-.27c0-.11-.07-.22-.11-.35,0,.13-.07.24-.1.35l-.1.28-.43,1.23Zm1.71,1.72h-.83a.33.33,0,0,1-.23-.07.34.34,0,0,1-.13-.16l-.28-.78H71.46l-.27.78a.48.48,0,0,1-.13.16.38.38,0,0,1-.22.07H70l1.79-4.5h1.1Z" transform="translate(-0.92 -2.11)"/><path class="cls-4" d="M77.84,20a1.32,1.32,0,0,0,.37-.05.76.76,0,0,0,.25-.15.57.57,0,0,0,.15-.23.77.77,0,0,0,0-.27.6.6,0,0,0-.2-.47,1,1,0,0,0-.61-.16H77.4V20Zm2.28,2.39h-1a.43.43,0,0,1-.39-.2L78,20.9a.68.68,0,0,0-.12-.12.36.36,0,0,0-.19,0H77.4v1.67H76.33v-4.5h1.51a3,3,0,0,1,.85.1,1.5,1.5,0,0,1,.58.28,1.1,1.1,0,0,1,.33.42,1.32,1.32,0,0,1,.1.53,1.35,1.35,0,0,1-.06.41,1.22,1.22,0,0,1-.18.36,1.37,1.37,0,0,1-.29.3,1.27,1.27,0,0,1-.4.21,1.37,1.37,0,0,1,.2.13,1,1,0,0,1,.16.19Z" transform="translate(-0.92 -2.11)"/><polygon class="cls-4" points="84.1 16.63 82.8 16.63 82.8 20.3 81.72 20.3 81.72 16.63 80.42 16.63 80.42 15.8 84.1 15.8 84.1 16.63"/><path class="cls-4" d="M88.84,20.69l-.43-1.24c0-.07-.06-.17-.1-.27s-.07-.22-.11-.35a2.92,2.92,0,0,1-.1.35l-.1.28-.43,1.23Zm1.71,1.72h-.83a.33.33,0,0,1-.23-.07.34.34,0,0,1-.13-.16l-.27-.78H87.32l-.27.78a.38.38,0,0,1-.35.23h-.84l1.79-4.5h1.11Z" transform="translate(-0.92 -2.11)"/><polygon class="cls-4" points="94.88 16.6 94.88 17.65 96.33 17.65 96.33 18.42 94.88 18.42 94.88 19.5 96.78 19.5 96.78 20.3 93.8 20.3 93.8 15.8 96.78 15.8 96.78 16.6 94.88 16.6"/><polygon class="cls-4" points="99.8 16.6 99.8 17.65 101.25 17.65 101.25 18.42 99.8 18.42 99.8 19.5 101.7 19.5 101.7 20.3 98.72 20.3 98.72 15.8 101.7 15.8 101.7 16.6 99.8 16.6"/><path class="cls-5" d="M58,30a.18.18,0,0,1,.1,0,.27.27,0,0,1,.1.06l.57.58a2.31,2.31,0,0,1-.94.72,3.41,3.41,0,0,1-1.34.24,3.33,3.33,0,0,1-1.26-.23,2.68,2.68,0,0,1-1-.65,2.83,2.83,0,0,1-.6-1,3.53,3.53,0,0,1-.21-1.23,3.25,3.25,0,0,1,.23-1.23,2.74,2.74,0,0,1,1.61-1.61,3.21,3.21,0,0,1,1.26-.23,3.34,3.34,0,0,1,.65.06,3.28,3.28,0,0,1,.58.16,2.54,2.54,0,0,1,.49.26,2.24,2.24,0,0,1,.4.32l-.48.63a.57.57,0,0,1-.11.11.3.3,0,0,1-.18.05.33.33,0,0,1-.14,0L57.65,27l-.17-.1a1,1,0,0,0-.21-.1,1.32,1.32,0,0,0-.3-.08,1.51,1.51,0,0,0-.39,0,1.59,1.59,0,0,0-.66.13,1.67,1.67,0,0,0-.51.37,1.88,1.88,0,0,0-.33.61,2.55,2.55,0,0,0-.12.81,2.63,2.63,0,0,0,.13.83,1.78,1.78,0,0,0,.36.6,1.46,1.46,0,0,0,.52.37,1.53,1.53,0,0,0,.64.13,1.89,1.89,0,0,0,.35,0,1.55,1.55,0,0,0,.31-.06l.26-.11a1.38,1.38,0,0,0,.25-.19l.11-.07L58,30" transform="translate(-0.92 -2.11)"/><path class="cls-5" d="M66.44,28.55a2.53,2.53,0,0,0-.12-.8,1.72,1.72,0,0,0-.34-.61,1.55,1.55,0,0,0-.55-.38,2.07,2.07,0,0,0-.73-.13,2.18,2.18,0,0,0-.75.13,1.51,1.51,0,0,0-.54.38,1.74,1.74,0,0,0-.35.61,2.76,2.76,0,0,0,0,1.61,1.74,1.74,0,0,0,.35.61,1.37,1.37,0,0,0,.54.37,2,2,0,0,0,.75.13,1.86,1.86,0,0,0,.73-.13A1.41,1.41,0,0,0,66,30a1.72,1.72,0,0,0,.34-.61,2.55,2.55,0,0,0,.12-.81m1.48,0a3.27,3.27,0,0,1-.23,1.22,3.13,3.13,0,0,1-.66,1,3.19,3.19,0,0,1-1,.65,3.9,3.9,0,0,1-2.64,0,2.93,2.93,0,0,1-1.68-1.63,3.27,3.27,0,0,1-.23-1.22,3.22,3.22,0,0,1,.23-1.21,3,3,0,0,1,.66-1,3,3,0,0,1,1-.64,3.75,3.75,0,0,1,2.64,0,3,3,0,0,1,1,.65,3,3,0,0,1,.66,1,3.26,3.26,0,0,1,.23,1.21" transform="translate(-0.92 -2.11)"/><path class="cls-5" d="M78.29,25.55v6H77V28.1c0-.08,0-.16,0-.26a2.64,2.64,0,0,1,0-.28l-1.64,3.09a.5.5,0,0,1-.21.22.61.61,0,0,1-.3.08h-.19a.61.61,0,0,1-.3-.08.54.54,0,0,1-.2-.22l-1.65-3.1c0,.1,0,.2,0,.29s0,.18,0,.26v3.47H71.32v-6h1.26l.13,0,.1.07a.36.36,0,0,1,.08.12l1.6,3c.06.11.11.22.16.33a3.73,3.73,0,0,1,.16.35,2.75,2.75,0,0,1,.15-.36c.05-.11.11-.22.17-.33l1.59-3a.62.62,0,0,1,.09-.12.26.26,0,0,1,.1-.07l.12,0h1.26Z" transform="translate(-0.92 -2.11)"/><path class="cls-5" d="M84.24,28.5a1.11,1.11,0,0,0,.81-.26,1,1,0,0,0,.24-.73,1.06,1.06,0,0,0-.06-.37.85.85,0,0,0-.19-.3.88.88,0,0,0-.33-.18,1.33,1.33,0,0,0-.47-.07h-.75V28.5Zm0-2.95a3.7,3.7,0,0,1,1.12.15,2.21,2.21,0,0,1,.78.41,1.74,1.74,0,0,1,.45.63,2.15,2.15,0,0,1,.14.77,2.23,2.23,0,0,1-.15.83,1.69,1.69,0,0,1-.45.64,2.24,2.24,0,0,1-.78.42,3.63,3.63,0,0,1-1.11.15h-.75v2H82.05v-6Z" transform="translate(-0.92 -2.11)"/><path class="cls-5" d="M92.86,29.26l-.57-1.64-.14-.37c-.05-.15-.09-.3-.14-.47a4.41,4.41,0,0,1-.14.47c-.05.15-.09.27-.13.37l-.57,1.64Zm2.29,2.31H94a.5.5,0,0,1-.31-.09.62.62,0,0,1-.17-.22l-.37-1.05H90.83l-.36,1.05a.48.48,0,0,1-.17.21.49.49,0,0,1-.3.1H88.87l2.41-6h1.47Z" transform="translate(-0.92 -2.11)"/><polygon class="cls-5" points="101.13 24.54 99.38 24.54 99.38 29.46 97.94 29.46 97.94 24.54 96.2 24.54 96.2 23.44 101.13 23.44 101.13 24.54"/><rect class="cls-5" x="104.41" y="23.44" width="1.45" height="6.02"/><path class="cls-5" d="M113,30.51a1.2,1.2,0,0,0,.46-.07.9.9,0,0,0,.29-.18.77.77,0,0,0,.14-.25,1.43,1.43,0,0,0,0-.29.85.85,0,0,0,0-.29.51.51,0,0,0-.15-.23,1,1,0,0,0-.29-.14,1.87,1.87,0,0,0-.45,0h-1v1.5Zm-1-3.92v1.49h.75a1.85,1.85,0,0,0,.43,0,1,1,0,0,0,.33-.11.5.5,0,0,0,.2-.23.77.77,0,0,0,.07-.36,1,1,0,0,0,0-.36.66.66,0,0,0-.17-.23.69.69,0,0,0-.29-.12,1.76,1.76,0,0,0-.42,0Zm.85-1a4.31,4.31,0,0,1,1.09.11,2.21,2.21,0,0,1,.74.33,1.18,1.18,0,0,1,.41.51,1.63,1.63,0,0,1,.13.67,1.29,1.29,0,0,1-.24.75,1.9,1.9,0,0,1-.33.29,2.15,2.15,0,0,1-.48.24,1.67,1.67,0,0,1,.9.47,1.16,1.16,0,0,1,.3.83,1.58,1.58,0,0,1-.16.72,1.62,1.62,0,0,1-.44.57,2.13,2.13,0,0,1-.73.39,3.4,3.4,0,0,1-1,.14h-2.48v-6Z" transform="translate(-0.92 -2.11)"/><polygon class="cls-5" points="121.61 28.34 121.61 29.46 117.87 29.46 117.87 23.44 119.31 23.44 119.31 28.34 121.61 28.34"/><polygon class="cls-5" points="126.34 24.51 126.34 25.91 128.29 25.91 128.29 26.95 126.34 26.95 126.34 28.38 128.89 28.38 128.89 29.46 124.89 29.46 124.89 23.44 128.89 23.44 128.89 24.51 126.34 24.51"/></svg>
\ No newline at end of file
diff --git a/src/main/jbake/assets/img/jakartaee-compatible-badge-white.svg b/src/main/jbake/assets/img/jakartaee-compatible-badge-white.svg
new file mode 100644
index 0000000..957743d
--- /dev/null
+++ b/src/main/jbake/assets/img/jakartaee-compatible-badge-white.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 139.13 48.9"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#231f20;}</style></defs><path class="cls-1" d="M30.34,6.43s3,15.09-7,28.08L8.16,30.72Z" transform="translate(-1.55 -1.78)"/><path class="cls-1" d="M27.58,37.93c.87,0,1.74,0,2.58.12L1.55,31s5.33,1.76,11.76,11.38c3.4-2.71,8.53-4.44,14.27-4.44" transform="translate(-1.55 -1.78)"/><path class="cls-1" d="M30.34,6.43s3.05,15.11-7,28.13l-15.2-3.8Z" transform="translate(-1.55 -1.78)"/><path class="cls-1" d="M41.63,1.78l-8.94,9.79c0,1.23,0,2.62-.17,4.15a39.46,39.46,0,0,1-2,9.32,36.22,36.22,0,0,1-5.19,9.77l7.58,1.89C47.53,22.94,41.63,1.78,41.63,1.78" transform="translate(-1.55 -1.78)"/><path class="cls-1" d="M99.74,40l34.83,0s-17.28,5.4-25.86,8.24c-2.51.83-5,1.57-7.55,2.38-1.26.4-2.8,0-2.48-2.13S99.74,40,99.74,40" transform="translate(-1.55 -1.78)"/><path class="cls-1" d="M139.2,10.42H45.29c.21,7.68-.8,18.64-9.7,27.21h100.5a1.47,1.47,0,0,0,1.47-1.47l3.12-24.27a1.48,1.48,0,0,0-1.48-1.47" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M56.68,20.17a2.38,2.38,0,0,1-.09.68,1.57,1.57,0,0,1-.3.54,1.34,1.34,0,0,1-.49.34,1.86,1.86,0,0,1-.7.12l-.35,0-.37-.06.06-.61A.16.16,0,0,1,54.5,21a.28.28,0,0,1,.16-.05l.14,0L55,21a.76.76,0,0,0,.27-.05.33.33,0,0,0,.19-.14.58.58,0,0,0,.12-.25,1.51,1.51,0,0,0,0-.39V17.3h1.07Z" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M61.19,20.08l-.43-1.24a2.64,2.64,0,0,1-.1-.27c0-.11-.07-.22-.11-.35,0,.13-.07.25-.1.35l-.1.28-.43,1.23ZM62.9,21.8h-.83a.39.39,0,0,1-.23-.06.37.37,0,0,1-.13-.17l-.28-.78H59.67l-.27.78a.48.48,0,0,1-.13.16.32.32,0,0,1-.22.07H58.2L60,17.3h1.1Z" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M65.62,19.12h.17a.38.38,0,0,0,.34-.15l1.05-1.47a.49.49,0,0,1,.2-.16.68.68,0,0,1,.26,0h.94L67.2,19.12a1,1,0,0,1-.31.27.94.94,0,0,1,.22.12.88.88,0,0,1,.18.2L68.7,21.8H67.58a.34.34,0,0,1-.12,0l-.08-.06-.07-.08-1-1.57a.27.27,0,0,0-.14-.12.75.75,0,0,0-.24,0h-.26V21.8H64.54V17.3h1.08Z" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M72.77,20.08l-.43-1.24c0-.07-.06-.17-.1-.27s-.07-.22-.11-.35c0,.13-.07.25-.1.35l-.1.28-.43,1.23Zm1.71,1.72h-.83a.39.39,0,0,1-.23-.06.37.37,0,0,1-.13-.17L73,20.79H71.25l-.27.78a.48.48,0,0,1-.13.16.32.32,0,0,1-.22.07h-.84l1.79-4.5h1.1Z" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M77.63,19.41a1.09,1.09,0,0,0,.38-.05.87.87,0,0,0,.25-.15A.52.52,0,0,0,78.4,19a.87.87,0,0,0,0-.28.57.57,0,0,0-.2-.46.9.9,0,0,0-.62-.17H77.2v1.33Zm2.29,2.39H79a.42.42,0,0,1-.39-.2l-.77-1.31a.49.49,0,0,0-.13-.12.41.41,0,0,0-.19,0H77.2V21.8H76.12V17.3h1.51a3.08,3.08,0,0,1,.86.1,1.5,1.5,0,0,1,.58.28,1.1,1.1,0,0,1,.33.42,1.32,1.32,0,0,1,.1.53,1.42,1.42,0,0,1-.06.42,1.22,1.22,0,0,1-.18.36,1.33,1.33,0,0,1-.29.29,1.39,1.39,0,0,1-.4.21.9.9,0,0,1,.2.14.93.93,0,0,1,.16.18Z" transform="translate(-1.55 -1.78)"/><polygon class="cls-2" points="83.28 16.34 81.97 16.34 81.97 20.02 80.9 20.02 80.9 16.34 79.59 16.34 79.59 15.51 83.28 15.51 83.28 16.34"/><path class="cls-2" d="M88.65,20.08l-.43-1.24a2.64,2.64,0,0,1-.1-.27c0-.11-.07-.22-.11-.35,0,.13-.07.25-.1.35l-.1.28-.43,1.23Zm1.71,1.72h-.83a.39.39,0,0,1-.23-.06.37.37,0,0,1-.13-.17l-.28-.78H87.13l-.27.78a.48.48,0,0,1-.13.16.32.32,0,0,1-.22.07h-.85l1.8-4.5h1.1Z" transform="translate(-1.55 -1.78)"/><polygon class="cls-2" points="94.06 16.32 94.06 17.37 95.52 17.37 95.52 18.14 94.06 18.14 94.06 19.21 95.97 19.21 95.97 20.02 92.98 20.02 92.98 15.51 95.97 15.51 95.97 16.32 94.06 16.32"/><polygon class="cls-2" points="98.99 16.32 98.99 17.37 100.45 17.37 100.45 18.14 98.99 18.14 98.99 19.21 100.89 19.21 100.89 20.02 97.91 20.02 97.91 15.51 100.89 15.51 100.89 16.32 98.99 16.32"/><path class="cls-2" d="M57.79,29.41l.1,0a.21.21,0,0,1,.1.06l.57.59a2.37,2.37,0,0,1-.94.71,3.57,3.57,0,0,1-2.6,0,2.75,2.75,0,0,1-1-.64,2.88,2.88,0,0,1-.6-1A3.49,3.49,0,0,1,53.26,28a3.25,3.25,0,0,1,.23-1.23,2.85,2.85,0,0,1,.63-1,3,3,0,0,1,1-.64,3.4,3.4,0,0,1,1.26-.22,3.55,3.55,0,0,1,1.24.22,2.87,2.87,0,0,1,.49.26,2.55,2.55,0,0,1,.4.32l-.48.63a.63.63,0,0,1-.12.11.3.3,0,0,1-.18,0,.37.37,0,0,1-.14,0l-.14-.08-.17-.1a2.25,2.25,0,0,0-.22-.11l-.29-.08a2.41,2.41,0,0,0-.4,0,1.51,1.51,0,0,0-.65.13,1.34,1.34,0,0,0-.51.37,1.72,1.72,0,0,0-.34.61,2.56,2.56,0,0,0-.11.81,2.37,2.37,0,0,0,.13.83,1.61,1.61,0,0,0,.35.6,1.49,1.49,0,0,0,.52.38,1.7,1.7,0,0,0,.64.13l.36,0a2.27,2.27,0,0,0,.3-.06,1.31,1.31,0,0,0,.27-.12l.25-.18a.41.41,0,0,1,.11-.07.27.27,0,0,1,.12,0" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M66.23,28a2.53,2.53,0,0,0-.12-.8,1.89,1.89,0,0,0-.34-.61,1.64,1.64,0,0,0-.55-.38,2.12,2.12,0,0,0-.74-.13,2.08,2.08,0,0,0-.74.13,1.55,1.55,0,0,0-.55.38,1.74,1.74,0,0,0-.35.61,2.76,2.76,0,0,0,0,1.61,1.74,1.74,0,0,0,.35.61,1.55,1.55,0,0,0,.55.38,2.08,2.08,0,0,0,.74.13,2.12,2.12,0,0,0,.74-.13,1.64,1.64,0,0,0,.55-.38,1.89,1.89,0,0,0,.34-.61,2.55,2.55,0,0,0,.12-.81m1.47,0a3,3,0,0,1-.23,1.22,2.85,2.85,0,0,1-.65,1,3.07,3.07,0,0,1-1,.65,3.75,3.75,0,0,1-2.64,0,3,3,0,0,1-1-.65,2.87,2.87,0,0,1-.66-1,3.32,3.32,0,0,1,0-2.43,2.87,2.87,0,0,1,.66-1,3.13,3.13,0,0,1,1-.65,3.9,3.9,0,0,1,2.64,0,3.09,3.09,0,0,1,1,.66,2.81,2.81,0,0,1,.65,1A3.07,3.07,0,0,1,67.7,28" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M78.09,24.94v6H76.82V27.5a2.44,2.44,0,0,1,0-.26,2.64,2.64,0,0,1,0-.28l-1.65,3.1a.56.56,0,0,1-.21.22.65.65,0,0,1-.29.07h-.2a.73.73,0,0,1-.3-.07.61.61,0,0,1-.2-.22L72.35,27c0,.1,0,.2,0,.29a2.44,2.44,0,0,1,0,.26V31H71.11v-6h1.26l.13,0,.1.07a.41.41,0,0,1,.09.12l1.59,3.06c.06.1.11.21.17.32l.15.35.15-.36c0-.11.11-.22.17-.33l1.59-3A.41.41,0,0,1,76.6,25l.1-.07.13,0h1.26Z" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M84,27.9a1.08,1.08,0,0,0,.81-.26,1,1,0,0,0,.25-.73.87.87,0,0,0-.07-.37.73.73,0,0,0-.19-.3.88.88,0,0,0-.33-.18A1.33,1.33,0,0,0,84,26h-.75V27.9Zm0-3a3.77,3.77,0,0,1,1.13.15,2.1,2.1,0,0,1,.77.42,1.5,1.5,0,0,1,.45.62,2,2,0,0,1,.15.78,2.23,2.23,0,0,1-.15.83,1.55,1.55,0,0,1-.46.64,2.27,2.27,0,0,1-.77.43A3.75,3.75,0,0,1,84,29h-.75v2H81.85v-6Z" transform="translate(-1.55 -1.78)"/><path class="cls-2" d="M92.68,28.67,92.1,27,92,26.65c0-.15-.09-.3-.14-.47a4.41,4.41,0,0,1-.14.47,3.85,3.85,0,0,1-.13.37L91,28.67ZM95,31H93.85a.51.51,0,0,1-.3-.08.55.55,0,0,1-.18-.22L93,29.62H90.64l-.36,1.05a.55.55,0,0,1-.17.21.49.49,0,0,1-.3.09H88.68l2.41-6h1.47Z" transform="translate(-1.55 -1.78)"/><polygon class="cls-2" points="100.32 24.27 98.57 24.27 98.57 29.19 97.13 29.19 97.13 24.27 95.39 24.27 95.39 23.16 100.32 23.16 100.32 24.27"/><rect class="cls-2" x="103.61" y="23.16" width="1.45" height="6.03"/><path class="cls-2" d="M112.82,29.92a1.24,1.24,0,0,0,.47-.08.62.62,0,0,0,.28-.18.52.52,0,0,0,.14-.25,1.07,1.07,0,0,0,0-.58.46.46,0,0,0-.16-.23.92.92,0,0,0-.28-.14,2,2,0,0,0-.46-.05h-1v1.51Zm-1-3.93v1.49h.75a2.81,2.81,0,0,0,.43,0,1.19,1.19,0,0,0,.32-.12.52.52,0,0,0,.21-.23.77.77,0,0,0,.07-.36.93.93,0,0,0-.06-.36.48.48,0,0,0-.17-.23.59.59,0,0,0-.29-.12,1.76,1.76,0,0,0-.42,0Zm.84-1a4.35,4.35,0,0,1,1.1.12,2.15,2.15,0,0,1,.73.33,1.28,1.28,0,0,1,.42.51,1.6,1.6,0,0,1,.13.67A1.23,1.23,0,0,1,115,27a1,1,0,0,1-.19.36,1.64,1.64,0,0,1-.33.3,1.79,1.79,0,0,1-.48.23,1.75,1.75,0,0,1,.91.47,1.15,1.15,0,0,1,.29.83,1.72,1.72,0,0,1-.15.72,1.66,1.66,0,0,1-.45.58,2.19,2.19,0,0,1-.73.38,3.33,3.33,0,0,1-1,.14h-2.48v-6Z" transform="translate(-1.55 -1.78)"/><polygon class="cls-2" points="120.82 28.07 120.82 29.19 117.08 29.19 117.08 23.16 118.52 23.16 118.52 28.07 120.82 28.07"/><polygon class="cls-2" points="125.56 24.24 125.56 25.64 127.52 25.64 127.52 26.68 125.56 26.68 125.56 28.11 128.11 28.11 128.11 29.19 124.11 29.19 124.11 23.16 128.11 23.16 128.11 24.24 125.56 24.24"/></svg>
\ No newline at end of file
diff --git a/src/main/jbake/assets/img/microprofile-icon-orange.png b/src/main/jbake/assets/img/microprofile-icon-orange.png
new file mode 100644
index 0000000..51a0be9
--- /dev/null
+++ b/src/main/jbake/assets/img/microprofile-icon-orange.png
Binary files differ
diff --git a/src/main/jbake/assets/img/microprofile_logo.png b/src/main/jbake/assets/img/microprofile_logo.png
new file mode 100644
index 0000000..a7f9488
--- /dev/null
+++ b/src/main/jbake/assets/img/microprofile_logo.png
Binary files differ
diff --git a/src/main/jbake/assets/js/main.js b/src/main/jbake/assets/js/main.js
index a89e437..ffc4603 100755
--- a/src/main/jbake/assets/js/main.js
+++ b/src/main/jbake/assets/js/main.js
@@ -8,10 +8,10 @@
 	// Window Load
 	$(window).load(function() {
 		// Preloader
-		$('.intro-tables, .parallax, header').css('opacity', '0');
+		$('.parallax').css('opacity', '0');
 		$('.preloader').addClass('animated fadeOut').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
 			$('.preloader').hide();
-			$('.parallax, header').addClass('animated fadeIn').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
+			$('.parallax').addClass('animated fadeIn').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
 				$('.intro-tables').addClass('animated fadeInUp').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
 			});
 		});
@@ -22,8 +22,7 @@
 			$('.parallax img').css('height', ($(window).height()) + 'px');
 			$('.parallax img').css('width', $('.parallax').height() * ratio + 'px');
 		}
-
-		$('header').height($(window).height() + 80);
+		
 		$('section .cut').each(function() {
 			if ($(this).hasClass('cut-top'))
 				$(this).css('border-right-width', $(this).parent().width() + "px");
diff --git a/src/main/jbake/content/9.0.0-M7/release-notes.adoc b/src/main/jbake/content/9.0.0-M7/release-notes.adoc
new file mode 100644
index 0000000..5c0dca4
--- /dev/null
+++ b/src/main/jbake/content/9.0.0-M7/release-notes.adoc
@@ -0,0 +1,101 @@
+= Apache TomEE 9.0.0-M7 Release Notes
+:index-group: Release Notes
+:jbake-type: page
+:jbake-status: published
+
+== Dependency upgrade
+
+[.compact]
+ - link:https://issues.apache.org/jira/browse/TOMEE-2990[TOMEE-2990] BatchEE 0.6
+ - link:https://issues.apache.org/jira/browse/TOMEE-2987[TOMEE-2987] CXF 3.4.3
+ - link:https://issues.apache.org/jira/browse/TOMEE-3747[TOMEE-3747] EclipseLink 3.0.0
+ - link:https://issues.apache.org/jira/browse/TOMEE-3749[TOMEE-3749] Hibernate Validator 5.1.3.Final
+ - link:https://issues.apache.org/jira/browse/TOMEE-3748[TOMEE-3748] Mojarra 3.0.0
+ - link:https://issues.apache.org/jira/browse/TOMEE-3732[TOMEE-3732] MyFaces 2.3.9
+ - link:https://issues.apache.org/jira/browse/TOMEE-2997[TOMEE-2997] OpenSAML V3.4.6
+ - link:https://issues.apache.org/jira/browse/TOMEE-2809[TOMEE-2809] OpenWebBeans 2.0.22
+ - link:https://issues.apache.org/jira/browse/TOMEE-3746[TOMEE-3746] Tomcat 10.0.4
+ - link:https://issues.apache.org/jira/browse/TOMEE-2939[TOMEE-2939] bcprov-jdk15on 1.67
+ - link:https://issues.apache.org/jira/browse/TOMEE-2988[TOMEE-2988] xbean 4.18+ (Java 16 support)
+
+== New Feature
+
+[.compact]
+ - link:https://issues.apache.org/jira/browse/TOMEE-3730[TOMEE-3730] Add JSONP and JSONB Providers JAX-RS Client
+ - link:https://issues.apache.org/jira/browse/TOMEE-2365[TOMEE-2365] Implement Java EE Security API from EE 8
+ - link:https://issues.apache.org/jira/browse/TOMEE-2966[TOMEE-2966] Provide a pure JUnit5 OpenEJB Extension
+ - link:https://issues.apache.org/jira/browse/TOMEE-2977[TOMEE-2977] Provide a ApplicationComposer JUnit 5 Extension
+ - link:https://issues.apache.org/jira/browse/TOMEE-2993[TOMEE-2993] API pom for each TomEE distribution
+
+== Improvement
+
+[.compact]
+ - link:https://issues.apache.org/jira/browse/TOMEE-2957[TOMEE-2957] Fix OWASP Checks on ASF Jenkins Environment
+ - link:https://issues.apache.org/jira/browse/TOMEE-2974[TOMEE-2974] CI Build Environment ISO-8859-1 versus UTF-8
+ - link:https://issues.apache.org/jira/browse/TOMEE-2973[TOMEE-2973] TomEE :: Examples :: JSF2/CDI/BV/JPA/DeltaSpike uses too old version of commons-lang3
+ - link:https://issues.apache.org/jira/browse/TOMEE-2976[TOMEE-2976] Provide Examples for TomEE Arquillian with JUnit 5
+ - link:https://issues.apache.org/jira/browse/TOMEE-2705[TOMEE-2705] TomEE Plus BOM
+ - link:https://issues.apache.org/jira/browse/TOMEE-2704[TOMEE-2704] TomEE Plume BOM
+ - link:https://issues.apache.org/jira/browse/TOMEE-2703[TOMEE-2703] TomEE WebProfile BOM
+ - link:https://issues.apache.org/jira/browse/TOMEE-2702[TOMEE-2702] TomEE MicroProfile BOM
+ - link:https://issues.apache.org/jira/browse/TOMEE-2995[TOMEE-2995] Support constructor injection of JAX-RS Application 
+ - link:https://issues.apache.org/jira/browse/TOMEE-2994[TOMEE-2994] JAX-RS Provider construction favors constructor with the most args
+ - link:https://issues.apache.org/jira/browse/TOMEE-2992[TOMEE-2992] [Certification/TCK] Tomcat Callback handler not consistent with authenticator
+
+== Task
+
+[.compact]
+ - link:https://issues.apache.org/jira/browse/TOMEE-3140[TOMEE-3140] Jakarta EE 9.1 TCK Failures
+ - link:https://issues.apache.org/jira/browse/TOMEE-3721[TOMEE-3721] Remove dependencies between tomee-webapp modules
+
+== Sub-task
+
+[.compact]
+ - link:https://issues.apache.org/jira/browse/TOMEE-3210[TOMEE-3210] securityapi.idstore.idstorepermission testIdentityStore_customHandlerWithoutIDStorePermission
+ - link:https://issues.apache.org/jira/browse/TOMEE-3211[TOMEE-3211] securityapi.securitycontext.callerdata testSecurityContextHasAccessToWebResource
+ - link:https://issues.apache.org/jira/browse/TOMEE-3212[TOMEE-3212] securityapi.securitycontext.getprincipalsbytype testSecurityContextGetPrincipalsByType
+ - link:https://issues.apache.org/jira/browse/TOMEE-3213[TOMEE-3213] servlet.api.jakarta_servlet.asynccontext forwardTest1
+ - link:https://issues.apache.org/jira/browse/TOMEE-3214[TOMEE-3214] servlet.api.jakarta_servlet.asynccontext originalRequestTest4
+ - link:https://issues.apache.org/jira/browse/TOMEE-3215[TOMEE-3215] servlet.api.jakarta_servlet.srevent getServletRequestTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3216[TOMEE-3216] servlet.ee.spec.security.permissiondd ValidateLocalPermsInvalidName
+ - link:https://issues.apache.org/jira/browse/TOMEE-3206[TOMEE-3206] jsp.spec.configuration.general identicalMappingTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3207[TOMEE-3207] jsp.spec.configuration.general moreSpecificMappingTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3208[TOMEE-3208] jsp.spec.configuration.general mostSpecificMappingTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3209[TOMEE-3209] jstl.spec.core.urlresource.importtag positiveImportEncodingNotSpecifiedTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3181[TOMEE-3181] jaxrs.spec.provider.jaxbcontext readWriteProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3182[TOMEE-3182] jaxrs.spec.provider.standard fileProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3183[TOMEE-3183] jaxrs.spec.provider.standardhaspriority readWriteBooleanProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3184[TOMEE-3184] jaxrs.spec.provider.standardhaspriority readWriteCharacterProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3185[TOMEE-3185] jaxrs.spec.provider.standardhaspriority readWriteJaxbProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3186[TOMEE-3186] jaxrs.spec.provider.standardhaspriority readWriteMapProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3220[TOMEE-3220] servlet.ee.spec.security.runAs web_to_ejb_annotation_runAs
+ - link:https://issues.apache.org/jira/browse/TOMEE-3187[TOMEE-3187] jaxrs.spec.provider.standardnotnull clientDataSourceProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3221[TOMEE-3221] servlet.ee.spec.security.runAs web_to_ejb_dd_runAs
+ - link:https://issues.apache.org/jira/browse/TOMEE-3188[TOMEE-3188] jaxrs.spec.provider.standardnotnull clientJaxbProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3222[TOMEE-3222] servlet.spec.defaultcontextpath getDefaultContextPathTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3189[TOMEE-3189] jaxrs.spec.provider.standardnotnull serverFileProviderTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3223[TOMEE-3223] websocket.ee.jakarta.websocket.session getRequestURITest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3224[TOMEE-3224] websocket.ee.jakarta.websocket.session setTimeout1Test
+ - link:https://issues.apache.org/jira/browse/TOMEE-2967[TOMEE-2967] Translate to Spanish: examples/xa-datasource
+ - link:https://issues.apache.org/jira/browse/TOMEE-3225[TOMEE-3225] websocket.spec.servercontainer.addendpoint getRequestURITest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3226[TOMEE-3226] websocket.spec.servercontainer.addendpoint setTimeout1Test
+ - link:https://issues.apache.org/jira/browse/TOMEE-2964[TOMEE-2964] Translate to Portuguese: examples/serverless-tomee-webprofile
+ - link:https://issues.apache.org/jira/browse/TOMEE-3217[TOMEE-3217] servlet.ee.spec.security.permissiondd ValidateLocalPermsInvalidNameInLib
+ - link:https://issues.apache.org/jira/browse/TOMEE-3218[TOMEE-3218] servlet.ee.spec.security.permissiondd ValidateMissingPermFails
+ - link:https://issues.apache.org/jira/browse/TOMEE-3219[TOMEE-3219] servlet.ee.spec.security.permissiondd ValidateMissingPermFailsInLib
+ - link:https://issues.apache.org/jira/browse/TOMEE-3190[TOMEE-3190] jpa.core.entityManager setPropertyTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3191[TOMEE-3191] jpa.core.entityManagerFactoryCloseExceptions exceptionsTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3192[TOMEE-3192] jpa.core.enums setgetFlushModeEntityManagerTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3193[TOMEE-3193] jpa.ee.packaging.appclient.annotation test1
+ - link:https://issues.apache.org/jira/browse/TOMEE-3194[TOMEE-3194] jpa.ee.packaging.appclient.descriptor test1
+ - link:https://issues.apache.org/jira/browse/TOMEE-3195[TOMEE-3195] jpa.ee.packaging.ejb.standalone test1
+ - link:https://issues.apache.org/jira/browse/TOMEE-3196[TOMEE-3196] jpa.ee.packaging.jar JarFileElementsTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3197[TOMEE-3197] jpa.ee.packaging.jar JarFileElementsTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3198[TOMEE-3198] jpa.ee.packaging.jar JarFileElementsTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3199[TOMEE-3199] jpa.ee.packaging.jar JarFileElementsTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3200[TOMEE-3200] jpa.jpa22.datetime dateTimeTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3201[TOMEE-3201] jpa.jpa22.datetime dateTimeTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3202[TOMEE-3202] jpa.jpa22.datetime dateTimeTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3203[TOMEE-3203] jpa.jpa22.datetime dateTimeTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3204[TOMEE-3204] jpa.jpa22.datetime dateTimeTest
+ - link:https://issues.apache.org/jira/browse/TOMEE-3205[TOMEE-3205] jpa.jpa22.datetime dateTimeTest
diff --git a/src/main/jbake/content/articles.adoc b/src/main/jbake/content/articles.adoc
new file mode 100644
index 0000000..2155d90
--- /dev/null
+++ b/src/main/jbake/content/articles.adoc
@@ -0,0 +1,31 @@
+= Articles
+:jbake-type: page
+:jbake-status: published
+
+== OpenEJB Articles
+
+
+=== 3.0
+
+* http://java.sys-con.com/read/487561_2.htm[Developing EJB 3 Applications in Apache Tomcat Using Apache OpenEJB] , by Dario Laverde, java.sys-con.com
+* http://javanotebook.com/2007/09/28/openejb_3_and_tomcat_6.html[OpenEJB 3 and Tomcat 6] , by Dario Laverde, javanotebook.com
+
+
+=== 1.0
+
+* http://theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries[Containter Driven Testing with OpenEJB] , by N.
+Alex Rupp, theserverside.com
+* http://www.galatea.com/flashguides/tomcat-openejb1-unix[Using OpenEJB 1.0 with Tomcat on Linux] , by Lajos Moczar, galatea.com
+
+
+=== 0.9.2
+
+* http://ideoplex.com/id/768/getting-started-with-openejb[Getting Started With OpenEJB] , by Dwight Shih, ideoplex.com
+* http://ideoplex.com/id/828/a-simple-entity-bean-with-openejb[A Simple Entity Bean with OpenEJB] , by Dwight Shih, ideoplex.com
+* http://javaboutique.internet.com/reviews/openEJB/[OpenEJB: Modular, Configurable, and Customizable] , by Benoy Jose, javaboutique.internet.com
+* http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-ejb.html[Build, deploy, and test EJB components in just a few seconds] , by Nader Aeinehchi, javaworld.com
+
+
+=== 0.9.0
+
+* http://www.onjava.com/pub/a/onjava/2003/02/12/ejb_tomcat.html[OpenEJB: EJB for Tomcat] , by Jacek Laskowski, onjava.com
diff --git a/src/main/jbake/content/articles.md b/src/main/jbake/content/articles.md
deleted file mode 100644
index 1756271..0000000
--- a/src/main/jbake/content/articles.md
+++ /dev/null
@@ -1,39 +0,0 @@
-Title: Articles
-<a name="Articles-OpenEJBArticles"></a>
-# OpenEJB Articles
-
-
-<a name="Articles-3.0"></a>
-## 3.0
-
-* [Developing EJB 3 Applications in Apache Tomcat Using Apache OpenEJB](http://java.sys-con.com/read/487561_2.htm)
-, by Dario Laverde, java.sys-con.com
-* [OpenEJB 3 and Tomcat 6](http://javanotebook.com/2007/09/28/openejb_3_and_tomcat_6.html)
-, by Dario Laverde, javanotebook.com
-
-<a name="Articles-1.0"></a>
-## 1.0
-
-* [Containter Driven Testing with OpenEJB](http://theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries)
-, by N. Alex Rupp, theserverside.com
-* [Using OpenEJB 1.0 with Tomcat on Linux](http://www.galatea.com/flashguides/tomcat-openejb1-unix)
-, by Lajos Moczar, galatea.com
-
-<a name="Articles-0.9.2"></a>
-## 0.9.2
-
-* [Getting Started With OpenEJB](http://ideoplex.com/id/768/getting-started-with-openejb)
-, by Dwight Shih, ideoplex.com
-* [A Simple Entity Bean with OpenEJB](http://ideoplex.com/id/828/a-simple-entity-bean-with-openejb)
-, by Dwight Shih, ideoplex.com
-* [OpenEJB: Modular, Configurable, and Customizable](http://javaboutique.internet.com/reviews/openEJB/)
-, by Benoy Jose, javaboutique.internet.com
-* [Build, deploy, and test EJB components in just a few seconds](http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-ejb.html)
-, by Nader Aeinehchi, javaworld.com
-
-<a name="Articles-0.9.0"></a>
-## 0.9.0
-
-* [OpenEJB: EJB for Tomcat](http://www.onjava.com/pub/a/onjava/2003/02/12/ejb_tomcat.html)
-, by Jacek Laskowski, onjava.com
-
diff --git a/src/main/jbake/content/azure.adoc b/src/main/jbake/content/azure.adoc
new file mode 100644
index 0000000..402892e
--- /dev/null
+++ b/src/main/jbake/content/azure.adoc
@@ -0,0 +1,7 @@
+= Setting up Apache TomEE on Microsoft Azure
+:jbake-type: page
+:jbake-status: published
+
+This page will detail instructions to setup TomEE on Microsoft Azure.
+
+Write me!
diff --git a/src/main/jbake/content/azure.md b/src/main/jbake/content/azure.md
deleted file mode 100644
index d65e025..0000000
--- a/src/main/jbake/content/azure.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Title: Azure
-<a name="Installation-Installation"></a>
-# Setting up Apache TomEE on Microsoft Azure
-
-This page will detail instructions to setup TomEE on Microsoft Azure
diff --git a/src/main/jbake/content/blog/2016/03/new-website.adoc b/src/main/jbake/content/blog/2016/03/new-website.adoc
index bbe331e..561f059 100755
--- a/src/main/jbake/content/blog/2016/03/new-website.adoc
+++ b/src/main/jbake/content/blog/2016/03/new-website.adoc
@@ -3,6 +3,5 @@
 :jbake-type: post
 :jbake-tags: website
 :jbake-status: published
-:jbake-tomeepdf:
 
 Apache TomEE got a new website more modern and more user oriented.
diff --git a/src/main/jbake/content/blog/2017/tomee-7.0.3-released.adoc b/src/main/jbake/content/blog/2017/tomee-7.0.3-released.adoc
index 97fe733..72a1c94 100755
--- a/src/main/jbake/content/blog/2017/tomee-7.0.3-released.adoc
+++ b/src/main/jbake/content/blog/2017/tomee-7.0.3-released.adoc
@@ -3,7 +3,6 @@
 :jbake-type: post
 :jbake-tags: website
 :jbake-status: published
-:jbake-tomeepdf:
 
 Aapche TomEE 7.0.3 just got released. It is available as usual on central
 or our download page.
diff --git a/src/main/jbake/content/blog/index.adoc b/src/main/jbake/content/blog/index.adoc
index f6bf015..05240f8 100755
--- a/src/main/jbake/content/blog/index.adoc
+++ b/src/main/jbake/content/blog/index.adoc
@@ -3,4 +3,3 @@
 :jbake-type: blog
 :jbake-tags: website
 :jbake-status: published
-:jbake-tomeepdf:
diff --git a/src/main/jbake/content/certifications/9.0.0-M7/plume/webprofile-9.1.adoc b/src/main/jbake/content/certifications/9.0.0-M7/plume/webprofile-9.1.adoc
index fc5cab4..3e5467e 100644
--- a/src/main/jbake/content/certifications/9.0.0-M7/plume/webprofile-9.1.adoc
+++ b/src/main/jbake/content/certifications/9.0.0-M7/plume/webprofile-9.1.adoc
@@ -2,7 +2,6 @@
 :jbake-date: 2021-04-29
 :jbake-type: page
 :jbake-status: published
-:jbake-tomeepdf:
 :icons: font
 :imagesdir: ../../img
 
diff --git a/src/main/jbake/content/commercial-support.adoc b/src/main/jbake/content/commercial-support.adoc
new file mode 100644
index 0000000..6659d9f
--- /dev/null
+++ b/src/main/jbake/content/commercial-support.adoc
@@ -0,0 +1,24 @@
+= Apache TomEE Commercial Support
+:jbake-type: page
+:jbake-status: published
+
+This page is dedicated to companies offering products and services around or including Apache TomEE.
+
+The Apache TomEE PMC does not endorse or recommend any of the products or services on this page.
+We love all our supporters equally.
+
+Want to be added to this page?
+xref:add-my-offering.adoc[See here.]
+
+== Tomitribe
+
+link:http://www.tomitribe.com[Tomitribe] is a company created by several founding members of the Apache TomEE community with the mission of uniting businesses using TomEE with responsible and sustainable Open Source.
+Our goal is to support both the community and fuel the success of business that rely TomEE with a complete set of consulting, training, and commercial support.
+
+link:http://www.tomitribe.com[Join the tribe!]
+
+== ManageCat
+
+link:http://managecat.com[ManageCat] is a cloud management and service platform for Apache Tomcat  and Apache TomEE servers.
+Involving with a lot of Apache Java EE projects, we want to transfer not  only our knowledge about Apache TomEE and also other Java EE technologies  including JPA, EJB, CDI, JSF, JSTL, JTA, JMS.
+We will help our customers to develop and deploy their  production based Java EE applications smoothly.
diff --git a/src/main/jbake/content/commercial-support.md b/src/main/jbake/content/commercial-support.md
deleted file mode 100755
index 82e4df6..0000000
--- a/src/main/jbake/content/commercial-support.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Title: Apache TomEE Commercial Support
-
-This page is dedicated to companies offering products and services around or including Apache TomEE.
-
-The Apache TomEE PMC does not endorse or recommend any of the products or services on this page.  We love all
-our supporters equally.
-
-Want to be added to this page?  [See here.](add-my-offering.html)
-
-### Tomitribe
-
-[Tomitribe](http://www.tomitribe.com) is a company created by several founding members of the Apache TomEE community
-with the mission of uniting businesses using TomEE with responsible and sustainable Open Source.  Our goal is to
-support both the community and fuel the success of business that rely TomEE with a complete set of consulting, training,
-and commercial support.
-
-[Join the tribe!](http://www.tomitribe.com)
-
-### ManageCat
-[ManageCat](http://managecat.com) is a cloud management and service platform for Apache Tomcat 
-and Apache TomEE servers. Involving with a lot of Apache Java EE projects, we want to transfer not 
-only our knowledge about Apache TomEE and also other Java EE technologies 
-including JPA, EJB, CDI, JSF, JSTL, JTA, JMS. We will help our customers to develop and deploy their 
-production based Java EE applications smoothly.
\ No newline at end of file
diff --git a/src/main/jbake/content/community/commercial.adoc b/src/main/jbake/content/community/commercial.adoc
index 13adda6..24f463d 100755
--- a/src/main/jbake/content/community/commercial.adoc
+++ b/src/main/jbake/content/community/commercial.adoc
@@ -2,7 +2,6 @@
 :jbake-date: 2016-03-16
 :jbake-type: page
 :jbake-status: published
-:jbake-tomeepdf:
 
 This page is dedicated to companies offering products and services around or including Apache TomEE.
 
@@ -10,22 +9,22 @@
 
 Want to be added to this page? See at the bottom.
 
-=== Tomitribe
+== Tomitribe
 
 https://www.tomitribe.com[Tomitribe] is a company created by several founding members of the Apache TomEE community with the mission of uniting businesses using TomEE with responsible and sustainable Open Source. Our goal is to support both the community and fuel the success of business that rely TomEE with a complete set of consulting, training, and commercial support.
 
 
-=== ManageCat
+== ManageCat
 
 ManageCat is a cloud management and service platform for Apache Tomcat and Apache TomEE servers. Involving with a lot of Apache Java EE projects, we want to transfer not only our knowledge about Apache TomEE and also other Java EE technologies including JPA, EJB, CDI, JSF, JSTL, JTA, JMS. We will help our customers to develop and deploy their production based Java EE applications smoothly.
 
-=== I want to be added there
+== I want to be added there
 
-To be listed in the Commercial Support send a link:../security/support.html[mail] to the Apache TomEE PMC with a description of your offerings and the text you would like to have added.
+To be listed in the Commercial Support send a xref:../security/support.adoc[mail] to the Apache TomEE PMC with a description of your offerings and the text you would like to have added.
 
-==== Policy for additions
+== Policy for additions
 The Apache TomEE PMC does not and cannot endorse or recommend any products or services.
 
 All submitted information must be factual and informational in nature and not be a marketing statement. Statements that promote your products and services over other offerings on the page will not be tolerated and will be removed. Such marketing statements can be added to your own pages on your own site.
 
-When in doubt, email the Apache TomEE PMC list (see link:../security/support.html[Mailing Lists]) and ask. We are be happy to help.
+When in doubt, email the Apache TomEE PMC list (see xref:../security/support.adoc[Mailing Lists]) and ask. We are happy to help.
diff --git a/src/main/jbake/content/community/contributing/contribution-tips.adoc b/src/main/jbake/content/community/contributing/contribution-tips.adoc
index 59d6282..3197fc3 100755
--- a/src/main/jbake/content/community/contributing/contribution-tips.adoc
+++ b/src/main/jbake/content/community/contributing/contribution-tips.adoc
@@ -3,7 +3,7 @@
 :jbake-type: page
 :jbake-status: published
 
-=== Subscribe to the developer mailing list
+== Subscribe to the developer mailing list
 
 To get started send an email from the email address you want to use to the
 TomEE developers mailing list (dev-subscribe@tomee.apache.org). After you
@@ -25,9 +25,9 @@
 about you. Welcome to the adventure!
 
 
-=== What is the process?
+== What is the process?
 
-Check and follow the link:workflow.html[workflow for contributing].
+Check and follow the xref:workflow.adoc[workflow for contributing].
 
 After a while when people feel comfortable with you as contributor, they vote you in as a committer and ... big surprise ... there's almost no change in the daily routine. You get access to svn and pretty much everything else stays the same. Instead of submitting patches, now you have to help review them and commit them. Instead of learning how to contribute to an open source project, now you have to learn how to help others get involved. And of course it doesn't happen all at once, you never stop learning these things and you never stop wishing you had more time.
 
@@ -37,7 +37,7 @@
 
 Probably finding something to do when you do have time is the hardest part ... that never changes.
 
-=== Be Brave
+== Be Brave
 Don't assume everything has already been discussed a million times and you're the only one who doesn't know and so you shouldn't bother anyone and should just figure it out on your own. That thinking is your enemy. Don't do that or you will get nowhere ... very slowly. So slowly that now you feel you really can't ask about it because surely everyone assumes you know it or have done it by now. That thinking is a terrible trap. Ask questions. Post your thoughts.
 
 Don't worry about asking "stupid" questions on the list -- even simple questions have great value. They often lead to surprisingly good discussions. They also have a profound impact on the people around you, the ones you don't see.
@@ -47,7 +47,7 @@
 Maybe it's like Karaoke; if the people singing sound like you when you sing, there are better odds you might get up and sign too. Seeing people like yourself do the things you want to do is inspiring.
 
 
-===  Start Small
+==  Start Small
 You may suddenly get a creative surge and see many many things that could be done. One thing you learn about open source is that you never know when life is going to intervene and you have to stop. So it's always really good to get a little tiny thing working, checked in, and just grow it iteratively as time permits. It is a practice that is key for people of any skill level. And it goes wonderfully with Open Source as it adds plenty of space for new ideas. Stone soup starts with the stone, not the soup!
 
 So no matter how big the idea or task, ask yourself "do I really need all of this to get started?". Start with the tiniest possible version. And then cut it down again :)
@@ -57,7 +57,7 @@
 Start small, get it checked in (or patch submitted) and work iteratively.
 
 
-=== Things that always need doing
+== Things that always need doing
 Final variables & fields are preferred where possible, but a lot of the code is old. Feel free to add them and hand the code back.
 If you have any skills with code coverage tools, then you'll probably find way too much to do! Tests are always welcome.
 There are over a 1,000 TODO comments in the code. Maybe some should be deleted. Maybe some could be completed. They probably all should have a JIRA id on them.
@@ -68,13 +68,13 @@
 Obviously, one could get quite bored doing just the above. But sometimes the above tasks can lead to more fun and exciting things. Anything that gets you in and looking at code and actually touching and changing it usually results in questions, discussions and ideas... then little passions and late nights and lack of sleep and caffeine abuse.
 
 
-=== Things to avoid
+== Things to avoid
 
-==== Huge patches
+=== Huge patches
 Huge patches are hard to digest. Try to avoid them whenever possible. Any step forward is a good one. Small steps allow people to see where you're headed and give input. That's true regardless if you are a committer or contributor.
 
 
-==== Be careful with reformatting
+=== Be careful with reformatting
 Try to never mix logic changes with code reformatting. It makes it nearly impossible for others to see what the actual change was.
 
 If you are a committer and want to reformat something, do the reformat as a separate commit before or after the real change. As long as they are separate and clearly marked it should be easy for people to see what is going on.
diff --git a/src/main/jbake/content/community/contributing/jira-ticket.adoc b/src/main/jbake/content/community/contributing/jira-ticket.adoc
index e7e3c43..e9b6987 100644
--- a/src/main/jbake/content/community/contributing/jira-ticket.adoc
+++ b/src/main/jbake/content/community/contributing/jira-ticket.adoc
@@ -7,17 +7,17 @@
 In order to keep track of all the tasks concerning TomEE there should be a ticket in the link:https://issues.apache.org/jira/browse/TOMEE[TomEE JIRA] for each work item. +
 Before you can create tickets, you have to link:https://issues.apache.org/jira/secure/Signup!default.jspa[sign up] for an account.
 
-=== No task without a ticket
+== No task without a ticket
 Before you start working on a task you should ensure that there is a ticket for your task. +
 Browse JIRA and use the search funktion to find out if there is already a ticket for what you want to pick up.
 If not, create a new one.
 
-=== Avoiding conflicts and wasted effort
+== Avoiding conflicts and wasted effort
 If a ticket already exists and is assign to someone you should not start working on this task. +
 If you want to help, contact the assigned person using the mailing list or write a comment in the JIRA ticket.
 
-=== Pick up a task
+== Pick up a task
 To inform others that you are working on a task, the corresponding ticket in JIRA should be assigned to you. +
 If you don't have permission to assign tickets (there is no edit sign behind the Field "Assignee"), just ask on the developers mailing list.
 
-(link:workflow.html[back to Contribution workflow])
+(xref:workflow.adoc[back to Contribution workflow])
diff --git a/src/main/jbake/content/community/contributing/process-task.adoc b/src/main/jbake/content/community/contributing/process-task.adoc
index 3da95ca..52a2e56 100644
--- a/src/main/jbake/content/community/contributing/process-task.adoc
+++ b/src/main/jbake/content/community/contributing/process-task.adoc
@@ -4,24 +4,27 @@
 :jbake-status: published
 
 
-=== Fork project repository
-You can work on the link:../sources.html[source code of TomEE] using github. If you don't have a github account, you can link:https://github.com/[sign up here]. +
-To create your own working area, go to the project link:https://github.com/apache/tomee[TomEE on github] and click on the link "Fork". A forked repository will be created for your account and you will be redirected to it.
+== Fork project repository
+You can work on the xref:community/sources.adoc[source code of TomEE] using github.
+If you don't have a github account, you can link:https://github.com/[sign up here].
+To create your own working area, go to the project link:https://github.com/apache/tomee[TomEE on github] and click on the link "Fork".
+A forked repository will be created for your account and you will be redirected to it.
 
-=== One branch for each ticket
+== One branch for each ticket
 Although you can work on the master branch it is advisable to create a new branch for each ticket you start to work on - even if it's only one.
 Use the JIRA id and title as name of the branch. 
 
-=== Get help
+== Get help
 If you need help or want to have feedback for your ideas write to the developes mailing list.
 
-=== Hands on
-Work on the code. Use local commit as often as you want. Use push (to your own forked repository) as often as you like. +
-Consider the link:contribution-tips.html[contribution tips]. +
-If a task is to hard to get it done: no problem. Just ask for help. +
+== Hands on
+Work on the code. Use local commit as often as you want.
+Use push (to your own forked repository) as often as you like.
+Consider the xref:contribution-tips.adoc[contribution tips].
+If a task is to hard to get it done: no problem. Just ask for help.
 If you want to cancel working on a task, don't forget to unassign the JIRA ticket!
 
-=== Comments in JIRA
+== Comments in JIRA
 Use comments for the JIRA ticket to document your work.
 
-(link:workflow.html[back to Contribution workflow])
+(xref:workflow.adoc[back to Contribution workflow])
diff --git a/src/main/jbake/content/community/contributing/submit-changes.adoc b/src/main/jbake/content/community/contributing/submit-changes.adoc
index 29beada..e944b41 100644
--- a/src/main/jbake/content/community/contributing/submit-changes.adoc
+++ b/src/main/jbake/content/community/contributing/submit-changes.adoc
@@ -3,10 +3,10 @@
 :jbake-type: page
 :jbake-status: published
 
-=== Ensure code compiles
+== Ensure code compiles
 Actually no need to be mentioned ... 
 
-=== Ensure tests passes
+== Ensure tests passes
 On the build system for TomEE additional tests are run. If your changes cause them to fail, the build will not succeed.
 This can be avoided by running the tests before submitting the changes, the commands are:
 [source]
@@ -16,21 +16,21 @@
 ----
 These are relatively quick to run - about a minute or so. 
 
-=== Smoke test
+== Smoke test
 Check at least if the server ist still starting with your changes ...
 
-=== Pull request
+== Pull request
 If you're confident of your work, the next step is to push your changes into your repository on github.
 To get your changes back into the TomEE repository you have to create a PR (pull request): on github go to your repository and select the branch where you have worked on.
 Click on "New pull request" and then on "Create pull request".
 
-=== Request review
+== Request review
 The changes in your PR can only be merged by a committer who will do a review before merging. 
 So ask on the developers mailing list for review of your PR. 
 These emails for PRs should have a description of the work in the subject line.  
 Here are some examples and why:
 
-==== Bad 
+=== Bad
 - This is an email about PR #451
 - See PR #451
 - Review PR #451
@@ -38,18 +38,18 @@
 
 With this style you'll get low participation on the thread as the subject is hidden.  You yourself will curse these emails in six months or a year in the future when you're looking for that valuable thread you remember, but your search reveals 10 threads all with basically only a number as the subject.  You'll either click and read all 10 PRs and email threads, or you'll more likely just give up.  Worse, you may read all 10 and not find what you're looking for.  Do your future self a favor and help him/her find the valuable discussions.
 
-==== Ok ...
+=== Ok ...
 - Options pertaining to the configuration of Javamail - PR# 451
 - Fixing issues on failover of JMS messages - PR# 451
 - Documenting deployment of JCA Connectors - PR# 451 +
 
 These are ok, much better than just a number.  Subjects are often truncated.  The real "meat" is at the end of the sentence which makes it the first to go.  Not a show-stopper, but can make your life hard when searching or scanning.
 
-==== Best!
+=== Best!
 - Javamail configuration options - PR# 451
 - JMS Failover issues - PR# 451
 - JCA connector deployment - PR# 451 +
 
 Here we flip it.  The real subject as at the beginning.  The verbs and generic nouns like "options" come after.  When you can pull it off, huge respect. 
 
-(link:workflow.html[back to Contribution workflow])
+(xref:workflow.adoc[back to Contribution workflow])
diff --git a/src/main/jbake/content/community/contributing/website.adoc b/src/main/jbake/content/community/contributing/website.adoc
index a61e776..34850da 100755
--- a/src/main/jbake/content/community/contributing/website.adoc
+++ b/src/main/jbake/content/community/contributing/website.adoc
@@ -8,19 +8,19 @@
 
  - https://gitbox.apache.org/repos/asf/tomee-site-generator.git. (Apache)
 
- - https://github.com/apache/tomee-site-generator.git (Github mirror)
+ - https://github.com/apache/tomee-site-generator.git (GitHub mirror)
 
 To submit a change do the following:
 
-- Create a ticket on http://issues.apache.org/jira/browse/TOMEE
+- Create a ticket on https://issues.apache.org/jira/browse/TOMEE
 
-- Open a PR in the Gihub mirror with the ticket number e.g `TOMEE-1000 - Ticket Description`
+- Open a PR in the GitHub mirror with the ticket number e.g `TOMEE-1000 - Ticket Description`
 
-A committer will review it and redeploy the website using Apache CMS.
+A committer will review it and redeploy the website using a Jenkins CI build job.
 
 Building the website is mainly about running `mvn compile`, note you can use `JBake` main to develop.
 Publishing the website is about running `mvn pre-site` - needs to be a TomEE committer.
 
 Here you can find the video tutorial on how to contribute to this Website.
 
-link:https://www.youtube.com/watch?v=P6IM0LDevVU[Watch the video here.]
\ No newline at end of file
+link:https://www.youtube.com/watch?v=P6IM0LDevVU[Watch the video here.]
diff --git a/src/main/jbake/content/community/contributing/workflow.adoc b/src/main/jbake/content/community/contributing/workflow.adoc
index 307a5a1..6e73338 100644
--- a/src/main/jbake/content/community/contributing/workflow.adoc
+++ b/src/main/jbake/content/community/contributing/workflow.adoc
@@ -7,34 +7,34 @@
 
 
 
-=== JIRA ticket
+== JIRA ticket
 - create ticket in JIRA, if not already existing
 - if ticket already assigned to someone else => talk
 - assign ticket to contributor, if not already assigned +
-  (link:jira-ticket.html[more details])
+  (xref:jira-ticket.adoc[more details])
 
 
 
-=== Process Task
+== Process Task
 - fork repository
 - create branch in own repository (name = JIRA ticket id)
 - discuss on mailing list
 - work on code
 - document work in JIRA ticket +
-  (link:process-task.html[more details])
+  (xref:process-task.adoc[more details])
 
-=== Submit Changes
+== Submit Changes
 - ensure code compiles 
 - ensure tests passes
 - create PR (pull request)
 - ask for review on mailing list +
-  (link:submit-changes.html[more details])
+  (xref:submit-changes.adoc[more details])
 
-=== Merge Changes (done by a committer)
+== Merge Changes (done by a committer)
 - review changes
 - merge code
 - change JIRA ticket status / close ticket +
 
-=== Cleanup
+== Cleanup
 - wait until PR is merged (ticket status change)
 - remove branch in own repository +
diff --git a/src/main/jbake/content/community/contributors.adoc b/src/main/jbake/content/community/contributors.adoc
index 1a700de..aa75236 100755
--- a/src/main/jbake/content/community/contributors.adoc
+++ b/src/main/jbake/content/community/contributors.adoc
@@ -1,35 +1,113 @@
-= Wall of fame
+= Wall of Fame - Contributors
 :jbake-date: 2016-03-16
 :jbake-type: contributors
 :jbake-status: published
 
 ----
-adc@apache.org* | Alan Cabrera | https://twitter.com/maguro/profile_image?size=bigger
-ammulder@apache.org* | Aaron Mulder | ../img/ammulder.png
-agumbrecht@tomitribe.com*
-dain@iq80.com*
-dblevins@apache.org*
-djencks@apache.org* | David Jencks
-dsh@apache.org* | Daniel Stefan Haischt | https://twitter.com/uebermodean/profile_image?size=bigger
-gawor@apache.org* | Jarek Gawor | https://twitter.com/jgawor/profile_image?size=bigger
-gdamour@apache.org* | Gianny Damour | ../img/gdamour.jpg
-genspring@apache.org* | Lin Quan Jiang | ../img/genspring.jpg
-hogstrom@apache.org* | Matt Richard Hogstrom | https://twitter.com/hogstrom/profile_image?size=bigger
-jgallimore@apache.org* | Jonathan Gallimore | https://twitter.com/jongallimore/profile_image?size=bigger
-jgenender@apache.org* | Jeff Genender | ../img/jgenender.jpg
-jlaskowski@apache.org* | Jacek Laskowski | https://twitter.com/jaceklaskowski/profile_image?size=bigger
-jlmonteiro@apache.org* | Jean-Louis Monteiro | https://twitter.com/JLouisMonteiro/profile_image?size=bigger
-jvanzyl@apache.org*
-jwhitlock@apache.org*
-kevan@apache.org* | Kevan Lee Miller | https://twitter.com/kevanmiller/profile_image?size=bigger
-kmalhi@apache.org* | Karan Singh Malhi | https://twitter.com/KrnMal/profile_image?size=bigger
-lajos@apache.org* | Lajos Moczar
-manugeorge@apache.org* | Manu George | ../img/manugeorge.jpg
-mnour@apache.org* | Mohammad Nour El-Din | ../img/mnour.jpg
-rickmcguire@apache.org* | Rick McGuire | ../img/rickmcguire.jpg
-rmannibucau@gmail.com*
-struberg@yahoo.de*
-tveronezi@apache.org*
-vishwanathk@apache.org* | Vishwanath | https://twitter.com/stratwine/profile_image?size=bigger
-xuhaihong@apache.org* | Haihong Xu | ../img/xuhaihong.jpg
+rmannibucau | https://github.com/rmannibucau | https://avatars.githubusercontent.com/u/1249546?v=4
+dblevins | https://github.com/dblevins | https://avatars.githubusercontent.com/u/94926?v=4
+jgallimore | https://github.com/jgallimore | https://avatars.githubusercontent.com/u/548624?v=4
+AndyGee | https://github.com/AndyGee | https://avatars.githubusercontent.com/u/2536412?v=4
+jeanouii | https://github.com/jeanouii | https://avatars.githubusercontent.com/u/1233474?v=4
+tveronezi | https://github.com/tveronezi | https://avatars.githubusercontent.com/u/1918442?v=4
+dain | https://github.com/dain | https://avatars.githubusercontent.com/u/58298?v=4
+jaceklaskowski | https://github.com/jaceklaskowski | https://avatars.githubusercontent.com/u/62313?v=4
+radcortez | https://github.com/radcortez | https://avatars.githubusercontent.com/u/5796305?v=4
+Daniel-Dos | https://github.com/Daniel-Dos | https://avatars.githubusercontent.com/u/8139890?v=4
+struberg | https://github.com/struberg | https://avatars.githubusercontent.com/u/79310?v=4
+djencks | https://github.com/djencks | https://avatars.githubusercontent.com/u/569822?v=4
+otaviojava | https://github.com/otaviojava | https://avatars.githubusercontent.com/u/863011?v=4
+cesarhernandezgt | https://github.com/cesarhernandezgt | https://avatars.githubusercontent.com/u/1454523?v=4
+kmalhi | https://github.com/kmalhi | https://avatars.githubusercontent.com/u/5103199?v=4
+ivanjunckes | https://github.com/ivanjunckes | https://avatars.githubusercontent.com/u/2260551?v=4
+brunobat | https://github.com/brunobat | https://avatars.githubusercontent.com/u/2318030?v=4
+j4fm | https://github.com/j4fm | https://avatars.githubusercontent.com/u/6817157?v=4
+rzo1 | https://github.com/rzo1 | https://avatars.githubusercontent.com/u/13417392?v=4
+jgawor | https://github.com/jgawor | https://avatars.githubusercontent.com/u/796079?v=4
+stratwine | https://github.com/stratwine | https://avatars.githubusercontent.com/u/696945?v=4
+doychin | https://github.com/doychin | https://avatars.githubusercontent.com/u/7131283?v=4
+danielsoro | https://github.com/danielsoro | https://avatars.githubusercontent.com/u/350841?v=4
+emecas | https://github.com/emecas | https://avatars.githubusercontent.com/u/849502?v=4
+cchacin | https://github.com/cchacin | https://avatars.githubusercontent.com/u/292938?v=4
+cicekhayri | https://github.com/cicekhayri | https://avatars.githubusercontent.com/u/143997?v=4
+exabrial | https://github.com/exabrial | https://avatars.githubusercontent.com/u/1392297?v=4
+tandraschko | https://github.com/tandraschko | https://avatars.githubusercontent.com/u/2485545?v=4
+ShermanMarshall | https://github.com/ShermanMarshall | https://avatars.githubusercontent.com/u/10781839?v=4
+eapjunior | https://github.com/eapjunior | https://avatars.githubusercontent.com/u/20850916?v=4
+gabrielbussolo | https://github.com/gabrielbussolo | https://avatars.githubusercontent.com/u/4117683?v=4
+vrossellotravelc | https://github.com/vrossellotravelc | https://avatars.githubusercontent.com/u/45101500?v=4
+mnour | https://github.com/mnour | https://avatars.githubusercontent.com/u/153299?v=4
+josehenriqueventura | https://github.com/josehenriqueventura | https://avatars.githubusercontent.com/u/2358940?v=4
+CristianDVN | https://github.com/CristianDVN | https://avatars.githubusercontent.com/u/14073354?v=4
+rmcguinness | https://github.com/rmcguinness | https://avatars.githubusercontent.com/u/906421?v=4
+SvetlinZarev-SAP | https://github.com/SvetlinZarev-SAP | https://avatars.githubusercontent.com/u/43135961?v=4
+uncommon-design | https://github.com/uncommon-design | https://avatars.githubusercontent.com/u/53859462?v=4
+jgenender | https://github.com/jgenender | https://avatars.githubusercontent.com/u/643609?v=4
+marcoantoniobferreira | https://github.com/marcoantoniobferreira | https://avatars.githubusercontent.com/u/23589475?v=4
+svenruppert | https://github.com/svenruppert | https://avatars.githubusercontent.com/u/2665330?v=4
+gdiazs | https://github.com/gdiazs | https://avatars.githubusercontent.com/u/2397243?v=4
+BogdanStirbat | https://github.com/BogdanStirbat | https://avatars.githubusercontent.com/u/2213741?v=4
+alexferreiradev | https://github.com/alexferreiradev | https://avatars.githubusercontent.com/u/8191965?v=4
+mpredli01 | https://github.com/mpredli01 | https://avatars.githubusercontent.com/u/4043260?v=4
+sercheo87 | https://github.com/sercheo87 | https://avatars.githubusercontent.com/u/1036090?v=4
+Croway | https://github.com/Croway | https://avatars.githubusercontent.com/u/34543311?v=4
+dineshkumarg | https://github.com/dineshkumarg | https://avatars.githubusercontent.com/u/13047948?v=4
+gerdogdu | https://github.com/gerdogdu | https://avatars.githubusercontent.com/u/1370429?v=4
+robinsonvs | https://github.com/robinsonvs | https://avatars.githubusercontent.com/u/8331918?v=4
+cotnic | https://github.com/cotnic | https://avatars.githubusercontent.com/u/10333974?v=4
+jrxxjr | https://github.com/jrxxjr | https://avatars.githubusercontent.com/u/8740736?v=4
+davidsalter | https://github.com/davidsalter | https://avatars.githubusercontent.com/u/32864282?v=4
+gmcdonald | https://github.com/gmcdonald | https://avatars.githubusercontent.com/u/287517?v=4
+fost14oct-zz | https://github.com/fost14oct-zz | https://avatars.githubusercontent.com/u/36649784?v=4
+cassunde | https://github.com/cassunde | https://avatars.githubusercontent.com/u/3828140?v=4
+weverthon-medeiros | https://github.com/weverthon-medeiros | https://avatars.githubusercontent.com/u/14115193?v=4
+puneethps | https://github.com/puneethps | https://avatars.githubusercontent.com/u/16502032?v=4
+carljmosca | https://github.com/carljmosca | https://avatars.githubusercontent.com/u/215651?v=4
+dheffelfinger | https://github.com/dheffelfinger | https://avatars.githubusercontent.com/u/13482727?v=4
+gacsnic | https://github.com/gacsnic | https://avatars.githubusercontent.com/u/24616597?v=4
+chongma | https://github.com/chongma | https://avatars.githubusercontent.com/u/6253322?v=4
+nishantraut | https://github.com/nishantraut | https://avatars.githubusercontent.com/u/10669557?v=4
+davidromero | https://github.com/davidromero | https://avatars.githubusercontent.com/u/2968138?v=4
+fredster33 | https://github.com/fredster33 | https://avatars.githubusercontent.com/u/64927044?v=4
+pavelsmajda | https://github.com/pavelsmajda | https://avatars.githubusercontent.com/u/24811669?v=4
+rhuan080 | https://github.com/rhuan080 | https://avatars.githubusercontent.com/u/10210672?v=4
+ferdisn | https://github.com/ferdisn | https://avatars.githubusercontent.com/u/28998445?v=4
+bitcod3r | https://github.com/bitcod3r | https://avatars.githubusercontent.com/u/4358449?v=4
+ivannov | https://github.com/ivannov | https://avatars.githubusercontent.com/u/664730?v=4
+whitlockjc | https://github.com/whitlockjc | https://avatars.githubusercontent.com/u/98899?v=4
+jchemile | https://github.com/jchemile | https://avatars.githubusercontent.com/u/7410390?v=4
+juneau001 | https://github.com/juneau001 | https://avatars.githubusercontent.com/u/121002?v=4
+patriciauz | https://github.com/patriciauz | https://avatars.githubusercontent.com/u/20784387?v=4
+sendilkumarn | https://github.com/sendilkumarn | https://avatars.githubusercontent.com/u/12471122?v=4
+breakponchito | https://github.com/breakponchito | https://avatars.githubusercontent.com/u/279375?v=4
+dalexandrov | https://github.com/dalexandrov | https://avatars.githubusercontent.com/u/2016949?v=4
+dependabot[bot] | https://github.com/apps/dependabot | https://avatars.githubusercontent.com/in/29110?v=4
+aboullaite | https://github.com/aboullaite | https://avatars.githubusercontent.com/u/2836850?v=4
+avermeer | https://github.com/avermeer | https://avatars.githubusercontent.com/u/17863217?v=4
+Dexmaster | https://github.com/Dexmaster | https://avatars.githubusercontent.com/u/6061000?v=4
+brettporter | https://github.com/brettporter | https://avatars.githubusercontent.com/u/49108?v=4
+cbos | https://github.com/cbos | https://avatars.githubusercontent.com/u/255404?v=4
+danielshahaf | https://github.com/danielshahaf | https://avatars.githubusercontent.com/u/2141904?v=4
+deki | https://github.com/deki | https://avatars.githubusercontent.com/u/858827?v=4
+kaminfeuer | https://github.com/kaminfeuer | https://avatars.githubusercontent.com/u/7949105?v=4
+gerwinjansen | https://github.com/gerwinjansen | https://avatars.githubusercontent.com/u/13243946?v=4
+HillmerCh | https://github.com/HillmerCh | https://avatars.githubusercontent.com/u/29781653?v=4
+jimmycasey | https://github.com/jimmycasey | https://avatars.githubusercontent.com/u/5089723?v=4
+JuanMorenoDeveloper | https://github.com/JuanMorenoDeveloper | https://avatars.githubusercontent.com/u/7319391?v=4
+kaloyanspiridonov | https://github.com/kaloyanspiridonov | https://avatars.githubusercontent.com/u/42994528?v=4
+katya-stoycheva | https://github.com/katya-stoycheva | https://avatars.githubusercontent.com/u/24268910?v=4
+mawiesne | https://github.com/mawiesne | https://avatars.githubusercontent.com/u/20473513?v=4
+revmischa | https://github.com/revmischa | https://avatars.githubusercontent.com/u/245131?v=4
+scriptmonkey | https://github.com/scriptmonkey | https://avatars.githubusercontent.com/u/1366409?v=4
+sebfz1 | https://github.com/sebfz1 | https://avatars.githubusercontent.com/u/1717144?v=4
+suyogbarve | https://github.com/suyogbarve | https://avatars.githubusercontent.com/u/1817914?v=4
+SvetlinZarev | https://github.com/SvetlinZarev | https://avatars.githubusercontent.com/u/1794797?v=4
+kakawait | https://github.com/kakawait | https://avatars.githubusercontent.com/u/275609?v=4
+cocorossello | https://github.com/cocorossello | https://avatars.githubusercontent.com/u/3096556?v=4
+violetagg | https://github.com/violetagg | https://avatars.githubusercontent.com/u/696661?v=4
+pendor | https://github.com/pendor | https://avatars.githubusercontent.com/u/209193?v=4
+javalenjara | https://github.com/javalenjara | https://avatars.githubusercontent.com/u/51468684?v=4
+mayens | https://github.com/mayens | https://avatars.githubusercontent.com/u/233983?v=4
+t4fm | https://github.com/t4fm | https://avatars.githubusercontent.com/u/47995607?v=4
+yenerm | https://github.com/yenerm | https://avatars.githubusercontent.com/u/715370?v=4
 ----
diff --git a/src/main/jbake/content/community/culture.adoc b/src/main/jbake/content/community/culture.adoc
index dcaa8a5..33facc0 100644
--- a/src/main/jbake/content/community/culture.adoc
+++ b/src/main/jbake/content/community/culture.adoc
@@ -3,4 +3,4 @@
 :jbake-type: page
 :jbake-status: published
 
-==
\ No newline at end of file
+==
diff --git a/src/main/jbake/content/community/index.adoc b/src/main/jbake/content/community/index.adoc
index a222d62..965fdde 100755
--- a/src/main/jbake/content/community/index.adoc
+++ b/src/main/jbake/content/community/index.adoc
@@ -4,20 +4,20 @@
 :jbake-status: published
 
 
-=== Contribute
+== Contribute
 
-- link:contributing/contribution-tips.html[Contribution tips]
-- link:contributing/workflow.html[Contribution workflow]
-- link:sources.html[Apache TomEE]
-- link:contributing/website.html[This website]
-- link:contributors.html[TomEE Wall Of Fame]
+* xref:contributing/contribution-tips.adoc[Contribution tips]
+* xref:contributing/workflow.adoc[Contribution workflow]
+* xref:sources.adoc[Contribute to Apache TomEE]
+* xref:contributing/website.adoc[Contribute to this Website]
+* xref:contributors.adoc[Apache TomEE - Wall Of Fame]
 
-=== Social Media: cause contributing is not only about coding
+== Social Media: cause contributing is not only about coding
 
-Facebook, Twitter, Google+: if that speaks to you just follow this link:social.html[TomEE on Social Media].
+Facebook or Twitter: if that speaks to you just follow this xref:social.adoc[TomEE on Social Media].
 
-=== Support
+== Support
 
-For more information about available support for TomEE please have a look on link:../security/support.html[Support] page.
+For more information about available support for TomEE please have a look on xref:../security/support.adoc[Support] page.
 
 
diff --git a/src/main/jbake/content/community/social.adoc b/src/main/jbake/content/community/social.adoc
index 2658ac9..5d4920a 100755
--- a/src/main/jbake/content/community/social.adoc
+++ b/src/main/jbake/content/community/social.adoc
@@ -4,14 +4,10 @@
 :jbake-status: published
 :icons: font
 
-=== Facebook
+== Facebook
 
 icon:facebook[size=2x] https://facebook.com/ApacheTomEE[TomEE @ Facebook]
 
-=== Twitter
+== Twitter
 
-icon:twitter[size=2x] https://twitter.com/apachetomee[TomEE @ Twitter]
-
-=== Google+
-
-icon:google-plus[size=2x] https://plus.google.com/communities/105208241852045684449[TomEE @ Goole+]
+icon:twitter[size=2x] https://twitter.com/apachetomee[TomEE @ Twitter]
\ No newline at end of file
diff --git a/src/main/jbake/content/community/sources.adoc b/src/main/jbake/content/community/sources.adoc
index 991bafd..11cb2f3 100755
--- a/src/main/jbake/content/community/sources.adoc
+++ b/src/main/jbake/content/community/sources.adoc
@@ -3,13 +3,13 @@
 :jbake-type: page
 :jbake-status: published
 
-=== Github
+== GitHub
 
-TomEE is on Github at https://github.com/apache/tomee . The sources are synchronized by Apache on Github
+TomEE is on GitHub at https://github.com/apache/tomee . The sources are synchronized by Apache on GitHub
 but Pull/Requests are integrated with Apache Infrastructure which means you can just submit us a patch as
-you would do on any Github project and Apache takes care of the rest of the process.
+you would do on any other GitHub project and Apache takes care of the rest of the process.
 
-=== Apache Git
+== Apache Git
 
 TomEE is using https://git-scm.com/[Git] as source content manager.
 
@@ -27,9 +27,9 @@
 git clone -b tomee-1.7.x https://gitbox.apache.org/repos/asf/tomee.git tomee-1.7.x
 ----
 
-Master branch is the more up to date version of the codebase and currently targets TomEE 7.x branch.
+Master branch is the more up to date version of the codebase and currently targets TomEE 8.x branch.
 
-=== Building
+== Building
 
 TomEE is a standard Maven project and to build it you just have to use the following command:
 
@@ -42,7 +42,7 @@
 
 NOTE: if you are interested in testing arquillian tests with all adapters of tomee you will need to activate the dedicated profile: `-Pall-adapters`.
 
-==== Fast build
+=== Fast build
 
 Here are some shortcut builds if you just want to create a specific artifact (note it skips tests but removing `-DskipTests` you will execute them):
 
@@ -53,19 +53,18 @@
 mvn clean install -DskipTests -pl tomee/apache-tomee -am
 ----
 
-Then TomEE archives are at `tomee/apache/tomee/target/apache-tomee-${classifier}-${version}.${extension}`.
+Then TomEE archives are at `tomee/apache/tomee/target/apache-tomee-$\{classifier}-$\{version}.$\{extension}`.
 
-=== Continuous Integration
+== Continuous Integration
 
-TomEE is using Buildbot for its continuous integration. You can access main builds (Ubuntu ones) at these address:
+TomEE is using Jenkins CI for its continuous integration. You can access builds at these address:
 
-- https://ci.apache.org/builders/tomee-trunk-ubuntu-jvm8[TomEE Master]
-- https://ci.apache.org/builders/tomee-1.7.x-ubuntu[TomEE 1.7.x]
+- https://ci-builds.apache.org/job/Tomee/[TomEE @ Jenkins CI]
 
-=== Issues
+== Issues
 
-Tomee uses Jira for issues, if you are looking for a problem or reporting one, use the following address:
+TomEE uses Jira for issues, if you are looking for a problem or reporting one, use the following address:
 
-- Create a ticket on http://issues.apache.org/jira/browse/TOMEE
+- Create a ticket on https://issues.apache.org/jira/browse/TOMEE
 
-- Open a PR in the Gihub mirror with the ticket number e.g `TOMEE-1000 - Ticket Description`
\ No newline at end of file
+- Open a PR in the GitHub mirror with the ticket number e.g. `TOMEE-1000 - Ticket Description`
diff --git a/src/main/jbake/content/comparison.adoc b/src/main/jbake/content/comparison.adoc
new file mode 100644
index 0000000..6023aca
--- /dev/null
+++ b/src/main/jbake/content/comparison.adoc
@@ -0,0 +1,49 @@
+= Comparison
+:index-group: General Information
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+:icons: font
+:y: icon:check[role="green"]
+:n: icon:times[role="red"]
+:c: icon:file-text-o[role="blue"]
+
+Apache TomEE has four distributions, each supporting a slightly different set of technologies and aimed to give you a choice in what you want included out-of-the-box.  When in doubt, chose Apache TomEE Plume.
+
+[cols="4,5*^1",options="header"]
+|===
+||Tomcat|TomEE WebProfile|TomEE MicroProfile|TomEE Plume|TomEE Plus
+|Jakarta Annotations|{y}|{y}|{y}|{y}|{y}
+|Jakarta Debugging Support for Other Languages|{y}|{y}|{y}|{y}|{y}
+|Jakarta Security (Java EE Enterprise Security)|{y}|{y}|{y}|{y}|{y}
+|Jakarta Server Pages (JSP)|{y}|{y}|{y}|{y}|{y}
+|Jakarta Servlet|{y}|{y}|{y}|{y}|{y}
+|Jakarta Standard Tag Library (JSTL)|{y}|{y}|{y}|{y}|{y}
+|Jakarta WebSocket|{y}|{y}|{y}|{y}|{y}
+|Jakarta Expression Language (EL)|{y}|{y}|{y}|{y}|{y}
+|Jakarta Activation||{y}|{y}|{y}|{y}
+|Jakarta Bean Validation||{y}|{y}|{y}|{y}
+|Jakarta Contexts and Dependency Injection (CDI)||{y}|{y}|{y}|{y}
+|Jakarta Dependency Injection (@Inject)||{y}|{y}|{y}|{y}
+|Jakarta Enterprise Beans (EJB)||{y}|{y}|{y}|{y}
+|Jakarta Interceptors||{y}|{y}|{y}|{y}
+|Jakarta JSON Binding (JSON-B)||{y}|{y}|{y}|{y}
+|Jakarta JSON Processing (JSON-P)||{y}|{y}|{y}|{y}
+|Jakarta Mail (JavaMail)||{y}|{y}|{y}|{y}
+|Jakarta Managed Beans||{y}|{y}|{y}|{y}
+|Jakarta Persistence (JPA)||{y}|{y}|{y}|{y}
+|Jakarta RESTful Web Services (JAX-RS)||{y}|{y}|{y}|{y}
+|Jakarta Server Faces (JSF)||{y}|{y}|{y}|{y}
+|Jakarta Transactions (JTA)||{y}|{y}|{y}|{y}
+|Jakarta XML Binding (JAXB)||{y}|{y}|{y}|{y}
+|Jakarta Authentication (JAAS)||||{y}|{y}
+|Jakarta Authorization (JACC)||||{y}|{y}
+|Jakarta Concurrency||||{y}|{y}
+|Jakarta Connectors||||{y}|{y}
+|Jakarta Enterprise Web Services||||{y}|{y}
+|Jakarta Messaging (JMS)||||{y}|{y}
+|Jakarta SOAP with Attachments||||{y}|{y}
+|Jakarta Web Services Metadata||||{y}|{y}
+|Jakarta XML Web Services (JAX-WS)||||{y}|{y}
+|Jakarta Batch (JBatch)|||||{y}
+|===
diff --git a/src/main/jbake/content/comparison.md b/src/main/jbake/content/comparison.md
deleted file mode 100644
index 4f417b3..0000000
--- a/src/main/jbake/content/comparison.md
+++ /dev/null
@@ -1,219 +0,0 @@
-Title: Comparison
-
-Apache OpenEJB and Apache TomEE are born from the same project and community.  They differ in two major ways, only one of them technical:
-
- - TomEE incorporates two additional projects; Tomcat and MyFaces
- - TomEE, as a name, more easily implies the breadth of technologies included
-
-Effectively, TomEE is a superset of OpenEJB.  They share the same code and TomEE grew out of OpenEJB.
-
-Note: this table is for TomEE 1.x, TomEE 7 comments are under it.
-
-<table>
-<tr>
-<th></th>
-<th>Tomcat</th>
-<th>TomEE</th>
-<th>TomEE JAX-RS (~ Microprofile)</th>
-<th>TomEE+</th>
-<th>TomEE PluME</th>
-<th>OpenEJB</th>
-</tr>
-
-<tr>
-<td>Java Servlets</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td></td>
-</tr>
-
-<tr>
-<td>Java ServerPages (JSP)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td></td>
-</tr>
-
-<tr>
-<td>Java ServerFaces (JSF)</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td></td>
-</tr>
-
-<tr>
-<td>Java Transaction API (JTA)</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java Persistence API (JPA)</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java Contexts and Dependency Injection (CDI)</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java Authentication and Authorization Service (JAAS)</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java Authorization Contract for Containers (JACC)</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>JavaMail API</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Bean Validation</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Enterprise JavaBeans</td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java API for RESTful Web Services (JAX-RS)</td>
-<td></td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java API for XML Web Services (JAX-WS)</td>
-<td></td>
-<td></td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java EE Connector Architecture</td>
-<td></td>
-<td></td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>Java Messaging Service (JMS)</td>
-<td></td>
-<td></td>
-<td></td>
-<td>(/)</td>
-<td>(/)</td>
-<td>(/)</td>
-</tr>
-
-<tr>
-<td>EclipseLink</td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td>(/)</td>
-<td></td>
-</tr>
-
-<tr>
-<td>Mojarra</td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td>(/)</td>
-<td></td>
-</tr>
-
-</table>
-
-
-TomEE 7 targets JavaEE 7 and implements these specifications (in parenthesis the distibution(s) containing it if not part of the basic packages):
-
-* WebSocket JSR 356
-* JSON-P JSR 353
-* Servlet 3.1 JSR 340
-* JSF 2.2 JSR 344
-* EL 3.0 JSR 341
-* JSP 2.3 JSR 245
-* JSTL 1.2 JSR 52
-* JBatch (plus) JSR 352
-* Concurrency utilities for EE JSR 236
-* CDI 1.2, DI, Interceptors 1.2, Common Annotations JSR 346 + JSR 330 + JSR 318 + JSR 250
-* Bean Validation 1.1 JSR 349
-* EJB 3.2 JSR 345
-* JavaEE Connector JSR 322
-* JPA 2.1 JSR 338 (WARNING: openjpa based distributions provide a JPA 2.0 runtime)
-* JMS 2.0 JSR 343 (layer based on ActiveMQ 5 / JMS 1.1 for default distributions)
-* JTA 1.2 JSR 907
-* Javamail 1.4 (NOTE: EE 7 requires 1.5)
-* JAX-RS 2.0 JSR 339
-* JAX-WS 2.2 JSR 224
-* JAXB 2.2 JSR 222
-* and more inherited from TomEE 1/JavaEE 6
-
diff --git a/src/main/jbake/content/concepts.adoc b/src/main/jbake/content/concepts.adoc
new file mode 100644
index 0000000..7948d29
--- /dev/null
+++ b/src/main/jbake/content/concepts.adoc
@@ -0,0 +1,42 @@
+= Concepts
+:index-group: Unrevised
+:jbake-date: 2018-12-05
+:jbake-type: page
+:jbake-status: published
+
+//in site-generator
+
+OpenEJB was founded on the idea that it would be embedded into third-party environments whom would likely already have three things:
+
+* their one "server" platform with existing clients and protocols
+* their own way to configure their platform
+* existing services like TransactionManager, Security, and Connector
+
+Thus the focus of OpenEJB was to create an EJB implementation that would be easily embeddible, configurable, and customizable.
+
+Part of achieving that is a drive to be as simple as possible as to not over-define and therefore restrict the ability to be embeddible, configurable and customizable.
+Smaller third-party environments could easily 'downscale' OpenEJB in their integrations by replacing standard components with lighter implementations or removing them all together and larger environments could 'upscale' OpenEJB by replacing and adding heavier implementations of those standard components likely tailored to their systems and infrastructure.
+
+Container and Server are mentioned in the EJB spec as being separate things but are never defined formally.
+In our world Containers, which implement the basic component contract and lifecycle of a bean are not coupled to any particular Server, which has the job of providing a naming service and providing a way for it's clients to reference and invoke components (beans) hosted in Containers.
+Because Containers have no dependence at all only Server, you can run OpenEJB without any Server at all in an embedded environment for example without any work or any extra overhead.
+Similarly you can add as many new Server components as you want without ever having to modify any Containers.
+
+There is a very strong pluggability focus in OpenEJB as it was always intended to be embedded and customized in other environments.
+As a result all Containers are pluggable, isolated from each other, and no one Container is bound to another Container and therefore removing or adding a Container has no repercussions on the other Containers in the system.
+TransactionManager, SecurityService and Connector also pluggable and are services exposed to Containers.
+A Container may not be dependent on specific implementations of those services.
+Service Providers define what services they are offering (Container, Connector, Security, Transaction, etc.) in a file they place in their jar called service-jar.xml.
+
+The service-jar.xml should be placed not in the META-INF but somewhere in your package hierarchy (ours is in /org/apache/openejb/service-jar.xml) which allows the services in your service-jar.xml to be referenced by name (such as DefaultStatefulContainer) or more specifically by package and id (such as org.apache.openejb#DefaultStatefulContainer).
+
+The same implementation of a service can be declared several times in a service-jar.xml with different ids.
+This allows for you to setup several several different profiles or pre-configured versions of the services you provide each with a different name and different set of default values for its properties.
+
+In your openejb.conf file when you declare Containers and Connectors, we are actually hooking you up with Service Providers automatically.
+You get what is in the org/apache/openejb/service-jar.xml by default, but you are able to point specifically to a specific Service Provider by the 'provider' attribute on the Container, Connector, TransactionManager, SecurityService, etc. elements of the openejb.conf file.
+When you declare a service (Container, Connector, etc.) in your openejb.conf file the properties you supply override the properties supplied by the Service Provider, thus you only need to specify the properties you'd like to change and can have your openejb.conf file as large or as small as you would like it.
+The act of doing this can be thought of as essentially instantiating the Service Provider and configuring that instance for inclusion in the runtime system.
+
+For example Container(id=NoTimeoutStatefulContainer, provider=DefaultStatefulContainer) could be declared with it's Timeout property set to 0 for never, and a Container(id=ShortTimeoutStatefulContainer, provider=DefaultStatefulContainer) could be declared with it's Timeout property set to 15 minutes.
+Both would be instances of the DefaultStatefulContainer Service Provider which is a service of type Container.
diff --git a/src/main/jbake/content/concepts.md b/src/main/jbake/content/concepts.md
deleted file mode 100644
index dba6d33..0000000
--- a/src/main/jbake/content/concepts.md
+++ /dev/null
@@ -1,75 +0,0 @@
-Title: Concepts
-OpenEJB was founded on the idea that it would be embedded into third-party
-environments whom would likely already have three things:
-
- - their one "server" platform with existing clients and protocols
- - their own way to configure their platform
- - existing services like TransactionManager, Security, and Connector
-
-Thus the focus of OpenEJB was to create an EJB implementation that would be
-easily embeddible, configurable, and customizable.  
-
-Part of achieving that is a drive to be as simple as possible as to not
-over-define and therefore restrict the ability to be embeddible,
-configurable and customizable.	Smaller third-party environments could
-easily 'downscale' OpenEJB in their integrations by replacing standard
-components with lighter implementations or removing them all together and
-larger environments could 'upscale' OpenEJB by replacing and adding heavier
-implementations of those standard components likely tailored to their
-systems and infrastructure.
-
-Container and Server are mentioned in the EJB spec as being separate things
-but are never defined formally.  In our world Containers, which implement
-the basic component contract and lifecycle of a bean are not coupled to any
-particular Server, which has the job of providing a naming service and
-providing a way for it's clients to reference and invoke components (beans)
-hosted in Containers.  Because Containers have no dependence at all only
-Server, you can run OpenEJB without any Server at all in an embedded
-environment for example without any work or any extra overhead.  Similarly
-you can add as many new Server components as you want without ever having
-to modify any Containers.
-
-There is a very strong pluggability focus in OpenEJB as it was always
-intended to be embedded and customized in other environments.  As a result
-all Containers are pluggable, isolated from each other, and no one
-Container is bound to another Container and therefore removing or adding a
-Container has no repercussions on the other Containers in the system. 
-TransactionManager, SecurityService and Connector also pluggable and are
-services exposed to Containers.  A Container may not be dependent on
-specific implementations of those services.  Service Providers define what
-services they are offering (Container, Connector, Security, Transaction,
-etc.) in a file they place in their jar called service-jar.xml.  
-
-The service-jar.xml should be placed not in the META-INF but somewhere in
-your package hierarchy (ours is in /org/apache/openejb/service-jar.xml)
-which allows the services in your service-jar.xml to be referenced by name
-(such as DefaultStatefulContainer) or more specifically by package and id
-(such as org.apache.openejb#DefaultStatefulContainer).	
-
-The same implementation of a service can be declared several times in a
-service-jar.xml with different ids.  This allows for you to setup several
-several different profiles or pre-configured versions of the services you
-provide each with a different name and different set of default values for
-its properties.  
-
-In your openejb.conf file when you declare Containers and Connectors, we
-are actually hooking you up with Service Providers automatically.  You get
-what is in the org/apache/openejb/service-jar.xml by default, but you are
-able to point specifically to a specific Service Provider by the 'provider'
-attribute on the Container, Connector, TransactionManager, SecurityService,
-etc. elements of the openejb.conf file.  When you declare a service
-(Container, Connector, etc.) in your openejb.conf file the properties you
-supply override the properties supplied by the Service Provider, thus you
-only need to specify the properties you'd like to change and can have your
-openejb.conf file as large or as small as you would like it.  The act of
-doing this can be thought of as essentially instantiating the Service
-Provider and configuring that instance for inclusion in the runtime system. 
-
-For example Container(id=NoTimeoutStatefulContainer,
-provider=DefaultStatefulContainer) could be declared with it's Timeout
-property set to 0 for never, and a
-Container(id=ShortTimeoutStatefulContainer,
-provider=DefaultStatefulContainer) could be declared with it's Timeout
-property set to 15 minutes.  Both would be instances of the
-DefaultStatefulContainer Service Provider which is a service of type
-Container.
diff --git a/src/main/jbake/content/contribute.adoc b/src/main/jbake/content/contribute.adoc
new file mode 100644
index 0000000..5d6b4c7
--- /dev/null
+++ b/src/main/jbake/content/contribute.adoc
@@ -0,0 +1,177 @@
+= Contributing
+:jbake-type: page
+:jbake-status: published
+
+Contributing to the project is a great way to support the community.
+Some great links for getting involved
+
+* xref:dev/source-code.adoc[Source Code]
+* xref:dev/contribution-tips.adoc[Contribution Tips]
+
+NOTE: The next (broken) link on the current site points to an apparently generated list of pages in dev.
+
+* xref:dev/index.adoc[Developer Documentation]
+
+== Contributing doesn't always mean code.
+
+If you love the project and want to see it grow, follow it on Facebook and Twitter.
+
+* http://twitter.com/ApacheTomEE
+* http://facebook.com/ApacheTomEE
+
+The more people we reach the more the project grows.
+
+* Become an active retweeter + +++<a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">+++share [tw]+++</a>+++
+* Share pages you like on Facebook + +++<a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">+++share [fb]+++</a>+++
+* Share pages you like on Pinterest + +++<a onclick="javascript:pinshare()" class="pin-share sprite" title="Share on Pinterest">+++share [pin]+++</a>+++
+
+Doing these things as often as possible are simple and powerful ways to help.
+Do your part and watch the project grow grow grow!
+
+== Edit This Site
+
+Top right, next to the Twitter symbol, there is an edit symbol <<edit,contribute>>.
+Most of the pages on this site can be edited by you.
+If you find a spelling mistake, or just want to improve the documentation then please do!
+
+If you want to edit the xref:{examples-vc}::index.adoc[Examples Documentation] then check-out the xref:dev/source-code.adoc[Source Code] and edit or create the README.md in the example directory you want to improve.
+
+== Committers
+
+[cols=4*]
+|===
+| link:mailto:adc@apache.org[Alan Cabrera]
+| Committer, PMC
+| http://people.apache.org/~adc[adc]
+| http://people.apache.org/map.html?adc[map]
+
+| link:mailto:ammulder@apache.org[Aaron Mulder]
+| Committer
+| http://people.apache.org/~ammulder[ammulder]
+| http://people.apache.org/map.html?ammulder[map]
+
+| link:mailto:andygumbrecht@apache.org[Andrew Gumbrecht]
+| Committer
+| http://people.apache.org/~andygumbrecht[andygumbrecht]
+| http://people.apache.org/map.html?andygumbrecht[map]
+
+| link:mailto:dain@apache.org[Dain Sundstrom]
+| Committer, PMC
+| http://people.apache.org/~dain[dain]
+| http://people.apache.org/map.html?dain[map]
+
+| link:mailto:dblevins@apache.org[David Blevins]
+| Founder, Chair
+| http://people.apache.org/~dblevins[dblevins]
+| http://people.apache.org/map.html?dblevins[map]
+
+| link:mailto:djencks@apache.org[David Jencks]
+| Committer, PMC
+| http://people.apache.org/~djencks[djencks]
+| http://people.apache.org/map.html?djencks[map]
+
+| link:mailto:dsh@apache.org[Daniel Stefan Haischt]
+| Committer
+| http://people.apache.org/~dsh[dsh]
+| http://people.apache.org/map.html?dsh[map]
+
+| link:mailto:gawor@apache.org[Jarek Gawor]
+| Committer
+| http://people.apache.org/~gawor[gawor]
+| http://people.apache.org/map.html?gawor[map]
+
+| link:mailto:gdamour@apache.org[Gianny Damour]
+| Committer
+| http://people.apache.org/~gdamour[gdamour]
+| http://people.apache.org/map.html?gdamour[map]
+
+| link:mailto:genspring@apache.org[Lin Quan Jiang]
+| Committer
+| http://people.apache.org/~genspring[genspring]
+| http://people.apache.org/map.html?genspring[map]
+
+| link:mailto:hogstrom@apache.org[Matt Richard Hogstrom]
+| Committer
+| http://people.apache.org/~hogstrom[hogstrom]
+| http://people.apache.org/map.html?hogstrom[map]
+
+| link:mailto:jgallimore@apache.org[Jonathan Gallimore]
+| Committer, PMC
+| http://people.apache.org/~jgallimore[jgallimore]
+| http://people.apache.org/map.html?jgallimore[map]
+
+| link:mailto:jgenender@apache.org[Jeff Genender]
+| Committer
+| http://people.apache.org/~jgenender[jgenender]
+| http://people.apache.org/map.html?jgenender[map]
+
+| link:mailto:jlaskowski@apache.org[Jacek Laskowski]
+| Committer, PMC
+| http://people.apache.org/~jlaskowski[jlaskowski]
+| http://people.apache.org/map.html?jlaskowski[map]
+
+| link:mailto:jlmonteiro@apache.org[Jean-Louis Monteiro]
+| Committer, PMC
+| http://people.apache.org/~jlmonteiro[jlmonteiro]
+| http://people.apache.org/map.html?jlmonteiro[map]
+
+| link:mailto:jvanzyl@apache.org[Jason van Zyl]
+| Committer
+| http://people.apache.org/~jvanzyl[jvanzyl]
+| http://people.apache.org/map.html?jvanzyl[map]
+
+| link:mailto:jwhitlock@apache.org[Jeremy Whitlock]
+| Committer
+| http://people.apache.org/~jwhitlock[jwhitlock]
+| http://people.apache.org/map.html?jwhitlock[map]
+
+| link:mailto:kevan@apache.org[Kevan Lee Miller]
+| Committer, PMC
+| http://people.apache.org/~kevan[kevan]
+| http://people.apache.org/map.html?kevan[map]
+
+| link:mailto:kmalhi@apache.org[Karan Singh Malhi]
+| Committer
+| http://people.apache.org/~kmalhi[kmalhi]
+| http://people.apache.org/map.html?kmalhi[map]
+
+| link:mailto:lajos@apache.org[Lajos Moczar]
+| Committer
+| http://people.apache.org/~lajos[lajos]
+| http://people.apache.org/map.html?lajos[map]
+
+| link:mailto:manugeorge@apache.org[Manu George]
+| Committer
+| http://people.apache.org/~manugeorge[manugeorge]
+| http://people.apache.org/map.html?manugeorge[map]
+
+| link:mailto:struberg@apache.org[Mark Struberg]
+| Committer, PMC
+| http://people.apache.org/~struberg[struberg]
+| http://people.apache.org/map.html?struberg[map]
+
+| link:mailto:mnour@apache.org[Mohammad Nour El-Din]
+| Committer
+| http://people.apache.org/~mnour[mnour]
+| http://people.apache.org/map.html?mnour[map]
+
+| link:mailto:rickmcguire@apache.org[Richard McGuire]
+| Committer
+| http://people.apache.org/~rickmcguire[rickmcguire]
+| http://people.apache.org/map.html?rickmcguire[map]
+
+| link:mailto:rmannibucau@apache.org[Romain Manni-Bucau]
+| Committer
+| http://people.apache.org/~rmannibucau[rmannibucau]
+| http://people.apache.org/map.html?rmannibucau[map]
+
+| link:mailto:tveronezi@apache.org[Thiago Veronezi]
+| Committer
+| http://people.apache.org/~tveronezi[tveronezi]
+| http://people.apache.org/map.html?tveronezi[map]
+
+| link:mailto:xuhaihong@apache.org[Haihong Xu]
+| Committer
+| http://people.apache.org/~xuhaihong[xuhaihong]
+| http://people.apache.org/map.html?xuhaihong[map]
+|===
diff --git a/src/main/jbake/content/contribute.md b/src/main/jbake/content/contribute.md
deleted file mode 100644
index f6f3495..0000000
--- a/src/main/jbake/content/contribute.md
+++ /dev/null
@@ -1,199 +0,0 @@
-Title: Contributing
-
-Contributing to the project is a great way to support the community.  Some great links for getting involved
-
-- [Source Code](dev/source-code.html)
-- [Contribution Tips](dev/contribution-tips.html)
-- [Developer Documentation](dev/index.html)
-
-###Contributing doesn't always mean code.
-If you love the project and want to see it grow, follow it on Facebook and Twitter.
-
-- [http://twitter.com/ApacheTomEE](http://twitter.com/ApacheTomEE)
-- [http://facebook.com/ApacheTomEE](http://facebook.com/ApacheTomEE)
-- [https://plus.google.com/118203123063829126066](https://plus.google.com/118203123063829126066)
-
-The more people we reach the more the project grows.
-
- - Become an active retweeter  
-   <a onclick="javascript:twshare()" class="tw-share sprite" title="share on Twitter">share [tw]</a>
- - Share pages you like on Facebook  
-   <a onclick="javascript:fbshare()" class="fb-share sprite" title="share on Facebook">share [fb]</a>
- - Share pages you like on Google+  
-   <a onclick="javascript:gpshare()" class="gp-share sprite" title="share on Google+">share [gp]</a>
- - Share pages you like on Pinterest  
-   <a onclick="javascript:pinshare()" class="pin-share sprite" title="Share on Pinterest">share [pin]</a>
-
-Doing these things as often as possible are simple and powerful ways to help.  Do your part and watch the project grow grow grow!
-
-###Edit This Site
-Top right, next to the Twitter symbol, there is an edit symbol <a data-toggle="modal" href="#edit" class="edit-page" title="Contribute to this Page">contribute</a>. Most of the pages on this site can be edited by you. If you find a spelling mistake, or just want to improve the documentation then please do!
-
-If you want to edit the [Examples Documentation](examples-trunk/index.html) then check-out the [Source Code](dev/source-code.html) and edit or create the README.md in the example directory you want to improve.
-
-###Committers
-
-<TABLE><TBODY>
-<TR>
-<TD> <A href="mailto:adc@apache.org" rel="nofollow">Alan Cabrera</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~adc" rel="nofollow">adc</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?adc" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:ammulder@apache.org" rel="nofollow">Aaron Mulder</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~ammulder" rel="nofollow">ammulder</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?ammulder" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:andygumbrecht@apache.org" rel="nofollow">Andrew Gumbrecht</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~andygumbrecht" rel="nofollow">andygumbrecht</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?andygumbrecht" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:dain@apache.org" rel="nofollow">Dain Sundstrom</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~dain" rel="nofollow">dain</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?dain" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:dblevins@apache.org" rel="nofollow">David Blevins</A> </TD>
-<TD> Founder, Chair </TD>
-<TD> <A href="http://people.apache.org/~dblevins" rel="nofollow">dblevins</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?dblevins" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:djencks@apache.org" rel="nofollow">David Jencks</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~djencks" rel="nofollow">djencks</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?djencks" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:dsh@apache.org" rel="nofollow">Daniel Stefan Haischt</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~dsh" rel="nofollow">dsh</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?dsh" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:gawor@apache.org" rel="nofollow">Jarek Gawor</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~gawor" rel="nofollow">gawor</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?gawor" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:gdamour@apache.org" rel="nofollow">Gianny Damour</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~gdamour" rel="nofollow">gdamour</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?gdamour" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:genspring@apache.org" rel="nofollow">Lin Quan Jiang</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~genspring" rel="nofollow">genspring</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?genspring" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:hogstrom@apache.org" rel="nofollow">Matt Richard Hogstrom</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~hogstrom" rel="nofollow">hogstrom</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?hogstrom" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:jgallimore@apache.org" rel="nofollow">Jonathan Gallimore</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~jgallimore" rel="nofollow">jgallimore</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?jgallimore" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:jgenender@apache.org" rel="nofollow">Jeff Genender</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~jgenender" rel="nofollow">jgenender</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?jgenender" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:jlaskowski@apache.org" rel="nofollow">Jacek Laskowski</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~jlaskowski" rel="nofollow">jlaskowski</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?jlaskowski" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:jlmonteiro@apache.org" rel="nofollow">Jean-Louis Monteiro</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~jlmonteiro" rel="nofollow">jlmonteiro</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?jlmonteiro" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:jvanzyl@apache.org" rel="nofollow">Jason van Zyl</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~jvanzyl" rel="nofollow">jvanzyl</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?jvanzyl" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:jwhitlock@apache.org" rel="nofollow">Jeremy Whitlock</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~jwhitlock" rel="nofollow">jwhitlock</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?jwhitlock" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:kevan@apache.org" rel="nofollow">Kevan Lee Miller</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~kevan" rel="nofollow">kevan</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?kevan" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:kmalhi@apache.org" rel="nofollow">Karan Singh Malhi</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~kmalhi" rel="nofollow">kmalhi</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?kmalhi" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:lajos@apache.org" rel="nofollow">Lajos Moczar</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~lajos" rel="nofollow">lajos</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?lajos" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:manugeorge@apache.org" rel="nofollow">Manu George</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~manugeorge" rel="nofollow">manugeorge</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?manugeorge" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:struberg@apache.org" rel="nofollow">Mark Struberg</A> </TD>
-<TD> Committer, PMC </TD>
-<TD> <A href="http://people.apache.org/~struberg" rel="nofollow">struberg</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?struberg" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:mnour@apache.org" rel="nofollow">Mohammad Nour El-Din</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~mnour" rel="nofollow">mnour</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?mnour" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:rickmcguire@apache.org" rel="nofollow">Richard McGuire</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~rickmcguire" rel="nofollow">rickmcguire</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?rickmcguire" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:rmannibucau@apache.org" rel="nofollow">Romain Manni-Bucau</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~rmannibucau" rel="nofollow">rmannibucau</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?rmannibucau" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:tveronezi@apache.org" rel="nofollow">Thiago Veronezi</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~tveronezi" rel="nofollow">tveronezi</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?tveronezi" rel="nofollow">map</A></TD>
-</TR>
-<TR>
-<TD> <A href="mailto:xuhaihong@apache.org" rel="nofollow">Haihong Xu</A> </TD>
-<TD> Committer </TD>
-<TD> <A href="http://people.apache.org/~xuhaihong" rel="nofollow">xuhaihong</A> </TD>
-<TD> <A href="http://people.apache.org/map.html?xuhaihong" rel="nofollow">map</A></TD>
-</TR>
-</TBODY></TABLE>
diff --git a/src/main/jbake/content/dev/april2008.adoc b/src/main/jbake/content/dev/april2008.adoc
new file mode 100644
index 0000000..4bb87d9
--- /dev/null
+++ b/src/main/jbake/content/dev/april2008.adoc
@@ -0,0 +1,21 @@
+= April 2008
+:jbake-type: page
+:jbake-status: published
+
+The highlight of early February was the release of OpenEJB 3.0 beta 2 which was very well received and triggered another small increase in overall users@openejb.a.o traffic.
+
+We've also seen some encouraging growth signs we haven't seen for quite a while: users answering each other's questions;
+first time posters saying "we've added this feature, do you want it?";
+more questions answerable with documentation links;
+random new faces on IRC.
+
+Work on OpenEJB 3.0 final began towards the end of February with the first binaries up for vote on March 11th.
+Some wonderful feedback on both the dev and users list revealed some critical technical issues with those binaries and the vote was cancelled so that the issues could be fixed.
+Several members of the community went the extra mile to help get issues fixed and the release out the door.
+After steady stream of bug fixes, legal file maintenance, and a few more aborted votes, the long anticipated OpenEJB 3.0 Final was released April 12th.
+The binaries proposed a month prior pale in comparison to the binaries eventually released and we are all very pleased with the quality of the 3.0 final.
+We are very excited to see what kind of a splash 3.0 will make and expect a 3.0.1 will be required soon.
+
+The work contributor Jonathan Gallimore has been doing with an OpenEJB Eclipse plugin has taken root with other developers in the community and development naturally changed from code drops to frequent patches and discussion.
+A big thank you to committer Daniel Haischt for contributing to the Eclipse plugin and giving Jonathan someone to work with and the opportunity to demonstrate his collaborative skills.
+A bigger thank you to Jonathan for his patience.
diff --git a/src/main/jbake/content/dev/april2008.md b/src/main/jbake/content/dev/april2008.md
deleted file mode 100644
index 74bdffa..0000000
--- a/src/main/jbake/content/dev/april2008.md
+++ /dev/null
@@ -1,31 +0,0 @@
-Title: April2008
-The highlight of early February was the release of OpenEJB 3.0 beta 2 which
-was very well received and triggered another small increase in overall
-users@openejb.a.o traffic.  We've also seen some encouraging growth signs
-we haven't seen for quite a while: users answering each other's questions;
-first time posters saying "we've added this feature, do you want it?"; more
-questions answerable with documentation links; random new faces on IRC.
-
-Work on OpenEJB 3.0 final began towards the end of February with the first
-binaries up for vote on March 11th.  Some wonderful feedback on both the
-dev and users list revealed some critical technical issues with those
-binaries and the vote was cancelled so that the issues could be fixed. 
-Several members of the community went the extra mile to help get issues
-fixed and the release out the door.  After steady stream of bug fixes,
-legal file maintenance, and a few more aborted votes, the long anticipated
-OpenEJB 3.0 Final was released April 12th.  The binaries proposed a month
-prior pale in comparison to the binaries eventually released and we are all
-very pleased with the quality of the 3.0 final.  We are very excited to see
-what kind of a splash 3.0 will make and expect a 3.0.1 will be required
-soon.
-
-The work contributor Jonathan Gallimore has been doing with an OpenEJB
-Eclipse plugin has taken root with other developers in the community and
-development naturally changed from code drops to frequent patches and
-discussion.  A big thank you to committer Daniel Haischt for contributing
-to the Eclipse plugin and giving Jonathan someone to work with and the
-opportunity to demonstrate his collaborative skills.  A bigger thank you to
-Jonathan for his patience.
-
-
-
diff --git a/src/main/jbake/content/dev/april2009.adoc b/src/main/jbake/content/dev/april2009.adoc
new file mode 100644
index 0000000..c75425b
--- /dev/null
+++ b/src/main/jbake/content/dev/april2009.adoc
@@ -0,0 +1,28 @@
+= April 2009
+:jbake-type: page
+:jbake-status: published
+
+A patch release of OpenEJB 3.0 (3.0.1) was released with fixes aimed to support the Geronimo 2.1.4 release.
+Talk has started on a release of the current 3.1 branch (to be OpenEJB 3.1.1), which already contains several fixes and improvements over the 3.1 version released in November.
+
+List traffic has continued to increase.
+In Q1 2008 traffic averaged 63 messages per month.
+In Q1 2009 the average is 133 per month.
+This resulted in occasional delays in response times due to bursts of requests.
+At a particularly heavier burst one user complained in an email titled, "Thank you for not supporting me in any way."  This proved to be an overall positive event as it provided an opportunity to reset expectations, get everyone behind the project, and resulted in a generous increase of participation from users and committers alikelink:1.html[1] .  Ultimately it was just what we needed.
+
+Jean-Louis Monteiro has been contributing some good patches and time on the user list and proving to be a good potential committer.
+His activity is primarily around web services which is one area where can certainly use the expertise.
+His participation is greatly appreciated and we look forward to continued contribution.
+
+Discussions have opened up with OpenWebBeans on providing them with the tools they need to support their own OpenEJB integration in efforts to complete the JSR-299 specification.
+The JSR-299 itself is currently very unstable and major changes to the core of the specification, requested by the Java EE 6 (JSR-316) EG, are planned to address overlap with other specifications like JSF and EJB.
+These will certainly provide some challenges as the specification is rebalanced.
+
+Several users have recently pointed out a possible incompatibly in regards to the handling of business remote interfaces also marked as a web service interface.
+The issue has been raised on the EJB 3.1 (JSR-318) EG.
+Regardless of the outcome, support for that feature is planned.
+
+link:1.html[1]
+
+http://mail-archives.apache.org/mod_mbox/openejb-users/200902.mbox/%3c98A91BE3-4ACC-4D86-AE19-4CD4A202E1CD@visi.com%3e
diff --git a/src/main/jbake/content/dev/april2009.md b/src/main/jbake/content/dev/april2009.md
deleted file mode 100644
index b2b3d26..0000000
--- a/src/main/jbake/content/dev/april2009.md
+++ /dev/null
@@ -1,32 +0,0 @@
-Title: April2009
-A patch release of OpenEJB 3.0 (3.0.1) was released with fixes aimed to
-support the Geronimo 2.1.4 release.  Talk has started on a release of the
-current 3.1 branch (to be OpenEJB 3.1.1), which already contains several
-fixes and improvements over the 3.1 version released in November.
-
-List traffic has continued to increase.  In Q1 2008 traffic averaged 63 messages per month.  In Q1 2009 the average is 133 per month.  This resulted in occasional delays in response times due to bursts of requests.  At a particularly heavier burst one user complained in an email titled, "Thank you for not supporting me in any way."  This proved to be an overall positive event as it provided an opportunity to reset expectations, get everyone behind the project, and resulted in a generous increase of participation from users and committers alike[1](1.html)
-.  Ultimately it was just what we needed.
-
-Jean-Louis Monteiro has been contributing some good patches and time on the
-user list and proving to be a good potential committer.  His activity is
-primarily around web services which is one area where can certainly use the
-expertise.  His participation is greatly appreciated and we look forward to
-continued contribution.
-
-Discussions have opened up with OpenWebBeans on providing them with the
-tools they need to support their own OpenEJB integration in efforts to
-complete the JSR-299 specification.  The JSR-299 itself is currently very
-unstable and major changes to the core of the specification, requested by
-the Java EE 6 (JSR-316) EG, are planned to address overlap with other
-specifications like JSF and EJB.  These will certainly provide some
-challenges as the specification is rebalanced.
-
-Several users have recently pointed out a possible incompatibly in regards
-to the handling of business remote interfaces also marked as a web service
-interface.  The issue has been raised on the EJB 3.1 (JSR-318) EG. 
-Regardless of the outcome, support for that feature is planned.
-
-[1](1.html)
-
-http://mail-archives.apache.org/mod_mbox/openejb-users/200902.mbox/%3c98A91BE3-4ACC-4D86-AE19-4CD4A202E1CD@visi.com%3e
-
diff --git a/src/main/jbake/content/dev/arquillian-test-porting-initiative.adoc b/src/main/jbake/content/dev/arquillian-test-porting-initiative.adoc
new file mode 100644
index 0000000..678ef4c
--- /dev/null
+++ b/src/main/jbake/content/dev/arquillian-test-porting-initiative.adoc
@@ -0,0 +1,90 @@
+= Arquillian Test Porting Initiative
+:jbake-type: page
+:jbake-status: published
+
+First things, first.
+You can contribute your ideas by clicking the blue pencile icon in the upper right.
+Edit this page and help shape the initiative!
+
+== Unite the Armies to fight the Bugs!
+
+Testing is the most crucial part of any project.
+A project that incorporates as much functionality as TomEE does needs a _lot_ of tests.
+
+There's a saying that if it isn't documented it doesn't exist.
+Likely more true is that if it isn't tested it it might as well not exist, documentation or not.
+
+The simple truth is many of the critical tests that apply to functionality in TomEE actuall exist, but are spread across the numberous projects that TomEE incorporates.
+Just as TomEE is about unifying and integrating all these projects together, the same vision and initative must be given into unifying and integrating all these tests.
+
+If we could port them all to a common testing framework like Arquillian and consolidate them all into one codebase, the result would be nothing short of a marvel.
+An unparalleled feat.
+
+Such a thing has never been done at the ASF.
+Be ready to blaze some trails and be a pioneer.
+
+== The Kingdoms
+
+There are far more than 3,000 test classes we could port across the various projects, each using it's own flavor of home-made setup code.
+The coverage is also not what you'd expect.
+
+* Activemq 1281
+* CXF 979
+* TomEE 802
+* OpenEJB 215
+* MyFaces 171
+* OpenWebBeans 165
+* Bval 56
+* OpenJPA 33
+* Tomcat 20
+
+The above results are no dount eye-opening.
+In all fairness, the projects with so few test are not as "untested" as they appear, they simply rely more heavily on the proprietary Java EE TCK which is closed source.
+This is adequate, but not fantastic.
+*An open source project should have open tests.*
+
+== Generals Needed
+
+This is no small feet.
+With over 3,000 tests porting them all is not realistc.
+If we had 10 people working full time, that's till 300 tests each person would need to port.
+This simply is not realistic.
+More realistic would be for a person to port say 10 tests before they get an injury and need to leave the battlefield with hopes of joining the glorious fight another day -- aka.
+they get busy :)
+
+Even with 300 people each contributing 10 tests each, it's still quite a lot of patches for a small team to apply.
+Organizing 300 people and shaping an initiative like this is als no small feat.
+What we need are Generals.
+Individuals to survey the land and plan attacks with small groups of soldiers.
+
+Porting 50 tests yourself is impressive.
+Leading the charge on 500 tests being ported is astonishing.
+
+== Early stage
+
+The tests in question are located more or less here:
+
+* svn co http://svn.apache.org/repos/asf/activemq/trunk
+* svn co http://svn.apache.org/repos/asf/bval/trunk
+* svn co http://svn.apache.org/repos/asf/cxf/trunk
+* svn co http://svn.apache.org/repos/asf/myfaces/core/trunk
+* svn co http://svn.apache.org/repos/asf/tomee/tomee/trunk/itests
+* svn co http://svn.apache.org/repos/asf/openjpa/branches/2.2.x
+* svn co http://svn.apache.org/repos/asf/openwebbeans/trunk
+* svn co http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk
+
+While not part of TomEE, Wink has some wonderful JAX-RS tests we could use:
+
+* svn co http://svn.apache.org/repos/asf/wink/trunk
+
+At this stage there's still quite a lot of information needed to mobilize the troops.
+How to write Arquillian tests, which tests are most important, how should they be divided?
+
+The call goes out to all you would-be Generals!
+
+Any mode of cooperation is acceptable.
+Discussions on the `dev (at) tomee.apache.org` list welcome.
+This document can be edited by anyone.
+As well there's a JIRA we can use to move the discussion along:
+
+* https://issues.apache.org/jira/browse/TOMEE-746
diff --git a/src/main/jbake/content/dev/arquillian-test-porting-initiative.md b/src/main/jbake/content/dev/arquillian-test-porting-initiative.md
deleted file mode 100644
index ed3e44b..0000000
--- a/src/main/jbake/content/dev/arquillian-test-porting-initiative.md
+++ /dev/null
@@ -1,76 +0,0 @@
-Title: Arquillian Test Porting Initiative
-
-First things, first.  You can contribute your ideas by clicking the blue pencile icon in the upper right.  Edit this page and help shape the initiative!
-
-# Unite the Armies to fight the Bugs!
-
-Testing is the most crucial part of any project.  A project that incorporates as much functionality as TomEE does needs a *lot* of tests.
-
-There's a saying that if it isn't documented it doesn't exist.  Likely more true is that if it isn't tested it it might as well not exist,
-documentation or not.
-
-The simple truth is many of the critical tests that apply to functionality in TomEE actuall exist, but are spread across the numberous projects
-that TomEE incorporates.  Just as TomEE is about unifying and integrating all these projects together, the same vision and initative
-must be given into unifying and integrating all these tests.
-
-If we could port them all to a common testing framework like Arquillian and consolidate them all into one codebase, the result would be nothing short
-of a marvel.  An unparalleled feat.
-
-Such a thing has never been done at the ASF.  Be ready to blaze some trails and be a pioneer.
-
-# The Kingdoms
-
-There are far more than 3,000 test classes we could port across the various projects, each using it's own flavor of home-made setup code.
-The coverage is also not what you'd expect.
-
- - Activemq 1281
- - CXF 979
- - TomEE 802
- - OpenEJB 215
- - MyFaces 171
- - OpenWebBeans 165
- - Bval 56
- - OpenJPA 33
- - Tomcat 20
-
-The above results are no dount eye-opening.  In all fairness, the projects with so few test are not as "untested" as they appear, they simply rely more heavily
-on the proprietary Java EE TCK which is closed source.  This is adequate, but not fantastic.  **An open source project should have open tests.**
-
-# Generals Needed
-
-This is no small feet.  With over 3,000 tests porting them all is not realistc.  If we had 10 people working full time, that's till 300 tests each person
-would need to port.  This simply is not realistic.  More realistic would be for a person to port say 10 tests before they get an injury and need to leave the
-battlefield with hopes of joining the glorious fight another day -- aka. they get busy :)
-
-Even with 300 people each contributing 10 tests each, it's still quite a lot of patches for a small team to apply.  Organizing 300 people and shaping an initiative
-like this is als no small feat.  What we need are Generals.  Individuals to survey the land and plan attacks with small groups of soldiers.
-
-Porting 50 tests yourself is impressive.  Leading the charge on 500 tests being ported is astonishing.
-
-# Early stage
-
-The tests in question are located more or less here:
-
- - svn co http://svn.apache.org/repos/asf/activemq/trunk
- - svn co http://svn.apache.org/repos/asf/bval/trunk
- - svn co http://svn.apache.org/repos/asf/cxf/trunk
- - svn co http://svn.apache.org/repos/asf/myfaces/core/trunk
- - svn co http://svn.apache.org/repos/asf/tomee/tomee/trunk/itests
- - svn co http://svn.apache.org/repos/asf/openjpa/branches/2.2.x
- - svn co http://svn.apache.org/repos/asf/openwebbeans/trunk
- - svn co http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk
-
-While not part of TomEE, Wink has some wonderful JAX-RS tests we could use:
-
- - svn co http://svn.apache.org/repos/asf/wink/trunk
-
-At this stage there's still quite a lot of information needed to mobilize the troops.  How to write Arquillian tests, which tests are most important, how should
-they be divided?
-
-The call goes out to all you would-be Generals!
-
-Any mode of cooperation is acceptable.  Discussions on the `dev (at) tomee.apache.org` list welcome.  This document can be edited by anyone.  As well there's a
-JIRA we can use to move the discussion along:
-
- - https://issues.apache.org/jira/browse/TOMEE-746
-
diff --git a/src/main/jbake/content/dev/asf.adoc b/src/main/jbake/content/dev/asf.adoc
new file mode 100644
index 0000000..ca40c44
--- /dev/null
+++ b/src/main/jbake/content/dev/asf.adoc
@@ -0,0 +1,34 @@
+= ASF ASF Board meetings are the third Wednesday of each month:
+:jbake-type: page
+:jbake-status: published
+
+Reports must be filed monthly for the first three months after Incubation:
+
+* xref:june2007.adoc[June 18, 2007]
+* xref:july2007.adoc[July 16, 2007]
+* xref:august2007.adoc[August 13, 2007]
+
+Then quarterly after that starting the month after:
+
+* xref:october2007.adoc[October 15, 2007]
+* xref:january2008.adoc[January 14, 2008]
+* xref:april2008.adoc[April 14, 2008]
+* xref:july2008.adoc[July 14, 2008]
+* xref:october2008.adoc[October 13, 2008]
+
+NOTE: january2009 is missing
+
+* xref:january2009.adoc[January 19, 2009]
+* xref:april2009.adoc[April 13, 2009]
+* xref:july2009.adoc[July 13, 2009]
+* xref:october2009.adoc[October 21, 2009]
+* xref:january2010.adoc[January 20, 2010]
+
+NOTE: april2010 is missing
+
+* xref:april2010.adoc[April 21, 2010]
+* xref:july2010.adoc[July 21, 2010]
+
+NOTE: october2010 is missing
+
+* xref:october2010.adoc[October 20, 2010]
diff --git a/src/main/jbake/content/dev/asf.md b/src/main/jbake/content/dev/asf.md
deleted file mode 100644
index f8fab48..0000000
--- a/src/main/jbake/content/dev/asf.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Title: ASF
-ASF Board meetings are the third Wednesday of each month:
-
-Reports must be filed monthly for the first three months after Incubation:
-
- - [June 18, 2007](june2007.html)
- - [July 16, 2007](july2007.html)
- - [August 13, 2007](august2007.html)
-
-Then quarterly after that starting the month after:
-
- - [October 15, 2007](october2007.html)
- - [January 14, 2008](january2008.html)
- - [April 14, 2008](april2008.html)
- - [July 14, 2008](july2008.html)
- - [October 13, 2008](october2008.html)
- - [January 19, 2009](january2009.html)
- - [April 13, 2009](april2009.html)
- - [July 13, 2009](july2009.html)
- - [October 21, 2009](october2009.html)
- - [January 20, 2010](january2010.html)
- - [April 21, 2010](april2010.html)
- - [July 21, 2010](july2010.html)
- - [October 20, 2010](october2010.html)
diff --git a/src/main/jbake/content/dev/august2007.adoc b/src/main/jbake/content/dev/august2007.adoc
new file mode 100644
index 0000000..b361473
--- /dev/null
+++ b/src/main/jbake/content/dev/august2007.adoc
@@ -0,0 +1,17 @@
+= August2007
+:jbake-type: page
+:jbake-status: published
+
+Work on the OpenEJB 3.0 release is coming to a close.
+Documentation remains the largest outstanding item.
+A complete audit of all documentation was completed and concrete steps to improve it were detailed.
+Progress on updating the out-of-date documentation has already been made.
+
+The usability of the codebase has matured significantly through many contributions from the community and very little remains to be completed in that regard.
+
+Developer activity is up.
+We are delighted to have voted in a dedicated contributor, Karan Malhi, as a new committer and he has proudly excepted.
+No CLA is on file yet.
+
+User list activity overall remains low, though some new faces have started to pop up whom we are hoping can provide us with some good pre-release feedback.
+We hoping to see a measurable increase in user list activity post release.
diff --git a/src/main/jbake/content/dev/august2007.md b/src/main/jbake/content/dev/august2007.md
deleted file mode 100644
index fa8753e..0000000
--- a/src/main/jbake/content/dev/august2007.md
+++ /dev/null
@@ -1,18 +0,0 @@
-Title: August2007
-Work on the OpenEJB 3.0 release is coming to a close. Documentation remains
-the largest outstanding item. A complete audit of all documentation was
-completed and concrete steps to improve it were detailed.  Progress on
-updating the out-of-date documentation has already been made.
-
-The usability of the codebase has matured significantly through many
-contributions from the community and very little remains to be completed in
-that regard.
-
-Developer activity is up. We are delighted to have voted in a dedicated
-contributor, Karan Malhi, as a new committer and he has proudly excepted.
-No CLA is on file yet.
-
-User list activity overall remains low, though some new faces have started
-to pop up whom we are hoping can provide us with some good pre-release
-feedback.  We hoping to see a measurable increase in user list activity
-post release.
diff --git a/src/main/jbake/content/dev/building-from-source.adoc b/src/main/jbake/content/dev/building-from-source.adoc
new file mode 100644
index 0000000..d06fecf
--- /dev/null
+++ b/src/main/jbake/content/dev/building-from-source.adoc
@@ -0,0 +1,31 @@
+= Building from source
+:jbake-type: page
+:jbake-status: published
+
+== Building from source
+
+=== Checking out the source
+
+To checkout the source, run this command with your subversion client.
+
+   svn checkout https://svn.apache.org/repos/asf/openejb/trunk/openejb-eclipse-plugin openejb-eclipse-plugin
+
+=== Building the source
+
+To build the plugin you will need Maven (the build has been tested with Maven 2.0.7).
+To run the build, issue this command
+
+   mvn -Dassemble clean install
+
+You should be aware that this will download any dependencies, including a copy of Eclipse.
+This will take a while for your first build.
+
+=== Importing the plugin code into an Eclipse workspace
+
+You can generate the Eclipse projects for the plugins by running the following command
+
+   mvn eclipse:clean eclipse:eclipse
+
+You can add the M2_REPO classpath variable to your Eclipse workspace by running the following command
+
+   mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo
diff --git a/src/main/jbake/content/dev/building-from-source.md b/src/main/jbake/content/dev/building-from-source.md
deleted file mode 100644
index b6c28f4..0000000
--- a/src/main/jbake/content/dev/building-from-source.md
+++ /dev/null
@@ -1,44 +0,0 @@
-Title: Building from source
-<a name="Buildingfromsource-Buildingfromsource"></a>
-# Building from source
-
-<a name="Buildingfromsource-Checkingoutthesource"></a>
-### Checking out the source
-
-To checkout the source, run this command with your subversion client.
-
-
-      svn checkout
-https://svn.apache.org/repos/asf/openejb/trunk/openejb-eclipse-plugin
-openejb-eclipse-plugin
-
-
-<a name="Buildingfromsource-Buildingthesource"></a>
-### Building the source
-
-To build the plugin you will need Maven (the build has been tested with
-Maven 2.0.7). To run the build, issue this command
-
-      mvn -Dassemble clean install
-
-
-You should be aware that this will download any dependencies, including a
-copy of Eclipse. This will take a while for your first build.
-
-<a name="Buildingfromsource-ImportingtheplugincodeintoanEclipseworkspace"></a>
-### Importing the plugin code into an Eclipse workspace
-
-You can generate the Eclipse projects for the plugins by running the
-following command
-
-
-      mvn eclipse:clean eclipse:eclipse
-
-
-You can add the M2_REPO classpath variable to your Eclipse workspace by
-running the following command
-
-
-      mvn -Declipse.workspace=<path-to-eclipse-workspace>
-eclipse:add-maven-repo
-
diff --git a/src/main/jbake/content/dev/cdi-tck-webappsdeployer.adoc b/src/main/jbake/content/dev/cdi-tck-webappsdeployer.adoc
new file mode 100644
index 0000000..e968c97
--- /dev/null
+++ b/src/main/jbake/content/dev/cdi-tck-webappsdeployer.adoc
@@ -0,0 +1,271 @@
+= CDI TCK status with webapps deployer
+:jbake-type: page
+:jbake-status: published
+
+To run the TCK with the webapps/ directory deployer:
+
+ cd openejb/tck/cdi-tomee/
+ mvn clean install -Pwebapp-deployer
+
+See https://issues.apache.org/jira/browse/TOMEE-37[TOMEE-37]
+
+The easiest way to run just one test is to update the `src/test/resources/passing.xml` file like so:
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <suite name="CDI TCK" verbose="0">
+   <test name="CDI TCK">
+     <classes>
+       <class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest"/>
+     </classes>
+   </test>
+ </suite>
+
+You can enable remote debugging for the server with the following property:
+
+ mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true
+
+The default port is `5005`.
+That can be changed as well:
+
+ mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true -Dserver.debug.port=5001
+
+== Possible issues in the server
+
+* testBeanWithNameJavaxEnterpriseContextConversation(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf
+* testBeanWithRequestScope(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf
+* testBeginAlreadyLongRunningConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testConversationActiveDuringNonFacesRequest(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf
+* testConversationBeginMakesConversationLongRunning(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testConversationEndMakesConversationTransient(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testConversationHasDefaultTimeout(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testConversationIdMayBeSetByApplication(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testConversationIdMayBeSetByContainer(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testConversationIdSetByContainerIsUnique(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf
+* testConversationsDontCrossSessionBoundary1(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest)
+* testConversationsDontCrossSessionBoundary2(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/rain.jsf
+* testEndTransientConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testLongRunningConversationInstancesNotDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf
+* testSetConversationTimeoutOverride(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
+* testTransientConversationHasNullId(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf
+* testTransientConversationInstancesDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf
+* testInvalidatingSessionDestroysConversation(org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest/clouds.jsf
+* testConversationPropagated(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf
+* testConversationPropagatedOverRedirect(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf
+* testManualCidPropagation(org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest/storm.jsf
+* testRequestScopeActiveDuringCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&methodName=testRequestScopeActiveDuringCallToEjbTimeoutMethod.
+Kept on getting 404s.
+* testRequestScopeDestroyedAfterCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&methodName=testRequestScopeDestroyedAfterCallToEjbTimeoutMethod.
+Kept on getting 404s.
+* testScopeTypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeDeclaredInheritedIsIndirectlyInherited.
+Kept on getting 404s.
+* testScopeTypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeDeclaredInheritedIsInherited.
+Kept on getting 404s.
+* testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited.
+Kept on getting 404s.
+* testScopeTypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeNotDeclaredInheritedIsNotInherited.
+Kept on getting 404s.
+* testStereotypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
+* testStereotypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
+* testStereotypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
+* testStereotypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
+* testStereotypeScopeIsOverriddenByIndirectlyInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
+* testStereotypeScopeIsOverriddenByInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
+* test(org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest)
+* testNonStaticObserverMethodIndirectlyInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest)
+* testNonStaticObserverMethodInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest)
+* testGetEJBName(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testGetSessionBeanType(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessAnnotatedTypeFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessAnnotatedTypeFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessInjectionTargetFiredForManagedBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessInjectionTargetFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessInjectionTargetFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessManagedBeanFired(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessSessionBeanFiredForStatefulSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessSessionBeanFiredForStatelessSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testTypeOfProcessInjectionTargetParameter(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
+* testProcessSessionBeanEvent(org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest)
+* testDefaultValidatorBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
+* testDefaultValidatorFactoryBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
+* testPrincipalBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
+* testUserTransactionBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
+* testBeanTypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testBeanWithNamedAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testBeanWithQualifiers(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testBeanWithScopeAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testBeanWithStereotype(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testConstructorAnnotatedInjectCalled(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testDefaultName(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testEnterpriseBeanClassLocalView(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testObjectIsInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testRemoteInterfacesAreNotInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testSingletonWithApplicationScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testSingletonWithDependentScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testStatelessMustBeDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
+* testEjbDeclaredInXmlNotSimpleBean(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanViaXmlTest)
+* testCreateSLSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testDependentObjectsDestroyed(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testDestroyRemovesSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testDirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testIndirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testIndirectSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testInitializerMethodsCalledWithCurrentParameterValues(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testRemovedEjbIgnored(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testSerializeSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
+* testNewBeanHasNoDisposalMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
+* testNewBeanHasNoProducerMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
+* testNewBeanHasSameConstructor(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
+* testNewBeanHasSameInitializers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
+* testForEachEnterpriseBeanANewBeanExists(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
+* testNewBeanHasNoBeanELName(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
+* testNewBeanHasNoObservers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
+* testNewBeanHasNoStereotypes(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
+* testNewBeanIsDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
+* testNewBeanIsHasOnlyNewBinding(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
+* testApplicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest):
+* testApplicationMayCallAnyRemoveMethodOnDependentScopedSessionEnterpriseBeans(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest)
+* testApplicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest)
+* testInitializerMethodNotABusinessMethod(org.jboss.jsr299.tck.tests.implementation.initializer.EjbInitializerMethodTest)
+* testBindingTypeOnInitializerParameter(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest)
+* testMultipleInitializerMethodsAreCalled(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest)
+* testStaticProducerField(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest)
+* testNonStaticProducerMethodInheritedBySpecializingSubclass(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)
+* testNonStaticProducerMethodNotIndirectlyInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)
+* testNonStaticProducerMethodNotInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)
+* testConstructorHasDisposesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasDisposesParameter.ConstructorHasDisposesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testConstructorHasObservesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasObservesParameter.ConstructorHasObservesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonDependentScopedBeanCanNotHavePublicField(org.jboss.jsr299.tck.tests.implementation.simple.definition.dependentWithPublicField.DependentWithPublicFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testTooManyInitializerAnnotatedConstructor(org.jboss.jsr299.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors.TooManyInitializerAnnotatedConstructorsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNormalScopedUnproxyableBeanThrowsException(org.jboss.jsr299.tck.tests.implementation.simple.lifecycle.unproxyable.UnproxyableManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInjectionOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)
+* testPassivationOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)
+* testSpecializedBeanNotInstantiated(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest)
+* testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)
+* testSpecializingBeanHasNameOfSpecializedBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)
+* testInterceptorsDeclaredUsingInterceptorsCalledBeforeInterceptorBinding(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest)
+* testNonContextualSessionBeanReferenceIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest)
+* testSessionBeanIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest)
+* testAnnotationMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.annotation.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testArrayMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.array.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDuplicateNamedBeans(org.jboss.jsr299.tck.tests.lookup.byname.duplicateNameResolution.DuplicateNameResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDuplicateBeanNamePrefix(org.jboss.jsr299.tck.tests.lookup.byname.duplicatePrefixResolution.DuplicateNamePrefixResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInjectionPointWithArrayType(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.array.ArrayTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalClass.FinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testClassWithFinalMethodCannotBeProxied(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalMethod.FinalMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.primitive.UnproxyableTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testClassWithPrivateConstructor(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.privateConstructor.PrivateConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testELResolverRegisteredWithJsf(org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest/JSFTestPage.jsf
+* testInitializerCalledAfterFieldInjectionOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)
+* testInitializerCalledAfterResourceInjection(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)
+* testPostConstructCalledAfterInitializerOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)
+* testFieldDeclaredInSuperclassIndirectlyInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
+* testFieldDeclaredInSuperclassInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
+* testInjectionOnContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
+* testInjectionOnEJBInterceptor(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
+* testInjectionOnNonContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
+* testInjectionIntoJSFManagedBean(org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest/ManagedBeanTestPage.jsf
+* testPrimitiveInjectionPointResolvesToNullableWebBean(org.jboss.jsr299.tck.tests.lookup.injection.nullableBean.NullableBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testBeanTypesOnSessionBean(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.EnterpriseResolutionByTypeTest)
+* testDecoratorNotResolved(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.decorator.DecoratorNotInjectedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+
+== Issues likely with the deployer itself
+
+* testPassivationCapableBeanWithNonPassivatingDecoratorBeanConstructorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingBeanConstructor.DecoratorWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testPassivationCapableBeanWithNonPassivatingInitializerInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInitializerMethod.DecoratorWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testPassivationCapableBeanWithNonPassivatingDecoratorInjectedFieldFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInjectedField.DecoratorWithNonPassivatingInjectedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionBeanWithNonPassivatingBeanConstructorParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor.EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionBeanWithNonPassivatingConstructorFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingConstructorFieldInDecorator.EnterpriseBeanWithNonPassivatingFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionBeanWithNonPassivatingInitializerFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerInDecorator.EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionBeanWithNonPassivatingInitializerParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor.EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionBeanWithNonPassivatingInjectedFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInDecorator.EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionBeanWithNonPassivatingInjectedFieldInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor.EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDependentBeanWithNonSerializableImplementationInStatefulSessionBeanInitializerFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonSerializableIntializerMethod.EnterpriseBeanWithNonSerializableIntializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.finalProducerFieldNotPassivationCapable.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingBeanConstructorParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInitializerMethodParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInjectedField.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testManagedBeanWithNonPassivatingDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonPassivatingDecorator.ManagedBeanWithNonPassivatingDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testManagedBeanWithNonSerializableInterceptorClassNotOK(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonSerializableInterceptorClass.ManagedBeanWithNonSerializableInterceptorClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSimpleWebBeanWithNonSerializableImplementationClassFails(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableManagedBeanHasPassivatingScope.NonPassivationManagedBeanHasPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerField.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonPassivationCapableProducerMethodNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerMethod.NonPassivationCapableProducerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingBeanConstructor.PassivatingManagedBeanWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInitializerMethod.PassivatingManagedBeanWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInjcetedField.PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingProducerMethodWithNonPassivatingParameter.PassivatingProducerMethodWithNonPassivatingParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails(org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testCustomDecoratorDecoratingFinalBean(org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.CustomDecoratorMatchingBeanWithFinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDecoratorListedTwiceInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.decoratorListedTwiceInBeansXml.DecoratorListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testEnabledDecoratorNotADecoratorTest(org.jboss.jsr299.tck.tests.decorators.definition.broken.enabledDecoratorIsNotDecorator.EnabledDecoratorNotADecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAppliesToFinalManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanClass.FinalBeanClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAppliesToFinalMethodOnManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanMethod.FinalBeanMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testMultipleDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.multipleDelegateInjectionPoints.MultipleDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNoDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.noDelegateInjectionPoints.NoDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonDecoratorWithDecoratesAnnotationNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonDecoratorWithDecorates.NonDecoratorWithDecoratesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonExistantDecoratorClassInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonExistantClassInBeansXml.NonExistantDecoratorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNotAllDecoratedTypesImplemented(org.jboss.jsr299.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented.NotAllDecoratedTypesImplementedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDecoratorDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.inject.broken.delegateProducerMethod.DelegateInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonDependentGenericManagedBeanNotOk(org.jboss.jsr299.tck.tests.definition.bean.genericbroken.GenericManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testTooManyScopesSpecifiedInJava(org.jboss.jsr299.tck.tests.definition.scope.broken.tooManyScopes.TooManyScopesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testStereotypeWithNonEmptyNamed(org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testMultipleIncompatibleScopeStereotypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.scopeConflict.IncompatibleStereotypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testStereotypeWithTooManyScopeTypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverDefinitionErrorTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDefinitionError.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverDeploymentProblemTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDeploymentProblem.AddDeploymentProblemTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testThrowsException(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.beanDiscoveryMethodThrowsException.BeforeBeanDiscoveryThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverFailureTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanDiscoveryObserver.AfterBeanDiscoveryObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverFailureTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanValidationObserver.AfterDeploymentValidationObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDeploymentFailsDuringValidation(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringValidation.AfterBeanDiscoveryFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.normalScope.AddingNormalScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.passivatingScope.AddingPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAnyAnnotationOnEventInjectionPointWithoutTypeParameterFails(org.jboss.jsr299.tck.tests.event.broken.inject.withoutType.EventInjectionWithoutTypeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDependentBeanWithConditionalObserverMethodIsDefinitionError(org.jboss.jsr299.tck.tests.event.broken.observer.dependentIsConditionalObserver.DependentIsConditionalObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverMethodWithDisposesParamFails(org.jboss.jsr299.tck.tests.event.broken.observer.isDisposer.ObserverMethodAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverMethodAnnotatedInitializerFails(org.jboss.jsr299.tck.tests.event.broken.observer.isInitializer.ObserverMethodAnnotatedInitialzerTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverMethodAnnotatedProducesFails(org.jboss.jsr299.tck.tests.event.broken.observer.isProducer.ObserverMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverMethodMustHaveOnlyOneEventParameter(org.jboss.jsr299.tck.tests.event.broken.observer.tooManyParameters.ObserverMethodWithTwoEventParametersTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testProcessAnnotatedTypeEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processAnnotatedObserverThrowsException.ProcessAnnotatedTypeEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testProcessInjectionTargetEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processInjectionTargetThrowsException.ProcessInjectionTargetEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverRegistersException.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testProcessBeanObserverThrowsException(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverThrowsException.ThrowExceptionInProcessBeanObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.definitionError.ProcessObserverMethodErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testExceptionIsDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.exception.ProcessObserverMethodExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAddingDefinitionError(org.jboss.jsr299.tck.tests.extensions.producer.broken.injectionTargetError.InjectionTargetDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInitializerUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.initializerUnallowed.InitializerUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testMultipleDisposeParameters(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.multiParams.MultipleDisposeParametersDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testObserverParameterUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.observesUnallowed.ObserverParameterUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testProducesUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.producesUnallowed.ProducesUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testUnresolvedDisposalMethod(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.unresolvedMethod.UnresolvedDisposalMethodDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInitializerMethodAnnotatedProduces(org.jboss.jsr299.tck.tests.implementation.initializer.broken.methodAnnotatedProduces.InitializerMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInitializerMethodHasParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInitializerMethodHasParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.broken.parameterizedReturnTypeWithWildcard.ParameterizedReturnTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testProducerMethodWithParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testProducerMethodWithParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testParameterizedType(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithTypeParameter2.ParameterizedTypeWithTypeParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithWildcard.ParameterizedTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializedMethodIndirectlyOverridesAnotherProducerMethod(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.indirectOverride.IndirectOverrideTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializedStaticMethod(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializesStaticMethod.SpecializesStaticMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializingAndSpecializedBeanHaveName.SpecializingAndSpecializedBeanHaveNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInconsistentSpecialization(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.inconsistent.InconsistentSpecializationTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.names.SpecializingAndSpecializedBeanHasNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializingClassImplementsInterfaceAndExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend1.SpecializingBeanImplementsInterfaceOnly): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializingClassDirectlyExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend2.SpecializingBeanExtendsNothingTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSpecializingClassExtendsNonSimpleBean(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend3.SpecializingClassExtendsNonSimpleBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInterceptorCanNotAlsoBeDecorator(org.jboss.jsr299.tck.tests.interceptors.definition.broken.interceptorCanNotBeDecorator.InterceptorCanNotBeDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testInterceptorBindingsWithConflictingAnnotationMembersNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.invalidBindingAnnotations.InvalidInterceptorBindingAnnotationsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonExistantClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testNonInterceptorClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonInterceptorClassInBeansXml.NonInterceptorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSameInterceptorClassListedTwiceInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.sameClassListedTwiceInBeansXml.SameClassListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testAmbiguousDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.ambiguous.AmbiguousDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testUnsatisfiedDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.unsatisfied.UnsatisfiedDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testSessionScopedBeanWithInjectionPoint(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.normal.scope.NormalScopedBeanWithInjectionPoint): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testDefinitionErrorDetected(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testPrimitiveInjectionPointResolvedToNonPrimitiveProducerMethod(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.primitive.PrimitiveInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* testTypeVariableInjectionPoint(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.type.variable.TypeVariableInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.NoClassWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.stereotype.NoAnnotationWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.stereotype.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
+* test(org.jboss.jsr299.tck.tests.policy.broken.same.type.twice.SameTypeListedTwiceTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
diff --git a/src/main/jbake/content/dev/cdi-tck-webappsdeployer.md b/src/main/jbake/content/dev/cdi-tck-webappsdeployer.md
deleted file mode 100644
index b5a6c04..0000000
--- a/src/main/jbake/content/dev/cdi-tck-webappsdeployer.md
+++ /dev/null
@@ -1,266 +0,0 @@
-Title: CDI TCK status with webapps/ deployer
-
-To run the TCK with the webapps/ directory deployer:
-
-    cd openejb/tck/cdi-tomee/
-    mvn clean install -Pwebapp-deployer
-
-See [TOMEE-37](https://issues.apache.org/jira/browse/TOMEE-37)
-
-The easiest way to run just one test is to update the `src/test/resources/passing.xml` file like so:
-
-    <?xml version="1.0" encoding="UTF-8"?>
-    <suite name="CDI TCK" verbose="0">
-      <test name="CDI TCK">
-        <classes>
-          <class name="org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest"/>
-        </classes>
-      </test>
-    </suite>
-
-You can enable remote debugging for the server with the following property:
-
-    mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true
-
-The default port is `5005`.  That can be changed as well:
-
-    mvn clean install -Pwebapp-deployer -Dopenejb.server.debug=true -Dserver.debug.port=5001
-
-
-
-# Possible issues in the server
-
- -   testBeanWithNameJavaxEnterpriseContextConversation(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf
- -   testBeanWithRequestScope(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf
- -   testBeginAlreadyLongRunningConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testConversationActiveDuringNonFacesRequest(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf
- -   testConversationBeginMakesConversationLongRunning(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testConversationEndMakesConversationTransient(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testConversationHasDefaultTimeout(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testConversationIdMayBeSetByApplication(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testConversationIdMayBeSetByContainer(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testConversationIdSetByContainerIsUnique(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf
- -   testConversationsDontCrossSessionBoundary1(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest)
- -   testConversationsDontCrossSessionBoundary2(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/rain.jsf
- -   testEndTransientConversationThrowsException(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testLongRunningConversationInstancesNotDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/storm.jsf
- -   testSetConversationTimeoutOverride(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cumulus.jsf
- -   testTransientConversationHasNullId(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/builtin.jsf
- -   testTransientConversationInstancesDestroyedAtRequestEnd(org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ClientConversationContextTest/cloud.jsf
- -   testInvalidatingSessionDestroysConversation(org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.InvalidatingSessionDestroysConversationTest/clouds.jsf
- -   testConversationPropagated(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf
- -   testConversationPropagatedOverRedirect(org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.LongRunningConversationPropagatedByFacesContextTest/storm.jsf
- -   testManualCidPropagation(org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.conversation.ManualCidPropagationTest/storm.jsf
- -   testRequestScopeActiveDuringCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&methodName=testRequestScopeActiveDuringCallToEjbTimeoutMethod. Kept on getting 404s.
- -   testRequestScopeDestroyedAfterCallToEjbTimeoutMethod(org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest): Error launching test org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest/?outputMode=serializedObject&methodName=testRequestScopeDestroyedAfterCallToEjbTimeoutMethod. Kept on getting 404s.
- -   testScopeTypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeDeclaredInheritedIsIndirectlyInherited. Kept on getting 404s.
- -   testScopeTypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeDeclaredInheritedIsInherited. Kept on getting 404s.
- -   testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeNotDeclaredInheritedIsNotIndirectlyInherited. Kept on getting 404s.
- -   testScopeTypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest): Error launching test org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest at http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.definition.scope.enterprise.EnterpriseScopeDefinitionTest/?outputMode=serializedObject&methodName=testScopeTypeNotDeclaredInheritedIsNotInherited. Kept on getting 404s.
- -   testStereotypeDeclaredInheritedIsIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
- -   testStereotypeDeclaredInheritedIsInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
- -   testStereotypeNotDeclaredInheritedIsNotIndirectlyInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
- -   testStereotypeNotDeclaredInheritedIsNotInherited(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
- -   testStereotypeScopeIsOverriddenByIndirectlyInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
- -   testStereotypeScopeIsOverriddenByInheritedScope(org.jboss.jsr299.tck.tests.definition.stereotype.enterprise.EnterpriseStereotypeDefinitionTest)
- -   test(org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest)
- -   testNonStaticObserverMethodIndirectlyInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest)
- -   testNonStaticObserverMethodInherited(org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest)
- -   testGetEJBName(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testGetSessionBeanType(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessAnnotatedTypeFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessAnnotatedTypeFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessInjectionTargetFiredForManagedBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessInjectionTargetFiredForSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessInjectionTargetFiredForSessionBeanInterceptor(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessManagedBeanFired(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessSessionBeanFiredForStatefulSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessSessionBeanFiredForStatelessSessionBean(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testTypeOfProcessInjectionTargetParameter(org.jboss.jsr299.tck.tests.extensions.container.event.ContainerEventTest)
- -   testProcessSessionBeanEvent(org.jboss.jsr299.tck.tests.extensions.processBean.ProcessSessionBeanTest)
- -   testDefaultValidatorBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
- -   testDefaultValidatorFactoryBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
- -   testPrincipalBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
- -   testUserTransactionBean(org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest)
- -   testBeanTypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testBeanWithNamedAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testBeanWithQualifiers(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testBeanWithScopeAnnotation(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testBeanWithStereotype(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testConstructorAnnotatedInjectCalled(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testDefaultName(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testEnterpriseBeanClassLocalView(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testObjectIsInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testRemoteInterfacesAreNotInAPITypes(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testSingletonWithApplicationScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testSingletonWithDependentScopeOK(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testStatelessMustBeDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanDefinitionTest)
- -   testEjbDeclaredInXmlNotSimpleBean(org.jboss.jsr299.tck.tests.implementation.enterprise.definition.EnterpriseBeanViaXmlTest)
- -   testCreateSLSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testDependentObjectsDestroyed(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testDestroyRemovesSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testDirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testIndirectSubClassInheritsPostConstructOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testIndirectSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testInitializerMethodsCalledWithCurrentParameterValues(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testRemovedEjbIgnored(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testSerializeSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testSubClassInheritsPreDestroyOnSuperclass(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest)
- -   testNewBeanHasNoDisposalMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
- -   testNewBeanHasNoProducerMethods(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
- -   testNewBeanHasSameConstructor(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
- -   testNewBeanHasSameInitializers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest)
- -   testForEachEnterpriseBeanANewBeanExists(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
- -   testNewBeanHasNoBeanELName(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
- -   testNewBeanHasNoObservers(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
- -   testNewBeanHasNoStereotypes(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
- -   testNewBeanIsDependentScoped(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
- -   testNewBeanIsHasOnlyNewBinding(org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest)
- -   testApplicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest):
- -   testApplicationMayCallAnyRemoveMethodOnDependentScopedSessionEnterpriseBeans(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest)
- -   testApplicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed(org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest)
- -   testInitializerMethodNotABusinessMethod(org.jboss.jsr299.tck.tests.implementation.initializer.EjbInitializerMethodTest)
- -   testBindingTypeOnInitializerParameter(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest)
- -   testMultipleInitializerMethodsAreCalled(org.jboss.jsr299.tck.tests.implementation.initializer.InitializerMethodTest)
- -   testStaticProducerField(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.enterprise.EnterpriseProducerFieldDefinitionTest)
- -   testNonStaticProducerMethodInheritedBySpecializingSubclass(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)
- -   testNonStaticProducerMethodNotIndirectlyInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)
- -   testNonStaticProducerMethodNotInherited(org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest)
- -   testConstructorHasDisposesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasDisposesParameter.ConstructorHasDisposesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testConstructorHasObservesParameter(org.jboss.jsr299.tck.tests.implementation.simple.definition.constructorHasObservesParameter.ConstructorHasObservesParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonDependentScopedBeanCanNotHavePublicField(org.jboss.jsr299.tck.tests.implementation.simple.definition.dependentWithPublicField.DependentWithPublicFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testTooManyInitializerAnnotatedConstructor(org.jboss.jsr299.tck.tests.implementation.simple.definition.tooManyInitializerAnnotatedConstructors.TooManyInitializerAnnotatedConstructorsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNormalScopedUnproxyableBeanThrowsException(org.jboss.jsr299.tck.tests.implementation.simple.lifecycle.unproxyable.UnproxyableManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInjectionOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)
- -   testPassivationOfEjbs(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)
- -   testSpecializedBeanNotInstantiated(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest)
- -   testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)
- -   testSpecializingBeanHasNameOfSpecializedBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)
- -   testInterceptorsDeclaredUsingInterceptorsCalledBeforeInterceptorBinding(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.interceptorOrder.SessionBeanInterceptorOrderTest)
- -   testNonContextualSessionBeanReferenceIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest)
- -   testSessionBeanIsIntercepted(org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.simpleInterception.SessionBeanInterceptorDefinitionTest)
- -   testAnnotationMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.annotation.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testArrayMemberWithoutNonBinding(org.jboss.jsr299.tck.tests.lookup.binding.members.array.BindingAnnotationWithMemberTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDuplicateNamedBeans(org.jboss.jsr299.tck.tests.lookup.byname.duplicateNameResolution.DuplicateNameResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDuplicateBeanNamePrefix(org.jboss.jsr299.tck.tests.lookup.byname.duplicatePrefixResolution.DuplicateNamePrefixResolutionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInjectionPointWithArrayType(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.array.ArrayTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalClass.FinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testClassWithFinalMethodCannotBeProxied(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.finalMethod.FinalMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedBean(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.primitive.UnproxyableTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testClassWithPrivateConstructor(org.jboss.jsr299.tck.tests.lookup.clientProxy.unproxyable.privateConstructor.PrivateConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testELResolverRegisteredWithJsf(org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest/JSFTestPage.jsf
- -   testInitializerCalledAfterFieldInjectionOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)
- -   testInitializerCalledAfterResourceInjection(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)
- -   testPostConstructCalledAfterInitializerOfSuperclass(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionOrderingTest)
- -   testFieldDeclaredInSuperclassIndirectlyInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
- -   testFieldDeclaredInSuperclassInjected(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
- -   testInjectionOnContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
- -   testInjectionOnEJBInterceptor(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
- -   testInjectionOnNonContextualSessionBean(org.jboss.jsr299.tck.tests.lookup.injection.enterprise.SessionBeanInjectionTest)
- -   testInjectionIntoJSFManagedBean(org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest): 500 Internal Server Error for http://127.0.0.1:51857/org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.InjectionIntoNonContextualComponentTest/ManagedBeanTestPage.jsf
- -   testPrimitiveInjectionPointResolvesToNullableWebBean(org.jboss.jsr299.tck.tests.lookup.injection.nullableBean.NullableBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testBeanTypesOnSessionBean(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.EnterpriseResolutionByTypeTest)
- -   testDecoratorNotResolved(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.decorator.DecoratorNotInjectedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
-
-# Issues likely with the deployer itself
-
- -   testPassivationCapableBeanWithNonPassivatingDecoratorBeanConstructorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingBeanConstructor.DecoratorWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testPassivationCapableBeanWithNonPassivatingInitializerInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInitializerMethod.DecoratorWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testPassivationCapableBeanWithNonPassivatingDecoratorInjectedFieldFails(org.jboss.jsr299.tck.tests.context.passivating.broken.decoratorWithNonPassivatingInjectedField.DecoratorWithNonPassivatingInjectedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionBeanWithNonPassivatingBeanConstructorParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptor.EnterpriseBeanWithNonPassivatingBeanConstructorParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionBeanWithNonPassivatingConstructorFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingConstructorFieldInDecorator.EnterpriseBeanWithNonPassivatingFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionBeanWithNonPassivatingInitializerFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerInDecorator.EnterpriseBeanWithNonPassivatingInitializerInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionBeanWithNonPassivatingInitializerParamInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInitializerParameterInInterceptor.EnterpriseBeanWithNonPassivatingInitializerParameterInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionBeanWithNonPassivatingInjectedFieldInDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInDecorator.EnterpriseBeanWithNonPassivatingInjectedFieldInDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionBeanWithNonPassivatingInjectedFieldInInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonPassivatingInjectedFieldInInterceptor.EnterpriseBeanWithNonPassivatingInjectedFieldInInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDependentBeanWithNonSerializableImplementationInStatefulSessionBeanInitializerFails(org.jboss.jsr299.tck.tests.context.passivating.broken.enterpriseBeanWithNonSerializableIntializerMethod.EnterpriseBeanWithNonSerializableIntializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.finalProducerFieldNotPassivationCapable.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingBeanConstructorParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInitializerMethodParameter.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testPassivationCapableBeanWithNonPassivatingInterceptorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.interceptorWithNonPassivatingInjectedField.PassivationCapableBeanWithNonPassivatingInterceptorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testManagedBeanWithNonPassivatingDecoratorFails(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonPassivatingDecorator.ManagedBeanWithNonPassivatingDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testManagedBeanWithNonSerializableInterceptorClassNotOK(org.jboss.jsr299.tck.tests.context.passivating.broken.managedBeanWithNonSerializableInterceptorClass.ManagedBeanWithNonSerializableInterceptorClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSimpleWebBeanWithNonSerializableImplementationClassFails(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableManagedBeanHasPassivatingScope.NonPassivationManagedBeanHasPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonPassivationCapableProducerFieldNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerField.NonPassivationCapableProducerFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonPassivationCapableProducerMethodNotOk(org.jboss.jsr299.tck.tests.context.passivating.broken.nonPassivationCapableProducerMethod.NonPassivationCapableProducerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingBeanConstructor.PassivatingManagedBeanWithNonPassivatingBeanConstructorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInitializerMethod.PassivatingManagedBeanWithNonPassivatingInitializerMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingManagedBeanWithNonPassivatingInjcetedField.PassivatingManagedBeanWithNonPassivatingInjcetedFieldTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails(org.jboss.jsr299.tck.tests.context.passivating.broken.passivatingProducerMethodWithNonPassivatingParameter.PassivatingProducerMethodWithNonPassivatingParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails(org.jboss.jsr299.tck.tests.context.passivating.broken.unserializableSimpleInjectedIntoPassivatingEnterpriseBean.UnserializableSimpleInjectedIntoPassivatingEnterpriseBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testCustomDecoratorDecoratingFinalBean(org.jboss.jsr299.tck.tests.decorators.custom.broken.finalBeanClass.CustomDecoratorMatchingBeanWithFinalClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDecoratorListedTwiceInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.decoratorListedTwiceInBeansXml.DecoratorListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testEnabledDecoratorNotADecoratorTest(org.jboss.jsr299.tck.tests.decorators.definition.broken.enabledDecoratorIsNotDecorator.EnabledDecoratorNotADecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAppliesToFinalManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanClass.FinalBeanClassTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAppliesToFinalMethodOnManagedBeanClass(org.jboss.jsr299.tck.tests.decorators.definition.broken.finalBeanMethod.FinalBeanMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testMultipleDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.multipleDelegateInjectionPoints.MultipleDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNoDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.broken.noDelegateInjectionPoints.NoDelegateInjectionPointsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonDecoratorWithDecoratesAnnotationNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonDecoratorWithDecorates.NonDecoratorWithDecoratesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonExistantDecoratorClassInBeansXmlNotOK(org.jboss.jsr299.tck.tests.decorators.definition.broken.nonExistantClassInBeansXml.NonExistantDecoratorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNotAllDecoratedTypesImplemented(org.jboss.jsr299.tck.tests.decorators.definition.broken.notAllDecoratedTypesImplemented.NotAllDecoratedTypesImplementedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDecoratorDelegateInjectionPoints(org.jboss.jsr299.tck.tests.decorators.definition.inject.broken.delegateProducerMethod.DelegateInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonDependentGenericManagedBeanNotOk(org.jboss.jsr299.tck.tests.definition.bean.genericbroken.GenericManagedBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testTooManyScopesSpecifiedInJava(org.jboss.jsr299.tck.tests.definition.scope.broken.tooManyScopes.TooManyScopesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testStereotypeWithNonEmptyNamed(org.jboss.jsr299.tck.tests.definition.stereotype.broken.nonEmptyNamed.NonEmptyNamedTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testMultipleIncompatibleScopeStereotypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.scopeConflict.IncompatibleStereotypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testStereotypeWithTooManyScopeTypes(org.jboss.jsr299.tck.tests.definition.stereotype.broken.tooManyScopes.TooManyScopeTypesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverDefinitionErrorTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDefinitionError.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverDeploymentProblemTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.addDeploymentProblem.AddDeploymentProblemTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testThrowsException(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.beanDiscoveryMethodThrowsException.BeforeBeanDiscoveryThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverFailureTreatedAsDefinitionError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanDiscoveryObserver.AfterBeanDiscoveryObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverFailureTreatedAsDeploymentError(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.exceptionInAfterBeanValidationObserver.AfterDeploymentValidationObserverExecutionFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDeploymentFailsDuringValidation(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.failsDuringValidation.AfterBeanDiscoveryFailureTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.normalScope.AddingNormalScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAddingScopeType(org.jboss.jsr299.tck.tests.deployment.lifecycle.broken.passivatingScope.AddingPassivatingScopeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAnyAnnotationOnEventInjectionPointWithoutTypeParameterFails(org.jboss.jsr299.tck.tests.event.broken.inject.withoutType.EventInjectionWithoutTypeTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDependentBeanWithConditionalObserverMethodIsDefinitionError(org.jboss.jsr299.tck.tests.event.broken.observer.dependentIsConditionalObserver.DependentIsConditionalObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverMethodWithDisposesParamFails(org.jboss.jsr299.tck.tests.event.broken.observer.isDisposer.ObserverMethodAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverMethodAnnotatedInitializerFails(org.jboss.jsr299.tck.tests.event.broken.observer.isInitializer.ObserverMethodAnnotatedInitialzerTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverMethodAnnotatedProducesFails(org.jboss.jsr299.tck.tests.event.broken.observer.isProducer.ObserverMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverMethodMustHaveOnlyOneEventParameter(org.jboss.jsr299.tck.tests.event.broken.observer.tooManyParameters.ObserverMethodWithTwoEventParametersTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testProcessAnnotatedTypeEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processAnnotatedObserverThrowsException.ProcessAnnotatedTypeEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testProcessInjectionTargetEventThrowsExceptionNotOk(org.jboss.jsr299.tck.tests.extensions.annotated.broken.processInjectionTargetThrowsException.ProcessInjectionTargetEventThrowsExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverRegistersException.AddDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testProcessBeanObserverThrowsException(org.jboss.jsr299.tck.tests.extensions.container.event.broken.processBeanObserverThrowsException.ThrowExceptionInProcessBeanObserverTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAddDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.definitionError.ProcessObserverMethodErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testExceptionIsDefinitionError(org.jboss.jsr299.tck.tests.extensions.observer.broken.exception.ProcessObserverMethodExceptionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAddingDefinitionError(org.jboss.jsr299.tck.tests.extensions.producer.broken.injectionTargetError.InjectionTargetDefinitionErrorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInitializerUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.initializerUnallowed.InitializerUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testMultipleDisposeParameters(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.multiParams.MultipleDisposeParametersDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testObserverParameterUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.observesUnallowed.ObserverParameterUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testProducesUnallowed(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.producesUnallowed.ProducesUnallowedDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testUnresolvedDisposalMethod(org.jboss.jsr299.tck.tests.implementation.disposal.method.definition.broken.unresolvedMethod.UnresolvedDisposalMethodDefinitionTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInitializerMethodAnnotatedProduces(org.jboss.jsr299.tck.tests.implementation.initializer.broken.methodAnnotatedProduces.InitializerMethodAnnotatedProducesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInitializerMethodHasParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInitializerMethodHasParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.initializer.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.field.definition.broken.parameterizedReturnTypeWithWildcard.ParameterizedReturnTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testProducerMethodWithParameterAnnotatedDisposes(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedDisposes.ParameterAnnotatedDisposesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testProducerMethodWithParameterAnnotatedObserves(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterAnnotatedObserves.ParameterAnnotatedObservesTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testParameterizedType(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithTypeParameter2.ParameterizedTypeWithTypeParameterTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testParameterizedReturnTypeWithWildcard(org.jboss.jsr299.tck.tests.implementation.producer.method.broken.parameterizedTypeWithWildcard.ParameterizedTypeWithWildcardTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializedMethodIndirectlyOverridesAnotherProducerMethod(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.indirectOverride.IndirectOverrideTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializedStaticMethod(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializesStaticMethod.SpecializesStaticMethodTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.producer.method.broken.specializingAndSpecializedBeanHaveName.SpecializingAndSpecializedBeanHaveNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInconsistentSpecialization(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.inconsistent.InconsistentSpecializationTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.names.SpecializingAndSpecializedBeanHasNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializingClassImplementsInterfaceAndExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend1.SpecializingBeanImplementsInterfaceOnly): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializingClassDirectlyExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend2.SpecializingBeanExtendsNothingTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSpecializingClassExtendsNonSimpleBean(org.jboss.jsr299.tck.tests.inheritance.specialization.simple.broken.noextend3.SpecializingClassExtendsNonSimpleBeanTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInterceptorCanNotAlsoBeDecorator(org.jboss.jsr299.tck.tests.interceptors.definition.broken.interceptorCanNotBeDecorator.InterceptorCanNotBeDecoratorTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testInterceptorBindingsWithConflictingAnnotationMembersNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.invalidBindingAnnotations.InvalidInterceptorBindingAnnotationsTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonExistantClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonExistantClassInBeansXml.NonExistantClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testNonInterceptorClassInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.nonInterceptorClassInBeansXml.NonInterceptorClassInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSameInterceptorClassListedTwiceInBeansXmlNotOk(org.jboss.jsr299.tck.tests.interceptors.definition.broken.sameClassListedTwiceInBeansXml.SameClassListedTwiceInBeansXmlTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testAmbiguousDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.ambiguous.AmbiguousDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testUnsatisfiedDependency(org.jboss.jsr299.tck.tests.lookup.dependency.resolution.broken.unsatisfied.UnsatisfiedDependencyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testSessionScopedBeanWithInjectionPoint(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.normal.scope.NormalScopedBeanWithInjectionPoint): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testDefinitionErrorDetected(org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testPrimitiveInjectionPointResolvedToNonPrimitiveProducerMethod(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.primitive.PrimitiveInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   testTypeVariableInjectionPoint(org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.broken.type.variable.TypeVariableInjectionPointTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.NoClassWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   test(org.jboss.jsr299.tck.tests.policy.broken.incorrect.name.stereotype.NoAnnotationWithSpecifiedNameTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   test(org.jboss.jsr299.tck.tests.policy.broken.not.policy.stereotype.ClassIsNotPolicyTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
- -   test(org.jboss.jsr299.tck.tests.policy.broken.same.type.twice.SameTypeListedTwiceTest): Expected exception class org.jboss.jsr299.tck.DeploymentFailure but none was thrown
-
-
diff --git a/src/main/jbake/content/dev/configuration-and-assembly.adoc b/src/main/jbake/content/dev/configuration-and-assembly.adoc
new file mode 100644
index 0000000..a159c2f
--- /dev/null
+++ b/src/main/jbake/content/dev/configuration-and-assembly.adoc
@@ -0,0 +1,162 @@
+= Configuration and Assembly
+:jbake-type: page
+:jbake-status: published
+
+Disclaimer that we do tweak and change this code frequently, without notice.
+It is the very heart of OpenEJB.
+To keep things tight and clean, we reserve the right to change it at anytime.
+Do not consider it a stable public API.
+
+== Overview in Code
+
+First a glimpse of how OpenEJB looks internally.
+Here's a test that builds OpenEJB using it's internal API.
+This is somewhat similar to how you might see people constructing Jetty in code.
+All our internal tests look like this.
+
+This usage involves no xml parsing or classpath scanning.
+If you don't give it to OpenEJB, OpenEJB doesn't know about it.
+This is OpenEJB with all the magic stripped away.
+At a high level:
+
+. You build your app in code using the JAXB tree in code and hand it to the `ConfigurationFactory`.
+ .. The `org.apache.openejb.jee` package contains JAXB trees for ejb-jar.xml, beans.xml and all the Java EE deployment descriptors.
+. The `ConfigurationFactory` will produce a fully canonical version of the app called the `Info` tree by:
+ .. Merging all sources of meta-data -- xml and annotations
+ .. Resolving all ejb, persistence unit, datasource and other references
+ .. Validating the app and looking for mistakes
+. The `Info` tree is
+ .. The singular source of information about the application from this point forward.
+ .. Pure data with no smarts or logic of any kind.
+ .. The instruction set of what would be built by the assembler.
+. The `Assembler` will build and start the application exactly as described in the `Info` tree.
+ .. When this step completes, you have a running application.
+ .. Any failures prior to this point require no cleanup.
+Only the assembler builds "live" objects.
+
+An example of what this looks like in code
+
+....
+import javax.ejb.LocalBean;
+import javax.ejb.Stateful;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.SecurityServiceInfo;
+import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.client.LocalInitialContextFactory;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.StatefulBean;
+
+public class StatefulTest extends TestCase {
+
+    @Override
+    protected void setUp() throws Exception {
+
+        System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
+
+        ConfigurationFactory config = new ConfigurationFactory();
+        Assembler assembler = new Assembler();
+
+        assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
+        assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
+
+        EjbJar ejbJar = new EjbJar();
+        ejbJar.addEnterpriseBean(new StatefulBean(MyBean.class));
+
+        assembler.createApplication(config.configureApplication(ejbJar));
+    }
+
+    public void test() throws Exception {
+        InitialContext context = new InitialContext();
+        MyBean myBean = (MyBean) context.lookup("MyBeanLocalBean");
+
+        assertEquals("pan", myBean.echo("nap"));
+    }
+
+    @Stateful
+    @LocalBean
+    public static class MyBean {
+
+        public String echo(String string) {
+            StringBuilder sb = new StringBuilder(string);
+            return sb.reverse().toString();
+        }
+    }
+}
+....
+
+== Logical Overview
+
+Slightly more detailed account of the above.
+Our startup and deploy world is broken into two phases:
+
+. configuration (app.jar \-> AppInfo)  we build up a fully normalized and validated tree.
+Some of the steps are
+ ** read in descriptors
+ ** process annotations filling in the descriptor tree
+ ** validating app compliance
+ ** resolving resource references
+ ** resolving ejb references
+ ** turning the descriptor tree into Info objects for final assembly
+ ** final validation check
+. assembly (AppInfo \-> actual running app)  we assemble a running app as detailed by the AppInfo
+ ** creating classloaders for the application
+ ** creating EntityManagers and EntityManagerFactories
+ ** creating live objects associated with resource-env-refs
+ ** creating deployment (CoreDeploymentInfo) objects for each ejb
+ ** creating the jndi enc of each ejb
+ ** adding method permission objects into the security system (JACC Provider)
+ ** creating transaction policy objects for each ejb
+ ** creating interceptor stacks and bindings for each ejb
+ ** adding ejbs to containers (which may also do things like create pools)
+ ** adding ejbs to the live ContainerSystem registry of ejbs
+ ** adding global jndi entries for each ejb
+
+The listings above aren't necesarrily complete or perfectly ordered, but generally show the nature of the work done in each phase.
+
+=== Configuration Phase
+
+A goal is that nothing gets through configuration and into assembly if it can't actually be built.
+The configuration phase is where we're supposed to wipe away any ambiguity, fully normalize the app, make sure it's internally consistent, spec compliant and generally good to go.
+If it's not, no worries as we actually haven't built anything permanent yet.
+Everything in the configuration phase is temporary.
+If it fails the configuration phase we just issue an error and say "App will not be loaded" and that's it, there's nothing to undo.
+
+=== Info Objects - Data between Configuration and Assembly
+
+The output of the configuration phase is what we call Info objects and the root of that tree is OpenEjbConfiguration.
+These objects are all simple, serializable data types with no methods, no constructors and no code or logic of any kind.
+We even have a test that uses ASM to walk down the Info tree and check that everything is compliant to these strict rules.
+
+All of the aforementioned configuration phase sits behind this info object tree and an interface that produces it:
+
+* org.apache.openejb.assembler.classic.OpenEjbConfiguration
+* org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory
+
+The job of the OpenEjbConfigurationFactory is simply to produce an  OpenEjbConfiguration tree.
+With this simple decoupling when the time comes we can actually support much different styles of use/topologies.
+For example, a cluster scenario.
+We could create an OpenEjbConfigurationFactory implementation that actually pulled the OpenEjbConfiguration from a central store or some sort of configuration server of our creation.
+Perhaps, someday we write an OpenEjbConfigurationFactory implementation to wrap the existing one and look for any changed files.
+If nothing has changed since last boot, we simple deserialize an OpenEjbConfiguration tree saved from a previous boot as a way of reducing startup time on very large apps.
+
+=== Assembly
+
+The assembly phase is where real running things are actually built.
+This process is inherently ingrained in the details on how OpenEJB works internally.
+Keeping it separated from descriptor parsing, validation, resolving, etc.
+keeps the actual "openejb building" code as simple as possible.
+It also allows for some flexibility and change to take place architecturally with less chance of it rippling through the entire system.
+However it's also not so generic (like spring, etc.) that becomes very difficult to get things built in a certain way or in a certain order requiring you to jump through several hoops just to keep the generic system as beautiful as possible.
+It knows all the details on how to build each individual part and in what order to build them.
+
+In OpenEJB, the Assembler is not supposed to be the gem of the project that we keep clean, motivating us to push complex things out into other areas for other people (usually users) to worry about.
+In fact, it's the opposite.
+The runtime system gets top priority on it's architectural needs and the assembler gets last priority.
+If there's something we can do in the Assembler that saves the rest of the system from complexity, we gladly throw the Assembler on that grenade.
+Our philosophy is that you can't make 100% of your system "perfect" all the time and sometime the mess has to go somewhere.
+The assembler is where.
+It's purposely not over architected so that it can continue to serve as a place to take up slack and not make all this stuff harder than it has to be.
diff --git a/src/main/jbake/content/dev/configuration-and-assembly.md b/src/main/jbake/content/dev/configuration-and-assembly.md
deleted file mode 100644
index dd33331..0000000
--- a/src/main/jbake/content/dev/configuration-and-assembly.md
+++ /dev/null
@@ -1,185 +0,0 @@
-Title: Configuration and Assembly
-
-Disclaimer that we do tweak and change this code frequently, without
-notice.  It is the very heart of OpenEJB.  To keep things tight and clean,
-we reserve the right to change it at anytime.  Do not consider it a stable
-public API.
-
-<a name="ConfigurationandAssembly-OverviewinCode"></a>
-# Overview in Code
-
-First a glimpse of how OpenEJB looks internally.  Here's a test that builds
-OpenEJB using it's internal API.  This is somewhat similar to how you might
-see people constructing Jetty in code.	All our internal tests look like
-this.
-
-This usage involves no xml parsing or classpath scanning.  If you don't
-give it to OpenEJB, OpenEJB doesn't know about it.  This is OpenEJB with
-all the magic stripped away.  At a high level:
-
-1. You build your app in code using the JAXB tree in code and hand it to the `ConfigurationFactory`.
-    1. The `org.apache.openejb.jee` package contains JAXB trees for ejb-jar.xml, beans.xml and all the Java EE deployment descriptors.
-1. The `ConfigurationFactory` will produce a fully canonical version of the app called the `Info` tree by:
-    1. Merging all sources of meta-data -- xml and annotations
-    1. Resolving all ejb, persistence unit, datasource and other references
-    1. Validating the app and looking for mistakes
-1. The `Info` tree is
-    1. The singular source of information about the application from this point forward.
-    1. Pure data with no smarts or logic of any kind.
-    1. The instruction set of what would be built by the assembler.
-1. The `Assembler` will build and start the application exactly as described in the `Info` tree.
-    1. When this step completes, you have a running application.
-    1. Any failures prior to this point require no cleanup.  Only the assembler builds "live" objects.
-
-An example of what this looks like in code
-
-    import javax.ejb.LocalBean;
-    import javax.ejb.Stateful;
-    import javax.naming.InitialContext;
-
-    import junit.framework.TestCase;
-    import org.apache.openejb.assembler.classic.Assembler;
-    import org.apache.openejb.assembler.classic.SecurityServiceInfo;
-    import org.apache.openejb.assembler.classic.TransactionServiceInfo;
-    import org.apache.openejb.client.LocalInitialContextFactory;
-    import org.apache.openejb.config.ConfigurationFactory;
-    import org.apache.openejb.jee.EjbJar;
-    import org.apache.openejb.jee.StatefulBean;
-
-    public class StatefulTest extends TestCase {
-
-        @Override
-        protected void setUp() throws Exception {
-
-            System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
-
-            ConfigurationFactory config = new ConfigurationFactory();
-            Assembler assembler = new Assembler();
-
-            assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
-            assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
-
-            EjbJar ejbJar = new EjbJar();
-            ejbJar.addEnterpriseBean(new StatefulBean(MyBean.class));
-
-            assembler.createApplication(config.configureApplication(ejbJar));
-        }
-
-        public void test() throws Exception {
-            InitialContext context = new InitialContext();
-            MyBean myBean = (MyBean) context.lookup("MyBeanLocalBean");
-
-            assertEquals("pan", myBean.echo("nap"));
-        }
-
-        @Stateful
-        @LocalBean
-        public static class MyBean {
-
-            public String echo(String string) {
-                StringBuilder sb = new StringBuilder(string);
-                return sb.reverse().toString();
-            }
-        }
-    }
-
-
-<a name="ConfigurationandAssembly-LogicalOverview"></a>
-# Logical Overview
-
-Slightly more detailed account of the above.  Our startup and deploy world
-is broken into two phases:
-  
-  1. configuration (app.jar -> AppInfo)  we build up a fully normalized and validated tree.  Some of the steps are
-       - read in descriptors
-       - process annotations filling in the descriptor tree
-       - validating app compliance
-       - resolving resource references
-       - resolving ejb references
-       - turning the descriptor tree into Info objects for final assembly
-       - final validation check
-
-  2. assembly (AppInfo -> actual running app)  we assemble a running app as detailed by the AppInfo
-       - creating classloaders for the application
-       - creating EntityManagers and EntityManagerFactories
-       - creating live objects associated with resource-env-refs
-       - creating deployment (CoreDeploymentInfo) objects for each ejb
-       - creating the jndi enc of each ejb
-       - adding method permission objects into the security system (JACC Provider)
-       - creating transaction policy objects for each ejb
-       - creating interceptor stacks and bindings for each ejb
-       - adding ejbs to containers (which may also do things like create pools)
-       - adding ejbs to the live ContainerSystem registry of ejbs
-       - adding global jndi entries for each ejb
-
-
-
-The listings above aren't necesarrily complete or perfectly ordered, but
-generally show the nature of the work done in each phase.  
-
-<a name="ConfigurationandAssembly-ConfigurationPhase"></a>
-## Configuration Phase
-
-A goal is that nothing gets through configuration and into assembly if it
-can't actually be built.  The configuration phase is where we're supposed
-to wipe away any ambiguity, fully normalize the app, make sure it's
-internally consistent, spec compliant and generally good to go.  If it's
-not, no worries as we actually haven't built anything permanent yet. 
-Everything in the configuration phase is temporary.  If it fails the
-configuration phase we just issue an error and say "App will not be loaded"
-and that's it, there's nothing to undo.  
-
-<a name="ConfigurationandAssembly-InfoObjects-DatabetweenConfigurationandAssembly"></a>
-## Info Objects - Data between Configuration and Assembly
-
-The output of the configuration phase is what we call Info objects and the
-root of that tree is OpenEjbConfiguration.  These objects are all simple,
-serializable data types with no methods, no constructors and no code or
-logic of any kind.  We even have a test that uses ASM to walk down the Info
-tree and check that everything is compliant to these strict rules.
-
-All of the aforementioned configuration phase sits behind this info object
-tree and an interface that produces it:
-
- - org.apache.openejb.assembler.classic.OpenEjbConfiguration
- - org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory
-
-The job of the OpenEjbConfigurationFactory is simply to produce an 
-OpenEjbConfiguration tree.  With this simple decoupling when the time comes
-we can actually support much different styles of use/topologies.  For
-example, a cluster scenario.  We could create an
-OpenEjbConfigurationFactory implementation that actually pulled the
-OpenEjbConfiguration from a central store or some sort of configuration
-server of our creation.  Perhaps, someday we write an
-OpenEjbConfigurationFactory implementation to wrap the existing one and
-look for any changed files.  If nothing has changed since last boot, we
-simple deserialize an OpenEjbConfiguration tree saved from a previous boot
-as a way of reducing startup time on very large apps.
-
-<a name="ConfigurationandAssembly-Assembly"></a>
-## Assembly
-
-The assembly phase is where real running things are actually built.  This
-process is inherently ingrained in the details on how OpenEJB works
-internally.  Keeping it separated from descriptor parsing, validation,
-resolving, etc. keeps the actual "openejb building" code as simple as
-possible.  It also allows for some flexibility and change to take place
-architecturally with less chance of it rippling through the entire system. 
-However it's also not so generic (like spring, etc.) that becomes very
-difficult to get things built in a certain way or in a certain order
-requiring you to jump through several hoops just to keep the generic system
-as beautiful as possible.  It knows all the details on how to build each
-individual part and in what order to build them. 
-
-In OpenEJB, the Assembler is not supposed to be the gem of the project that
-we keep clean, motivating us to push complex things out into other areas
-for other people (usually users) to worry about.  In fact, it's the
-opposite.  The runtime system gets top priority on it's architectural needs
-and the assembler gets last priority.  If there's something we can do in
-the Assembler that saves the rest of the system from complexity, we gladly
-throw the Assembler on that grenade.  Our philosophy is that you can't make
-100% of your system "perfect" all the time and sometime the mess has to go
-somewhere.  The assembler is where.  It's purposely not over architected so
-that it can continue to serve as a place to take up slack and not make all
-this stuff harder than it has to be.
-
diff --git a/src/main/jbake/content/dev/contribution-tips.adoc b/src/main/jbake/content/dev/contribution-tips.adoc
new file mode 100644
index 0000000..18dab88
--- /dev/null
+++ b/src/main/jbake/content/dev/contribution-tips.adoc
@@ -0,0 +1,181 @@
+= Contribution Tips
+:jbake-type: page
+:jbake-status: published
+
+== First steps
+
+. Subscribe to the link:mailto:dev-subscribe@tomee.apache.org[developer mailing list] and say Hi
+. Get the source code with svn
+ ** svn https://svn.apache.org/repos/asf/tomee/tomee/trunk
+. Build the code (maven 3.0.5 or better required)
+ ** mvn clean install
+
+Play around with the examples under the examples/ directory.
+Some of the neater ones are (ordered simple to complex):
+
+* xref:{examples-vc}::simple-stateless.adoc[simple-stateless]
+* xref:{examples-vc}::simple-stateful.adoc[simple-stateful]
+* xref:{examples-vc}::simple-singleton.adoc[simple-singleton]
+* xref:{examples-vc}::simple-mdb.adoc[simple-mdb]
+* xref:{examples-vc}::async-methods.adoc[async-methods]
+* xref:{examples-vc}::schedule-methods.adoc[schedule-methods]
+* xref:{examples-vc}::injection-of-env-entry.adoc[injection-of-env-entry]
+* xref:{examples-vc}::injection-of-ejbs.adoc[injection-of-ejbs]
+* xref:{examples-vc}::injection-of-datasource.adoc[injection-of-datasource]
+* xref:{examples-vc}::injection-of-entitymanager.adoc[injection-of-entitymanager]
+* xref:{examples-vc}::testcase-injection.adoc[testcase-injection]
+* xref:{examples-vc}::testing-transactions.adoc[testing-transactions]
+* xref:{examples-vc}::transaction-rollback.adoc[transaction-rollback]
+* xref:{examples-vc}::testing-security.adoc[testing-security]
+* xref:{examples-vc}::testing-security-2.adoc[testing-security-2]
+* xref:{examples-vc}::simple-webservice.adoc[simple-webservice]
+
+== What is the process?
+
+....
+public void contributeToOpenSource() {
+
+    boolean stillInterestedAndHavingFun = true;
+    int taskSize = 1; // start small!
+
+    contributing:
+    while (stillInterestedAndHavingFun) {
+
+        Task task = findSomethingInteresting(taskSize++);
+
+        if (!task.hasJira()) {
+            createJira(task);
+        } else {
+            requestToBeAssignedToJira(task.jiraId());
+        }
+
+        while (task.inProgress()) {
+
+            chatOnListALittleGetCleverIdeas(task, new Ideas(task));
+            hackALittle(task);
+
+            if (task.tooHard() || task.notFun()) {
+                // no big deal, try again with something else
+                taskSize--;
+                continue contributing;
+            }
+        }
+
+        File patchFile = createSvnOrGitPatch(task);
+        attachToJira(task.jiraId(), patchFile);
+        askForReviewOnList(task.jiraId());
+
+        while (!committed(patchFile)) {
+
+            try {
+                pokeAtSometingElse();
+                helpOnUserList();
+                dayDream();
+            } catch (MoreThanAWeekException e) {
+                // Assume it fell off the radar -- happens.
+                // Evidence we need more committers.
+                bumpThreadOnList(task);
+            }
+        }
+    }
+
+}
+....
+
+After a while when people feel comfortable with you as contributor, they vote you in as a committer and ...
+big surprise ...
+there's almost no change in the daily routine.
+You get access to svn and pretty much everything else stays the same.
+Instead of submitting patches, now you have to help review them and commit them.
+Instead of learning how to contribute to an open source project, now you have to learn how to help others get involved.
+And of course it doesn't happen all at once, you never stop learning these things and you never stop wishing you had more time.
+
+No one cares how much code you can write or how fast you can write it.
+We all just contribute what we can when we can and there are no expectations on how much, how often, or where.
+
+It's very much about the journey and there is no real end as long as you're having fun and learning.
+
+Probably finding something to do when you do have time is the hardest part ...
+that never changes.
+
+== Be Brave
+
+Don't assume everything has already been discussed a million times and you're the only one who doesn't know and so you shouldn't bother anyone and should just figure it out on your own.
+That thinking is your enemy.
+Don't do that or you will get nowhere ...
+very slowly.
+So slowly that now you feel you really can't ask about it because surely everyone assumes you know it or have done it by now.
+That thinking is a terrible trap.
+Ask questions.
+Post your thoughts.
+
+Don't worry about asking "stupid" questions on the list -- even simple questions have great value.
+They often lead to surprisingly good discussions.
+They also have a profound impact on the people around you, the ones you don't see.
+
+There are always a handful of people silently reading the list and wishing they could participate, but are less brave.
+Whenever someone like you finally does show up and asks basic questions and shows it's ok, we usually get another 1 or 2 new faces who suddenly find the courage to speak up.
+
+Maybe it's like Karaoke;
+if the people singing sound like you when you sing, there are better odds you might get up and sign too.
+Seeing people like yourself do the things you want to do is inspiring.
+
+== Start Small
+
+You may suddenly get a creative surge and see many many things that could be done.
+One thing you learn about open source is that you never know when life is going to intervene and you have to stop.
+So it's always really good to get a little tiny thing working, checked in, and just grow it iteratively as time permits.
+It is a practice that is key for people of any skill level.
+And it goes wonderfully with Open Source as it adds plenty of space for new ideas.
+Stone soup starts with the stone, not the soup!
+
+So no matter how big the idea or task, ask yourself "do I really need all of this to get started?".
+Start with the tiniest possible version.
+And then cut it down again :)
+
+Code is easier to grow than change.
+And with today's refactoring tools even change is pretty easy.
+What's hard is taking a big piece of code and jamming it into another big piece of code.
+Don't work too long in isolation.
+
+Start small, get it checked in (or patch submitted) and work iteratively.
+
+== Things that always need doing
+
+* Final variables & fields are preferred where possible, but a lot of the code is old.
+Feel free to add them and hand the code back.
+* If you have any skills with code coverage tools, then you'll probably find way too much to do!
+Tests are always welcome.
+* There are over a 1,000 TODO comments in the code.
+Maybe some should be deleted.
+Maybe some could be completed.
+They probably all should have a JIRA id on them.
+* Pick a random class, see if you can figure out what it is doing and javadoc it.
+* Add @Override where applicable
+* Intellij has an 'Inspect Code' feature.
+Yikes does it produce a lot of output.
+* No doubt there is some exception handling that can be greatly improved.
+
+Obviously, one could get quite bored doing just the above.
+But sometimes the above tasks can lead to more fun and exciting things.
+Anything that gets you in and looking at code and actually touching and changing it usually results in questions, discussions and ideas...
+then little passions and late nights and lack of sleep and caffeine abuse.
+
+== Things to avoid
+
+=== Huge patches
+
+Huge patches are hard to digest.
+Try to avoid them whenever possible.
+Any step forward is a good one.
+Small steps allow people to see where you're headed and give input.
+That's true regardless if you are a committer or contributor.
+
+=== Be careful with reformatting
+
+Try to never mix logic changes with code reformatting.
+It makes it nearly impossible for others to see what the actual change was.
+
+* If you are a committer and want to reformat something, do the reformat as a separate commit before or after the real change.
+As long as they are separate and clearly marked it should be easy for people to see what is going on.
+* If you are a contributor and want to reformat something, maybe suggest it on the list, but avoid submitting patches that are just reformatting.
diff --git a/src/main/jbake/content/dev/contribution-tips.md b/src/main/jbake/content/dev/contribution-tips.md
deleted file mode 100644
index a2435ef..0000000
--- a/src/main/jbake/content/dev/contribution-tips.md
+++ /dev/null
@@ -1,201 +0,0 @@
-Title: Contribution Tips
-
-<a name="ContributionTips-Firststeps"></a>
-# First steps
-
-1. Subscribe to the [developer mailing list](mailto:dev-subscribe@tomee.apache.org)
-   and say Hi
-1. Get the source code with svn
-    - svn https://svn.apache.org/repos/asf/tomee/tomee/trunk
-1. Build the code (maven 3.0.5 or better required)
-    - mvn clean install
-
-Play around with the examples under the examples/ directory.  Some of the
-neater ones are (ordered simple to complex):
-
- -  [simple-stateless](http://tomee.apache.org/examples-trunk/simple-stateless/README.html)
- -  [simple-stateful](http://tomee.apache.org/examples-trunk/simple-stateful/README.html)
- -  [simple-singleton](http://tomee.apache.org/examples-trunk/simple-singleton/README.html)
- -  [simple-mdb](http://tomee.apache.org/examples-trunk/simple-mdb/README.html)
- -  [async-methods](http://tomee.apache.org/examples-trunk/async-methods/README.html)
- -  [schedule-methods](http://tomee.apache.org/examples-trunk/schedule-methods/README.html)
- -  [injection-of-env-entry](http://tomee.apache.org/examples-trunk/injection-of/README.html)
- -  [injection-of-ejbs](http://tomee.apache.org/examples-trunk/injection-of/README.html)
- -  [injection-of-datasource](http://tomee.apache.org/examples-trunk/injection-of-datasource/README.html)
- -  [injection-of-entitymanager](http://tomee.apache.org/examples-trunk/injection-of-entitymanager/README.html)
- -  [testcase-injection](http://tomee.apache.org/examples-trunk/testcase-injection/README.html)
- -  [testing-transactions](http://tomee.apache.org/examples-trunk/testing-transactions/README.html)
- -  [transaction-rollback](http://tomee.apache.org/examples-trunk/transaction-rollback/README.html)
- -  [testing-security](http://tomee.apache.org/examples-trunk/testing-security/README.html)
- -  [testing-security-2](http://tomee.apache.org/examples-trunk/testing-security-2/README.html)
- -  [simple-webservice](http://tomee.apache.org/examples-trunk/simple-webservice/README.html)
-
-
-<a name="ContributionTips-Whatistheprocess?"></a>
-# What is the process?
-
-    public void contributeToOpenSource() {
-
-        boolean stillInterestedAndHavingFun = true;
-        int taskSize = 1; // start small!
-
-        contributing:
-        while (stillInterestedAndHavingFun) {
-
-            Task task = findSomethingInteresting(taskSize++);
-
-            if (!task.hasJira()) {
-                createJira(task);
-            } else {
-                requestToBeAssignedToJira(task.jiraId());
-            }
-
-            while (task.inProgress()) {
-
-                chatOnListALittleGetCleverIdeas(task, new Ideas(task));
-                hackALittle(task);
-
-                if (task.tooHard() || task.notFun()) {
-                    // no big deal, try again with something else
-                    taskSize--;
-                    continue contributing;
-                }
-            }
-
-            File patchFile = createSvnOrGitPatch(task);
-            attachToJira(task.jiraId(), patchFile);
-            askForReviewOnList(task.jiraId());
-
-            while (!committed(patchFile)) {
-
-                try {
-                    pokeAtSometingElse();
-                    helpOnUserList();
-                    dayDream();
-                } catch (MoreThanAWeekException e) {
-                    // Assume it fell off the radar -- happens.
-                    // Evidence we need more committers.
-                    bumpThreadOnList(task);
-                }
-            }
-        }
-
-    }
-
-
-After a while when people feel comfortable with you as contributor, they
-vote you in as a committer and ... big surprise ... there's almost no
-change in the daily routine.  You get access to svn and pretty much
-everything else stays the same.  Instead of submitting patches, now you
-have to help review them and commit them.  Instead of learning how to
-contribute to an open source project, now you have to learn how to help
-others get involved.  And of course it doesn't happen all at once, you
-never stop learning these things and you never stop wishing you had more
-time.
-
-No one cares how much code you can write or how fast you can write it.	We
-all just contribute what we can when we can and there are no expectations
-on how much, how often, or where.
-
-It's very much about the journey and there is no real end as long as you're
-having fun and learning.
-
-Probably finding something to do when you do have time is the hardest part
-... that never changes.
-
-<a name="ContributionTips-BeBrave"></a>
-# Be Brave
-
-Don't assume everything has already been discussed a million times and
-you're the only one who doesn't know and so you shouldn't bother anyone and
-should just figure it out on your own.	That thinking is your enemy.  Don't
-do that or you will get nowhere ... very slowly.  So slowly that now you
-feel you really can't ask about it because surely everyone assumes you know
-it or have done it by now.  That thinking is a terrible trap.  Ask
-questions.  Post your thoughts.
-
-Don't worry about asking "stupid" questions on the list -- even simple
-questions have great value.  They often lead to surprisingly good
-discussions.  They also have a profound impact on the people around you,
-the ones you don't see.
-
-There are always a handful of people silently reading the list and wishing
-they could participate, but are less brave.  Whenever someone like you
-finally does show up and asks basic questions and shows it's ok, we usually
-get another 1 or 2 new faces who suddenly find the courage to speak up.
-
-Maybe it's like Karaoke; if the people singing sound like you when you
-sing, there are better odds you might get up and sign too. Seeing people
-like yourself do the things you want to do is inspiring.
-
-<a name="ContributionTips-StartSmall"></a>
-# Start Small
-
-You may suddenly get a creative surge and see many many things that could
-be done.  One thing you learn about open source is that you never know when
-life is going to intervene and you have to stop.  So it's always really
-good to get a little tiny thing working, checked in, and just grow it
-iteratively as time permits.  It is a practice that is key for people of
-any skill level.  And it goes wonderfully with Open Source as it adds
-plenty of space for new ideas.	Stone soup starts with the stone, not the
-soup!
-
-So no matter how big the idea or task, ask yourself "do I really need all
-of this to get started?".  Start with the tiniest possible version.  And
-then cut it down again :)
-
-Code is easier to grow than change.  And with today's refactoring tools
-even change is pretty easy.  What's hard is taking a big piece of code and
-jamming it into another big piece of code.  Don't work too long in
-isolation.
-
-Start small, get it checked in (or patch submitted) and work iteratively.
-
-<a name="ContributionTips-Thingsthatalwaysneeddoing"></a>
-# Things that always need doing
-
- - Final variables & fields are preferred where possible, but a lot of the
-code is old.  Feel free to add them and hand the code back.
- - If you have any skills with code coverage tools, then you'll probably
-find way too much to do!  Tests are always welcome.
- - There are over a 1,000 TODO comments in the code.  Maybe some should be
-deleted.  Maybe some could be completed.  They probably all should have a
-JIRA id on them.
- - Pick a random class, see if you can figure out what it is doing and
-javadoc it.
- - Add @Override where applicable
- - Intellij has an 'Inspect Code' feature.  Yikes does it produce a lot of
-output.
- - No doubt there is some exception handling that can be greatly improved.
-
-Obviously, one could get quite bored doing just the above.  But sometimes
-the above tasks can lead to more fun and exciting things.  Anything that
-gets you in and looking at code and actually touching and changing it
-usually results in questions, discussions and ideas... then little passions
-and late nights and lack of sleep and caffeine abuse.
-
-
-<a name="ContributionTips-Thingstoavoid"></a>
-# Things to avoid
-
-<a name="ContributionTips-Hugepatches"></a>
-#### Huge patches
-
-Huge patches are hard to digest.  Try to avoid them whenever possible.	Any
-step forward is a good one.  Small steps allow people to see where you're
-headed and give input.	That's true regardless if you are a committer or
-contributor.
-
-<a name="ContributionTips-Becarefulwithreformatting"></a>
-#### Be careful with reformatting
-
-Try to never mix logic changes with code reformatting.	It makes it nearly
-impossible for others to see what the actual change was.
-
- - If you are a committer and want to reformat something, do the reformat
-as a separate commit before or after the real change.  As long as they are
-separate and clearly marked it should be easy for people to see what is
-going on.
- - If you are a contributor and want to reformat something, maybe suggest
-it on the list, but avoid submitting patches that are just reformatting.
-
diff --git a/src/main/jbake/content/dev/creating-itests.adoc b/src/main/jbake/content/dev/creating-itests.adoc
new file mode 100644
index 0000000..fc22738
--- /dev/null
+++ b/src/main/jbake/content/dev/creating-itests.adoc
@@ -0,0 +1,153 @@
+= Creating itests
+:jbake-type: page
+:jbake-status: published
+
+== OpenEJB itests
+
+The OpenEJB itests module is a framework to create EJB test cases that are designed according to the JUnit rules, i.e.
+they all have setUp, tests and tearDown methods.
+Since it's JUnit-based, you can do whatever you could do in JUnit.
+
+This page describes the steps to create EJB test cases.
+
+=== How itests work
+
+The itests module lives in OpenEJB's repository in the _modules\itests_ directory.
+Setting up the test environment to execute the itests is based on (http://svn.apache.org/repos/asf/maven/maven-1/plugins-sandbox/trunk/itest/[maven-itest-plugin-1.0 plugin] ).
+
+Take a look at maven.xml in modules\itests directory.
+There you'll see that the default goal is _ejb:install_, which in turn executes _itest_.
+When the EJBs (todo: describe it a bit more) are done, the _itest:setup_ goal is executed, which starts the real game.
+First, _org/openejb/Security_ configuration is started.
+Once it's done, _openejb-itests-xxx.jar_ is deployed, which is _org/openejb/Itests_ configuration to be started, afterwards.
+When the configurations are deployed and started, the maven-itest-plugin executes junit (see http://ant.apache.org/manual/OptionalTasks/junit.html[Ant JUnit task documentation]  and project.properties of the itests module).
+The project.properties file configures which itests are run and some other stuff.
+
+The first itest test case is _org.openejb.test.entity.cmp.CmpTestSuite_.
+Consult this for more information.
+Then the others defined in _maven.itest.includes_ property are executed.
+
+The order in which the itests are executed is important, so the first order is set up via the maven.itest.includes property, then the test suites add their tests in some order, and finally the method names in the test classes put yet another order.
+So, be careful what name your test method name will become.
+It may influence the order.
+
+Some EJBs access database resources.
+It's even more important for CMPs.
+The itests module uses the database as defined in the _openejb.test.database_ property.
+It's currently defined in the _project.properties_ file of the module.
+You can change its value to whatever you wish using the Maven property setting approaches (-D on the command line, project.properties, build.properties in your home directory or the project you work in).
+
+So, the last important information is how the junit tests access the server resources - EJBs.
+It's done via executing session beans that in turn get at the test EJBs, mostly CMPs.
+It's also possible that the CMP itests will be accessed directly without having to pass on the call through a session bean.
+
+If itests are part of a larger project structure you can disable executing it using the _maven.itest.skip_ property.
+Set it to _true_ and Maven won't run the itests.
+
+=== Simple CMP 2.1 itest
+
+==== Database setup
+
+The itests default database is Derby.
+The class - _org.openejb.test.DerbyTestDatabase_ - is instantiated upon executing _org.openejb.testTestManager.getDatabase()_ in each test case's _setUp()_ method.
+Remember, you can define any other database using the _openejb.test.database_ property or do initialization of your own database choice in the setUp() method.
+
+The current implementation of database initialization is based on two DerbyTestDatabse methods: _createCMP2Model()_ and _dropCMP2Model()_ that create and drop database structure, accordingly.
+
+==== CMP 2.1 deployment
+
+{info:title=Information} Unless specified, all directories are relative to _modules/itests_ directory and commands are executed in it.
+\{info}
+
+A Maven project can produce one build artefact.
+It's very important to keep in mind whenever your tests are to be based on a EJB that's not built by default.
+The default EJBs are defined in _modules/itests/src/ejb/META-INF/ejb-jar.xml_.
+The corresponding deployment plan - the _openejb-jar.xml_ file is in _modules/itests/src/ejb/META-INF/openejb-jar.xml_.
+
+If you want to test your own EJB, you need to build it yourself, i.e.
+describe the build and deployment in _modules/itests/maven.xml_ in the pregoal of _itest:setup_.
+
+In the following example, Ant's jar builds openejb-cmp2-petstore.jar file, which in turn is distributed and started in Geronimo.
+The _id_ attribute of _deploy:start_ is as specified in the module's deployment plan.
+See http://wiki.apache.org/geronimo/Deployment[Geronimo Deployment]  for more information about Geronimo deployment plans.
+
+ <ant:jar destfile="${basedir}/target/openejb-cmp2-petstore.jar">
+   <fileset dir="${basedir}/target/classes">
+     <include name="**/cmp2/petstore/*.class"/>
+     <include name="**/TestFailureException.class"/>
+   </fileset>
+   <metainf dir="${basedir}/src/cmp2/petstore" includes="*.xml"/>
+ </ant:jar>
+ <deploy:distribute
+   uri="deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector"
+   username="system"
+   password="manager"
+   module="${basedir}/target/openejb-cmp2-petstore.jar"
+ />
+ <deploy:start
+   uri="deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector"
+   username="system"
+   password="manager"
+   id="org/openejb/cmp2/petstore"/>
+
+==== Execution
+
+When EJB classes, deployment descriptor and plan, maven.xml are all set up, it's time to execute your tests.
+In order to run itests you will run Maven in _modules/itests_ directory.
+
+ ~/openejb/modules/itests
+ $ maven
+
+It's also possible to override project properties and run only some test cases.
+
+ ~/openejb/modules/itests
+ $ maven -Dmaven.itest.includes=**/Cmp2TestSuite.java
+
+When a failure occurs, you should take a look at the result file of the failed test suite in _target/itest-reports_, e.g.
+
+....
+~/openejb/modules/itests
+$ maven -Dmaven.itest.includes=**/Cmp2TestSuite.java -o
+...
+ [junit]  Tests run: 113, Failures: 1, Errors: 0, Time elapsed: 22,132 sec
+ [junit]  [ERROR]  TEST org.openejb.test.entity.cmp2.Cmp2TestSuite FAILED
+...
+BUILD FAILED
+File...... C:\Documents and Settings\root\.maven\cache\maven-itest-plugin-1.0\plugin.jelly
+Element... fail
+Line...... 166
+Column.... 64
+There were test failures.
+Total time: 2 minutes 3 seconds
+Finished at: Sun Jul 17 17:48:36 CEST 2005
+
+$ more target/itest-reports/TEST-org.openejb.test.entity.cmp2.Cmp2TestSuite.txt
+Testsuite: org.openejb.test.entity.cmp2.Cmp2TestSuite
+Tests run: 113, Failures: 1, Errors: 0, Time elapsed: 22,132 sec
+
+Testcase: PetstoreTests.create: FAILED
+Received Exception class java.lang.NullPointerException : null
+junit.framework.AssertionFailedError: Received Exception class java.lang.NullPointerException : null
+	at org.openejb.test.entity.cmp2.PetstoreTests.test01_create(PetstoreTests.java:84)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+	at org.openejb.test.NumberedTestCase.runTestMethod(NumberedTestCase.java:195)
+	at org.openejb.test.NumberedTestCase$3.protect(NumberedTestCase.java:169)
+	at org.openejb.test.NumberedTestCase.run(NumberedTestCase.java:172)
+	at org.openejb.test.NumberedTestCase.run(NumberedTestCase.java:141)
+	at org.openejb.test.TestSuite.run(TestSuite.java:71)
+...
+....
+
+Complete execution log is in _target/openejb/var/log/openejb.log_ of the itests module.
+
+===== Running the Tests in Eclipse.
+
+The steps for running the iTests inside of Eclipse are given below.
+They are
+
+1) For Local Interface Tests, the class to be run is _org.apache.openejb.iTest_.
+2) For Remote Interface Tests, the class to be run is _org.apache.openejb.RemoteiTest_.
+
+In both the cases you need to give _'-Dopenejb.home=target/test-classes/'_ as a vm argument  for the tests to run.
diff --git a/src/main/jbake/content/dev/creating-itests.md b/src/main/jbake/content/dev/creating-itests.md
deleted file mode 100644
index 0bbbef8..0000000
--- a/src/main/jbake/content/dev/creating-itests.md
+++ /dev/null
@@ -1,203 +0,0 @@
-Title: Creating itests
-<a name="Creatingitests-OpenEJBitests"></a>
-# OpenEJB itests
-
-The OpenEJB itests module is a framework to create EJB test cases that are
-designed according to the JUnit rules, i.e. they all have setUp, tests and
-tearDown methods. Since it's JUnit-based, you can do whatever you could do
-in JUnit.
-
-This page describes the steps to create EJB test cases.
-
-<a name="Creatingitests-Howitestswork"></a>
-## How itests work
-
-The itests module lives in OpenEJB's repository in the _modules\itests_ directory. Setting up the test environment to execute the itests is based on ([maven-itest-plugin-1.0 plugin](http://svn.apache.org/repos/asf/maven/maven-1/plugins-sandbox/trunk/itest/)
-). 
-
-Take a look at maven.xml in modules\itests directory. There you'll see that
-the default goal is _ejb:install_, which in turn executes _itest_. When the
-EJBs (todo: describe it a bit more) are done, the _itest:setup_ goal is
-executed, which starts the real game. First, _org/openejb/Security_
-configuration is started. Once it's done, _openejb-itests-xxx.jar_ is
-deployed, which is _org/openejb/Itests_ configuration to be started,
-afterwards. When the configurations are deployed and started, the
-maven-itest-plugin executes junit (see [Ant JUnit task documentation](http://ant.apache.org/manual/OptionalTasks/junit.html)
- and project.properties of the itests module). The project.properties file
-configures which itests are run and some other stuff.
-
-The first itest test case is _org.openejb.test.entity.cmp.CmpTestSuite_.
-Consult this for more information. Then the others defined in
-_maven.itest.includes_ property are executed.
-
-The order in which the itests are executed is important, so the first order
-is set up via the maven.itest.includes property, then the test suites add
-their tests in some order, and finally the method names in the test classes
-put yet another order. So, be careful what name your test method name will
-become. It may influence the order.
-
-Some EJBs access database resources. It's even more important for CMPs. The
-itests module uses the database as defined in the _openejb.test.database_
-property. It's currently defined in the _project.properties_ file of the
-module. You can change its value to whatever you wish using the Maven
-property setting approaches (-D on the command line, project.properties,
-build.properties in your home directory or the project you work in).
-
-So, the last important information is how the junit tests access the server
-resources - EJBs. It's done via executing session beans that in turn get at
-the test EJBs, mostly CMPs. It's also possible that the CMP itests will be
-accessed directly without having to pass on the call through a session
-bean.
-
-If itests are part of a larger project structure you can disable executing
-it using the _maven.itest.skip_ property. Set it to _true_ and Maven won't
-run the itests.
-
-<a name="Creatingitests-SimpleCMP2.1itest"></a>
-## Simple CMP 2.1 itest
-
-<a name="Creatingitests-Databasesetup"></a>
-### Database setup
-
-The itests default database is Derby. The class -
-_org.openejb.test.DerbyTestDatabase_ - is instantiated upon executing
-_org.openejb.testTestManager.getDatabase()_ in each test case's _setUp()_
-method. Remember, you can define any other database using the
-_openejb.test.database_ property or do initialization of your own database
-choice in the setUp() method.
-
-The current implementation of database initialization is based on two
-DerbyTestDatabse methods: _createCMP2Model()_ and _dropCMP2Model()_ that
-create and drop database structure, accordingly.
-
-<a name="Creatingitests-CMP2.1deployment"></a>
-### CMP 2.1 deployment
-
-{info:title=Information}
-Unless specified, all directories are relative to _modules/itests_
-directory and commands are executed in it.
-{info}
-
-A Maven project can produce one build artefact. It's very important to keep
-in mind whenever your tests are to be based on a EJB that's not built by
-default. The default EJBs are defined in
-_modules/itests/src/ejb/META-INF/ejb-jar.xml_. The corresponding deployment
-plan - the _openejb-jar.xml_ file is in
-_modules/itests/src/ejb/META-INF/openejb-jar.xml_.
-
-If you want to test your own EJB, you need to build it yourself, i.e.
-describe the build and deployment in _modules/itests/maven.xml_ in the
-pregoal of _itest:setup_.
-
-In the following example, Ant's jar builds openejb-cmp2-petstore.jar file,
-which in turn is distributed and started in Geronimo. The _id_ attribute of
-_deploy:start_ is as specified in the module's deployment plan. See [Geronimo Deployment](http://wiki.apache.org/geronimo/Deployment)
- for more information about Geronimo deployment plans.
-
-
-    <ant:jar destfile="${basedir}/target/openejb-cmp2-petstore.jar">
-      <fileset dir="${basedir}/target/classes">
-        <include name="**/cmp2/petstore/*.class"/>
-        <include name="**/TestFailureException.class"/>
-      </fileset>
-      <metainf dir="${basedir}/src/cmp2/petstore" includes="*.xml"/>
-    </ant:jar>
-    <deploy:distribute
-      uri="deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector"
-      username="system"
-      password="manager"
-      module="${basedir}/target/openejb-cmp2-petstore.jar"
-    />
-    <deploy:start
-      uri="deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector"
-      username="system"
-      password="manager"
-      id="org/openejb/cmp2/petstore"/>
-
-
-<a name="Creatingitests-Execution"></a>
-### Execution
-
-When EJB classes, deployment descriptor and plan, maven.xml are all set up,
-it's time to execute your tests. In order to run itests you will run Maven
-in _modules/itests_ directory.
-
-
-    ~/openejb/modules/itests
-    $ maven
-
-
-It's also possible to override project properties and run only some test
-cases.
-
-
-    ~/openejb/modules/itests
-    $ maven -Dmaven.itest.includes=**/Cmp2TestSuite.java
-
-
-When a failure occurs, you should take a look at the result file of the
-failed test suite in _target/itest-reports_, e.g.
-
-
-    ~/openejb/modules/itests
-    $ maven -Dmaven.itest.includes=**/Cmp2TestSuite.java -o
-    ...
-     [junit]
- Tests run: 113, Failures: 1, Errors: 0, Time elapsed: 22,132 sec
-     [junit]
- [ERROR]
- TEST org.openejb.test.entity.cmp2.Cmp2TestSuite FAILED
-    ...
-    BUILD FAILED
-    File...... C:\Documents and
-Settings\root\.maven\cache\maven-itest-plugin-1.0\plugin.jelly
-    Element... fail
-    Line...... 166
-    Column.... 64
-    There were test failures.
-    Total time: 2 minutes 3 seconds
-    Finished at: Sun Jul 17 17:48:36 CEST 2005
-    
-    $ more
-target/itest-reports/TEST-org.openejb.test.entity.cmp2.Cmp2TestSuite.txt
-    Testsuite: org.openejb.test.entity.cmp2.Cmp2TestSuite
-    Tests run: 113, Failures: 1, Errors: 0, Time elapsed: 22,132 sec
-    
-    Testcase: PetstoreTests.create: FAILED
-    Received Exception class java.lang.NullPointerException : null
-    junit.framework.AssertionFailedError: Received Exception class
-java.lang.NullPointerException : null
-    	at
-org.openejb.test.entity.cmp2.PetstoreTests.test01_create(PetstoreTests.java:84)
-    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-    	at
-sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
-    	at
-sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
-    	at
-org.openejb.test.NumberedTestCase.runTestMethod(NumberedTestCase.java:195)
-    	at
-org.openejb.test.NumberedTestCase$3.protect(NumberedTestCase.java:169)
-    	at org.openejb.test.NumberedTestCase.run(NumberedTestCase.java:172)
-    	at org.openejb.test.NumberedTestCase.run(NumberedTestCase.java:141)
-    	at org.openejb.test.TestSuite.run(TestSuite.java:71)
-    ...
-
-
-Complete execution log is in _target/openejb/var/log/openejb.log_ of the
-itests module.
-
-<a name="Creatingitests-RunningtheTestsinEclipse."></a>
-#### Running the Tests in Eclipse.
-
-The steps for running the iTests inside of Eclipse are given below. They
-are
-
-1) For Local Interface Tests, the class to be run is
-_org.apache.openejb.iTest_.
-2) For Remote Interface Tests, the class to be run is
-_org.apache.openejb.RemoteiTest_.
-
-In both the cases you need to give _'-Dopenejb.home=target/test-classes/'_
-as a vm argument 
-for the tests to run. 
diff --git a/src/main/jbake/content/dev/design-application-server.adoc b/src/main/jbake/content/dev/design-application-server.adoc
new file mode 100644
index 0000000..e2ce9b9
--- /dev/null
+++ b/src/main/jbake/content/dev/design-application-server.adoc
@@ -0,0 +1,38 @@
+= Design - Application Server
+:jbake-type: page
+:jbake-status: published
+
+== Application Server
+
+Sub-component of xref:design.adoc[OpenEJB]
+
+
+== Definition
+
+Any component wishing to serve or deliver Enterprise JavaBeans.
+
+
+== Also Known As
+
+* Server Adapter
+* Server Provider
+
+
+== Responsibilities
+
+* Remote client access to OpenEJB
+* Implement the bean's remote and home interfaces.
+* Distribute its implementation of the remote and home interfaces.
+* Provide clients with a JNDI name space for looking up beans.
+* Delegate method invocations to the container.
+
+
+== Related Classes
+
+* org.apache.openejb.spi.ApplicationServer
+
+
+== Implementations
+
+* xref:design-local-server.adoc[Local Server]
+* xref:design-remote-server.adoc[Remote Server]
diff --git a/src/main/jbake/content/dev/design-application-server.md b/src/main/jbake/content/dev/design-application-server.md
deleted file mode 100644
index 62f367c..0000000
--- a/src/main/jbake/content/dev/design-application-server.md
+++ /dev/null
@@ -1,33 +0,0 @@
-Title: Design - Application Server
-<a name="Design-ApplicationServer-ApplicationServer"></a>
-## Application Server
-
-Sub-component of [OpenEJB](design.html)
-
-
-<a name="Design-ApplicationServer-Definition"></a>
-## Definition
-
-Any component wishing to serve or deliver Enterprise JavaBeans.
-
-<a name="Design-ApplicationServer-AlsoKnownAs"></a>
-## Also Known As
- * Server Adapter
- * Server Provider
-
-<a name="Design-ApplicationServer-Responsibilities"></a>
-## Responsibilities
- * Remote client access to OpenEJB
- * Implement the bean's remote and home interfaces.
- * Distribute its implementation of the remote and home interfaces.
- * Provide clients with a JNDI name space for looking up beans.
- * Delegate method invocations to the container.
-
-<a name="Design-ApplicationServer-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.spi.ApplicationServer
-
-<a name="Design-ApplicationServer-Implementations"></a>
-## Implementations
- * [Local Server](design-local-server.html)
- * [Remote Server](design-remote-server.html)
diff --git a/src/main/jbake/content/dev/design-application-serverlinks.adoc b/src/main/jbake/content/dev/design-application-serverlinks.adoc
new file mode 100644
index 0000000..eafbd84
--- /dev/null
+++ b/src/main/jbake/content/dev/design-application-serverlinks.adoc
@@ -0,0 +1,7 @@
+= Design - Application ServerLinks
+:jbake-type: page
+:jbake-status: published
+
+NOTE: this image is not present in source nor on the current site
+
+!http://tomee.apache.org/images/figure-appserver.gif!
diff --git a/src/main/jbake/content/dev/design-application-serverlinks.md b/src/main/jbake/content/dev/design-application-serverlinks.md
deleted file mode 100644
index c5d5b18..0000000
--- a/src/main/jbake/content/dev/design-application-serverlinks.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Title: Design - Application ServerLinks
-!http://tomee.apache.org/images/figure-appserver.gif!
diff --git a/src/main/jbake/content/dev/design-assembler.adoc b/src/main/jbake/content/dev/design-assembler.adoc
new file mode 100644
index 0000000..707eaa6
--- /dev/null
+++ b/src/main/jbake/content/dev/design-assembler.adoc
@@ -0,0 +1,31 @@
+= Design - Assembler
+:jbake-type: page
+:jbake-status: published
+
+== Assembler
+
+Sub-component of xref:design.adoc[OpenEJB]
+
+== Definition
+
+Instantiates and assembles a configured, runnable, instance of the container system and all sub-components.
+Vendors needing extreme control over the construction of the container system can get it by implementing this class.
+Doing this comes with large amounts of resposibility and complexity and should not be done without a deep understanding of OpenEJB.
+
+== Responsibilities
+
+* Instantiate and initialize all Container implementations
+* Instantiate and initialize TransactionService implementation
+* Instantiate and initialize SecurityService implementation
+* Instantiate and initialize all ResourceManagers
+* Load all deployed beans
+* Populate each deployment's JNDI ENC
+* Populate the IntraVM Server's global, client, JNDI namespace
+
+== Related Packages
+
+* org.apache.openejb.spi.Assembler
+
+== Implementations
+
+* xref:design-classic-assembler.adoc[Classic Assembler]
diff --git a/src/main/jbake/content/dev/design-assembler.md b/src/main/jbake/content/dev/design-assembler.md
deleted file mode 100644
index d28b818..0000000
--- a/src/main/jbake/content/dev/design-assembler.md
+++ /dev/null
@@ -1,33 +0,0 @@
-Title: Design - Assembler
-
-<a name="Design-Assembler-Assembler"></a>
-## Assembler
-
-Sub-component of [OpenEJB](design.html)
-
-<a name="Design-Assembler-Definition"></a>
-## Definition
-
-Instantiates and assembles a configured, runnable, instance of the
-container system and all sub-components. Vendors needing extreme control
-over the construction of the container system can get it by implementing
-this class. Doing this comes with large amounts of resposibility and
-complexity and should not be done without a deep understanding of OpenEJB.
-
-<a name="Design-Assembler-Responsibilities"></a>
-## Responsibilities
- * Instantiate and initialize all Container implementations
- * Instantiate and initialize TransactionService implementation
- * Instantiate and initialize SecurityService implementation
- * Instantiate and initialize all ResourceManagers
- * Load all deployed beans
- * Populate each deployment's JNDI ENC
- * Populate the IntraVM Server's global, client, JNDI namespace
-
-<a name="Design-Assembler-RelatedPackages"></a>
-## Related Packages
- * org.apache.openejb.spi.Assembler
-
-<a name="Design-Assembler-Implementations"></a>
-## Implementations
- * [Classic Assembler](design-classic-assembler.html)
diff --git a/src/main/jbake/content/dev/design-bmp-entitybean-container.adoc b/src/main/jbake/content/dev/design-bmp-entitybean-container.adoc
new file mode 100644
index 0000000..c8dc518
--- /dev/null
+++ b/src/main/jbake/content/dev/design-bmp-entitybean-container.adoc
@@ -0,0 +1,20 @@
+= Design - BMP EntityBean Container
+:jbake-type: page
+:jbake-status: published
+
+== BMP EntityBean Container
+
+Implementation of xref:design-container.adoc[Container]
+
+== Description
+
+Container that implements the EJB defined bean-container contract for EntityBeans with bean-managed persistence.
+
+== Also Known As
+
+* BMP Entity Container
+* BMP Container
+
+== Related Classes
+
+* org.apache.openejb.core.entity.EntityContainer
diff --git a/src/main/jbake/content/dev/design-bmp-entitybean-container.md b/src/main/jbake/content/dev/design-bmp-entitybean-container.md
deleted file mode 100644
index 50e3811..0000000
--- a/src/main/jbake/content/dev/design-bmp-entitybean-container.md
+++ /dev/null
@@ -1,23 +0,0 @@
-Title: Design - BMP EntityBean Container
-
-<a name="Design-BMPEntityBeanContainer-BMPEntityBeanContainer"></a>
-## BMP EntityBean Container
-
-Implementation of [Container](design-container.html)
-
-
-<a name="Design-BMPEntityBeanContainer-Description"></a>
-## Description
-
-Container that implements the EJB defined bean-container contract for
-EntityBeans with bean-managed persistence.
-
-<a name="Design-BMPEntityBeanContainer-AlsoKnownAs"></a>
-## Also Known As
- * BMP Entity Container
- * BMP Container
-
-<a name="Design-BMPEntityBeanContainer-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.core.entity.EntityContainer
-
diff --git a/src/main/jbake/content/dev/design-classic-assembler.adoc b/src/main/jbake/content/dev/design-classic-assembler.adoc
new file mode 100644
index 0000000..96fad54
--- /dev/null
+++ b/src/main/jbake/content/dev/design-classic-assembler.adoc
@@ -0,0 +1,26 @@
+= Design - Classic Assembler
+:jbake-type: page
+:jbake-status: published
+
+== Classic Assembler
+
+Implementation of xref:design-assembler.adoc[Assembler]
+
+== Description
+
+The standard assembler supported by the OpenEJB team.
+Uses meta-data supplied via the Configuration Factory to create all components in the system.
+It is assumed the meta-data has been checked and validated, all links and references will resolve, all classes are present, and all apps compliant.
+
+== Related Classes
+
+* org.apache.openejb.assembler.classic.Assembler
+* org.apache.openejb.assembler.classic.OpenEjbConfiguration
+
+== Related Packages
+
+* org.apache.openejb.assembler.classic
+
+== Sub-components
+
+* xref:design-configuration-factory.adoc[Configuration Factory]
diff --git a/src/main/jbake/content/dev/design-classic-assembler.md b/src/main/jbake/content/dev/design-classic-assembler.md
deleted file mode 100644
index 59a8162..0000000
--- a/src/main/jbake/content/dev/design-classic-assembler.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Title: Design - Classic Assembler
-
-<a name="Design-ClassicAssembler-ClassicAssembler"></a>
-## Classic Assembler
-
-Implementation of [Assembler](design-assembler.html)
-
-<a name="Design-ClassicAssembler-Description"></a>
-## Description
-
-The standard assembler supported by the OpenEJB team.  Uses meta-data
-supplied via the Configuration Factory to create all components in the
-system.  It is assumed the meta-data has been checked and validated, all
-links and references will resolve, all classes are present, and all apps
-compliant.
-
-<a name="Design-ClassicAssembler-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.assembler.classic.Assembler
- * org.apache.openejb.assembler.classic.OpenEjbConfiguration
-
-<a name="Design-ClassicAssembler-RelatedPackages"></a>
-## Related Packages
- * org.apache.openejb.assembler.classic
-
-<a name="Design-ClassicAssembler-Sub-components"></a>
-## Sub-components
- * [Configuration Factory](design-configuration-factory.html)
diff --git a/src/main/jbake/content/dev/design-cmp-entitybean-container.adoc b/src/main/jbake/content/dev/design-cmp-entitybean-container.adoc
new file mode 100644
index 0000000..b4f478f
--- /dev/null
+++ b/src/main/jbake/content/dev/design-cmp-entitybean-container.adoc
@@ -0,0 +1,21 @@
+= Design - CMP EntityBean Container
+:jbake-type: page
+:jbake-status: published
+
+== CMP EntityBean Container
+
+Implementation of xref:design-container.adoc[Container]
+
+== Description
+
+Container that implements the bean-container contract for CMP 1.1 and CMP 2.1 EntityBeans.
+The container adapts these old CMP EntityBeans to the new JPA Entity bean model and persists them using a JPA Persistence Provider.
+
+== Also Known As
+
+* CMP Entity Container
+* CMP Container
+
+== Formerly Known As
+
+* Castor Container
diff --git a/src/main/jbake/content/dev/design-cmp-entitybean-container.md b/src/main/jbake/content/dev/design-cmp-entitybean-container.md
deleted file mode 100644
index 5201676..0000000
--- a/src/main/jbake/content/dev/design-cmp-entitybean-container.md
+++ /dev/null
@@ -1,22 +0,0 @@
-Title: Design - CMP EntityBean Container
-
-<a name="Design-CMPEntityBeanContainer-CMPEntityBeanContainer"></a>
-## CMP EntityBean Container
-
-Implementation of [Container](design-container.html)
-
-<a name="Design-CMPEntityBeanContainer-Description"></a>
-## Description
-
-Container that implements the bean-container contract for CMP 1.1 and CMP
-2.1 EntityBeans.  The container adapts these old CMP EntityBeans to the new
-JPA Entity bean model and persists them using a JPA Persistence Provider.
-
-<a name="Design-CMPEntityBeanContainer-AlsoKnownAs"></a>
-## Also Known As
- * CMP Entity Container
- * CMP Container
-
-<a name="Design-CMPEntityBeanContainer-FormerlyKnownAs"></a>
-## Formerly Known As
- * Castor Container
diff --git a/src/main/jbake/content/dev/design-configuration-factory.adoc b/src/main/jbake/content/dev/design-configuration-factory.adoc
new file mode 100644
index 0000000..d0e0add
--- /dev/null
+++ b/src/main/jbake/content/dev/design-configuration-factory.adoc
@@ -0,0 +1,33 @@
+= Design - Configuration Factory
+:jbake-type: page
+:jbake-status: published
+
+== Configuration Factory
+
+Sub-component of xref:design-classic-assembler.adoc[Classic Assembler]
+
+== Definition
+
+Creates an instance of the OpenEjbConfiguration class that contains all the data and configuration information the Classic assembler needs to construct the container system.
+The object structure in the OpenEjbConfiguration class is refered to as the InfoObjects.
+The Configuration Factory can construct, retreive, or populate the InfoObjects from any data source it chooses or by any means it chooses.
+
+== Also Known As
+
+* Config Factory
+* InfoObject Factory
+
+== Responsibilities
+
+* Creates an instance of the OpenEjbConfiguration
+* The data in the InfoObjects must be validated and accurately represent the system, services, jars, and beans to be constructed
+
+== Related Classes
+
+* org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory
+* org.apache.openejb.assembler.classic.OpenEjbConfiguration
+
+== Implementations
+
+* XML Configuration Factory _(no longer supported)_
+* xref:design-nova-configuration-factory.adoc[Nova Configuration Factory]
diff --git a/src/main/jbake/content/dev/design-configuration-factory.md b/src/main/jbake/content/dev/design-configuration-factory.md
deleted file mode 100644
index ba4b5a5..0000000
--- a/src/main/jbake/content/dev/design-configuration-factory.md
+++ /dev/null
@@ -1,38 +0,0 @@
-Title: Design - Configuration Factory
-
-<a name="Design-ConfigurationFactory-ConfigurationFactory"></a>
-## Configuration Factory
-
-Sub-component of [Classic Assembler](design-classic-assembler.html)
-
-<a name="Design-ConfigurationFactory-Definition"></a>
-## Definition
-
-Creates an instance of the OpenEjbConfiguration class that contains all the
-data and configuration information the Classic assembler needs to construct
-the container system. The object structure in the OpenEjbConfiguration
-class is refered to as the InfoObjects. The Configuration Factory can
-construct, retreive, or populate the InfoObjects from any data source it
-chooses or by any means it chooses.
-
-<a name="Design-ConfigurationFactory-AlsoKnownAs"></a>
-## Also Known As
- * Config Factory
- * InfoObject Factory
-
-<a name="Design-ConfigurationFactory-Responsibilities"></a>
-## Responsibilities
- * Creates an instance of the OpenEjbConfiguration
- * The data in the InfoObjects must be validated and accurately represent
-the system, services, jars, and beans to be constructed
-
-<a name="Design-ConfigurationFactory-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory
- * org.apache.openejb.assembler.classic.OpenEjbConfiguration
-
-<a name="Design-ConfigurationFactory-Implementations"></a>
-## Implementations
- * XML Configuration Factory _(no longer supported)_
- * [Nova Configuration Factory](design-nova-configuration-factory.html)
-
diff --git a/src/main/jbake/content/dev/design-container.adoc b/src/main/jbake/content/dev/design-container.adoc
new file mode 100644
index 0000000..d0b6d23
--- /dev/null
+++ b/src/main/jbake/content/dev/design-container.adoc
@@ -0,0 +1,34 @@
+= Design - Container
+:jbake-type: page
+:jbake-status: published
+
+== Container
+
+Sub-component of xref:design.adoc[OpenEJB]
+
+== Definition
+
+An Enterprise JavaBeans container enforce the container-bean contract for an EJB 1.1, 2.0, 2.1 or 3.0 bean type.
+Containers for custom container-bean contracts can also be created.
+
+== Also Known As
+
+* Container Provider
+
+== Responsibilities
+
+* Adopt the OpenEJB architecture
+* Use the Transaction Manager assigned to the container system to assist in handling transactions
+* Use the Security Manager assigned to the container system to assist in enforcing security and privileges
+* Implement the org.apache.openejb.Container interface
+
+== Related Classes
+
+* org.apache.openejb.Container
+
+== Implementations
+
+* xref:design-stateful-sessionbean-container.adoc[Stateful SessionBean Container]
+* xref:design-stateless-sessionbean-container.adoc[Stateless SessionBean Container]
+* xref:design-bmp-entitybean-container.adoc[BMP EntityBean Container]
+* xref:design-cmp-entitybean-container.adoc[CMP EntityBean Container]
diff --git a/src/main/jbake/content/dev/design-container.md b/src/main/jbake/content/dev/design-container.md
deleted file mode 100644
index 1164cd0..0000000
--- a/src/main/jbake/content/dev/design-container.md
+++ /dev/null
@@ -1,36 +0,0 @@
-Title: Design - Container
-<a name="Design-Container-Container"></a>
-## Container
-
-Sub-component of [OpenEJB](-design.html)
-
-<a name="Design-Container-Definition"></a>
-## Definition
-
-An Enterprise JavaBeans container enforce the container-bean contract for
-an EJB 1.1, 2.0, 2.1 or 3.0 bean type. Containers for custom container-bean
-contracts can also be created.
-
-<a name="Design-Container-AlsoKnownAs"></a>
-## Also Known As
- * Container Provider
-
-<a name="Design-Container-Responsibilities"></a>
-## Responsibilities
- * Adopt the OpenEJB architecture
- * Use the Transaction Manager assigned to the container system to assist
-in handling transactions
- * Use the Security Manager assigned to the container system to assist in
-enforcing security and privileges
- * Implement the org.apache.openejb.Container interface
-
-<a name="Design-Container-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.Container
-
-<a name="Design-Container-Implementations"></a>
-## Implementations
- * [Stateful SessionBean Container](design-stateful-sessionbean-container.html)
- * [Stateless SessionBean Container](design-stateless-sessionbean-container.html)
- * [BMP EntityBean Container](design-bmp-entitybean-container.html)
- * [CMP EntityBean Container](design-cmp-entitybean-container.html)
diff --git a/src/main/jbake/content/dev/design-local-server.adoc b/src/main/jbake/content/dev/design-local-server.adoc
new file mode 100644
index 0000000..36d096a
--- /dev/null
+++ b/src/main/jbake/content/dev/design-local-server.adoc
@@ -0,0 +1,23 @@
+= Design - Local Server
+:jbake-type: page
+:jbake-status: published
+
+== Local Server
+
+Implementation of xref:design-application-server.adoc[Application Server]
+
+
+== Description
+
+Allows for optimized interaction among beans and clients in the same virtual machine.
+
+
+== Also Known As
+
+* IntraVM
+* IntraVM Server
+
+
+== Related Packages
+
+* org.apache.openejb.core.ivm
diff --git a/src/main/jbake/content/dev/design-local-server.md b/src/main/jbake/content/dev/design-local-server.md
deleted file mode 100644
index fb1c833..0000000
--- a/src/main/jbake/content/dev/design-local-server.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Title: Design - Local Server
-<a name="Design-LocalServer-LocalServer"></a>
-## Local Server
-
-Implementation of [Application Server](design-application-server.html)
-
-<a name="Design-LocalServer-Description"></a>
-## Description
-
-Allows for optimized interaction among beans and clients in the same
-virtual machine.
-
-
-<a name="Design-LocalServer-AlsoKnownAs"></a>
-## Also Known As
- * IntraVM
- * IntraVM Server
-
-<a name="Design-LocalServer-RelatedPackages"></a>
-## Related Packages
- * org.apache.openejb.core.ivm
diff --git a/src/main/jbake/content/dev/design-local-serverlinks.adoc b/src/main/jbake/content/dev/design-local-serverlinks.adoc
new file mode 100644
index 0000000..5b4d636
--- /dev/null
+++ b/src/main/jbake/content/dev/design-local-serverlinks.adoc
@@ -0,0 +1,5 @@
+= Design - Local ServerLinks
+:jbake-type: page
+:jbake-status: published
+
+include::design-application-serverlinks.adoc[leveloffset=+1]
diff --git a/src/main/jbake/content/dev/design-local-serverlinks.md b/src/main/jbake/content/dev/design-local-serverlinks.md
deleted file mode 100644
index 7d5ce94..0000000
--- a/src/main/jbake/content/dev/design-local-serverlinks.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Title: Design - Local ServerLinks
-{include:Design - Application ServerLinks}
diff --git a/src/main/jbake/content/dev/design-nova-configuration-factory.adoc b/src/main/jbake/content/dev/design-nova-configuration-factory.adoc
new file mode 100644
index 0000000..cc9f47b
--- /dev/null
+++ b/src/main/jbake/content/dev/design-nova-configuration-factory.adoc
@@ -0,0 +1,24 @@
+= Design - Nova Configuration Factory
+:jbake-type: page
+:jbake-status: published
+
+== Nova Configuration Factory
+
+Implementation of xref:design-configuration-factory.adoc[Configuration Factory]
+
+== Description
+
+Populates an OpenEjbConfiguration object by combining the data from an openejb.xml file, the ejb-jar.xml and openejb-jar.xml from deployed bean jars, and service-jar.xml containing OpenEJB service implementations.
+
+== Also Known As
+
+* New Configuration Factory
+* Modular Configuration Factory
+
+== Related Classes
+
+* org.apache.openejb.config.ConfigurationFactory
+
+== Related Packages
+
+* org.apache.openejb.alt.config
diff --git a/src/main/jbake/content/dev/design-nova-configuration-factory.md b/src/main/jbake/content/dev/design-nova-configuration-factory.md
deleted file mode 100644
index af18a44..0000000
--- a/src/main/jbake/content/dev/design-nova-configuration-factory.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Title: Design - Nova Configuration Factory
-
-<a name="Design-NovaConfigurationFactory-NovaConfigurationFactory"></a>
-## Nova Configuration Factory
-
-Implementation of [Configuration Factory](design-configuration-factory.html)
-
-<a name="Design-NovaConfigurationFactory-Description"></a>
-## Description
-
-Populates an OpenEjbConfiguration object by combining the data from an
-openejb.xml file, the ejb-jar.xml and openejb-jar.xml from deployed bean
-jars, and service-jar.xml containing OpenEJB service implementations.
-
-
-<a name="Design-NovaConfigurationFactory-AlsoKnownAs"></a>
-## Also Known As
- * New Configuration Factory
- * Modular Configuration Factory
-
-<a name="Design-NovaConfigurationFactory-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.config.ConfigurationFactory
-
-<a name="Design-NovaConfigurationFactory-RelatedPackages"></a>
-## Related Packages
- * org.apache.openejb.alt.config
-
diff --git a/src/main/jbake/content/dev/design-passivation-strategy.adoc b/src/main/jbake/content/dev/design-passivation-strategy.adoc
new file mode 100644
index 0000000..97b76bd
--- /dev/null
+++ b/src/main/jbake/content/dev/design-passivation-strategy.adoc
@@ -0,0 +1,24 @@
+= Design - Passivation Strategy
+:jbake-type: page
+:jbake-status: published
+
+== Passivation Strategy
+
+Sub-component of xref:design-stateful-sessionbean-container.adoc[Stateful SessionBean Container]
+
+== Definition
+
+Used by the Stateful Container to passivate and activate stateful session beans to a temporary storage.
+
+== Responsibilities
+
+* Store and retrieve instances
+
+== Related Classes
+
+* org.apache.openejb.core.stateful.PassivationStrategy
+
+== Implementations
+
+* xref:design-random-access-file-passivater.adoc[Random Access File Passivater]
+* xref:design-simple-passivater.adoc[Simple Passivater]
diff --git a/src/main/jbake/content/dev/design-passivation-strategy.md b/src/main/jbake/content/dev/design-passivation-strategy.md
deleted file mode 100644
index 5ceb9bd..0000000
--- a/src/main/jbake/content/dev/design-passivation-strategy.md
+++ /dev/null
@@ -1,26 +0,0 @@
-Title: Design - Passivation Strategy
-<a name="Design-PassivationStrategy-PassivationStrategy"></a>
-## Passivation Strategy
-
-Sub-component of [Stateful SessionBean Container](design-stateful-sessionbean-container.html)
-
-
-<a name="Design-PassivationStrategy-Definition"></a>
-## Definition
-
-Used by the Stateful Container to passivate and activate stateful session
-beans to a temporary storage.
-
-
-<a name="Design-PassivationStrategy-Responsibilities"></a>
-## Responsibilities
- * Store and retrieve instances
-
-<a name="Design-PassivationStrategy-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.core.stateful.PassivationStrategy
-
-<a name="Design-PassivationStrategy-Implementations"></a>
-## Implementations
- * [Random Access File Passivater](design-random-access-file-passivater.html)
- * [Simple Passivater](design-simple-passivater.html)
diff --git a/src/main/jbake/content/dev/design-random-access-file-passivater.adoc b/src/main/jbake/content/dev/design-random-access-file-passivater.adoc
new file mode 100644
index 0000000..08d42a1
--- /dev/null
+++ b/src/main/jbake/content/dev/design-random-access-file-passivater.adoc
@@ -0,0 +1,19 @@
+= Design - Random Access File Passivater
+:jbake-type: page
+:jbake-status: published
+
+== Random Access File Passivater
+
+Implementation of xref:design-passivation-strategy.adoc[Passivation Strategy]
+
+== Description
+
+A PassivationStrategy that bulk passivates bean instances to a random access file.
+
+== Also Known As
+
+* RAF Passivater
+
+== Related Classes
+
+* org.apache.openejb.core.stateful.RAFPassivater
diff --git a/src/main/jbake/content/dev/design-random-access-file-passivater.md b/src/main/jbake/content/dev/design-random-access-file-passivater.md
deleted file mode 100644
index 2a2eb37..0000000
--- a/src/main/jbake/content/dev/design-random-access-file-passivater.md
+++ /dev/null
@@ -1,20 +0,0 @@
-Title: Design - Random Access File Passivater
-
-<a name="Design-RandomAccessFilePassivater-RandomAccessFilePassivater"></a>
-## Random Access File Passivater
-
-Implementation of [Passivation Strategy](design-passivation-strategy.html)
-
-<a name="Design-RandomAccessFilePassivater-Description"></a>
-## Description
-
-A PassivationStrategy that bulk passivates bean instances to a random
-access file.
-
-<a name="Design-RandomAccessFilePassivater-AlsoKnownAs"></a>
-## Also Known As
- * RAF Passivater
-
-<a name="Design-RandomAccessFilePassivater-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.core.stateful.RAFPassivater
diff --git a/src/main/jbake/content/dev/design-remote-server.adoc b/src/main/jbake/content/dev/design-remote-server.adoc
new file mode 100644
index 0000000..cd87018
--- /dev/null
+++ b/src/main/jbake/content/dev/design-remote-server.adoc
@@ -0,0 +1,30 @@
+= Design - Remote Server
+:jbake-type: page
+:jbake-status: published
+
+== Remote Server
+
+Implementation of xref:design-application-server.adoc[Application Server]
+
+== Description
+
+Distributes EJB interface implementations to remote clients using a conversational serialization-based protocol.
+
+== Also Known As
+
+* EJBd Protocol
+
+== Related Classes
+
+* org.apache.openejb.server.EjbDaemon
+
+== Related Packages
+
+* org.apache.openejb.client
+* org.apache.openejb.server
+
+== Required Libraries
+
+* openejb-server-3.0.x.jar
+* openejb-ejbd-3.0.x.jar
+* openejb-client-3.0.x.jar
diff --git a/src/main/jbake/content/dev/design-remote-server.md b/src/main/jbake/content/dev/design-remote-server.md
deleted file mode 100644
index 47eb1f1..0000000
--- a/src/main/jbake/content/dev/design-remote-server.md
+++ /dev/null
@@ -1,31 +0,0 @@
-Title: Design - Remote Server
-<a name="Design-RemoteServer-RemoteServer"></a>
-## Remote Server
-
-Implementation of [Application Server](design-application-server.html)
-
-<a name="Design-RemoteServer-Description"></a>
-## Description
-
-Distributes EJB interface implementations to remote clients using a
-conversational serialization-based protocol.
-
-<a name="Design-RemoteServer-AlsoKnownAs"></a>
-## Also Known As
- * EJBd Protocol
-
-<a name="Design-RemoteServer-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.server.EjbDaemon
-
-<a name="Design-RemoteServer-RelatedPackages"></a>
-## Related Packages
- * org.apache.openejb.client
- * org.apache.openejb.server
-
-<a name="Design-RemoteServer-RequiredLibraries"></a>
-## Required Libraries
- * openejb-server-3.0.x.jar
- * openejb-ejbd-3.0.x.jar
- * openejb-client-3.0.x.jar
-
diff --git a/src/main/jbake/content/dev/design-remote-serverlinks.adoc b/src/main/jbake/content/dev/design-remote-serverlinks.adoc
new file mode 100644
index 0000000..1ed9a97
--- /dev/null
+++ b/src/main/jbake/content/dev/design-remote-serverlinks.adoc
@@ -0,0 +1,5 @@
+= Design - Remote ServerLinks
+:jbake-type: page
+:jbake-status: published
+
+include::design-application-serverlinks.adoc[leveloffset=+1]
diff --git a/src/main/jbake/content/dev/design-remote-serverlinks.md b/src/main/jbake/content/dev/design-remote-serverlinks.md
deleted file mode 100644
index 6c85052..0000000
--- a/src/main/jbake/content/dev/design-remote-serverlinks.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Title: Design - Remote ServerLinks
-{include:Design - Application ServerLinks}
diff --git a/src/main/jbake/content/dev/design-resource-manager.adoc b/src/main/jbake/content/dev/design-resource-manager.adoc
new file mode 100644
index 0000000..4256f73
--- /dev/null
+++ b/src/main/jbake/content/dev/design-resource-manager.adoc
@@ -0,0 +1,25 @@
+= Design - Resource Manager
+:jbake-type: page
+:jbake-status: published
+
+== Resource Manager
+
+Sub-component of xref:-design.adoc[OpenEJB]
+
+== Definition
+
+Provides the container with managed connections to transactional data sources required by beans
+
+== Also Known As
+
+* Connector
+* Connection Manager
+
+== Responsibilities
+
+* Provides beans with connection handles
+* Manages pysical connections
+
+== Related Packages
+
+* javax.resource.spi
diff --git a/src/main/jbake/content/dev/design-resource-manager.md b/src/main/jbake/content/dev/design-resource-manager.md
deleted file mode 100644
index 9d601aa..0000000
--- a/src/main/jbake/content/dev/design-resource-manager.md
+++ /dev/null
@@ -1,29 +0,0 @@
-Title: Design - Resource Manager
-
-<a name="Design-ResourceManager-ResourceManager"></a>
-## Resource Manager
-
-Sub-component of [OpenEJB](-design.html)
-
-
-<a name="Design-ResourceManager-Definition"></a>
-## Definition
-
-Provides the container with managed connections to transactional data
-sources required by beans
-
-
-<a name="Design-ResourceManager-AlsoKnownAs"></a>
-## Also Known As
- * Connector
- * Connection Manager
-
-<a name="Design-ResourceManager-Responsibilities"></a>
-## Responsibilities
- * Provides beans with connection handles
- * Manages pysical connections
-
-<a name="Design-ResourceManager-RelatedPackages"></a>
-## Related Packages
- * javax.resource.spi
-
diff --git a/src/main/jbake/content/dev/design-security-service.adoc b/src/main/jbake/content/dev/design-security-service.adoc
new file mode 100644
index 0000000..0211c10
--- /dev/null
+++ b/src/main/jbake/content/dev/design-security-service.adoc
@@ -0,0 +1,25 @@
+= Design - Security Service
+:jbake-type: page
+:jbake-status: published
+
+== Security Service
+
+Sub-component of xref:-design.adoc[OpenEJB]
+
+== Definition
+
+Provides the container with an authenticated client identity.
+
+== Also Known As
+
+* Security Provider
+
+== Responsibilities
+
+* Authenticate the user in an implementation specific way
+* Provides OpenEJB a reference to the current security identity of the client
+* Assists OpenEJB with role-based authorization control
+
+== Related Classes
+
+* org.apache.openejb.spi.SecurityService
diff --git a/src/main/jbake/content/dev/design-security-service.md b/src/main/jbake/content/dev/design-security-service.md
deleted file mode 100644
index aade92a..0000000
--- a/src/main/jbake/content/dev/design-security-service.md
+++ /dev/null
@@ -1,27 +0,0 @@
-Title: Design - Security Service
-<a name="Design-SecurityService-SecurityService"></a>
-## Security Service
-
-Sub-component of [OpenEJB](-design.html)
-
-
-<a name="Design-SecurityService-Definition"></a>
-## Definition
-
-Provides the container with an authenticated client identity.
-
-<a name="Design-SecurityService-AlsoKnownAs"></a>
-## Also Known As
- * Security Provider
-
-<a name="Design-SecurityService-Responsibilities"></a>
-## Responsibilities
- * Authenticate the user in an implementation specific way
- * Provides OpenEJB a reference to the current security identity of the
-client
- * Assists OpenEJB with role-based authorization control
-
-<a name="Design-SecurityService-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.spi.SecurityService
-
diff --git a/src/main/jbake/content/dev/design-simple-passivater.adoc b/src/main/jbake/content/dev/design-simple-passivater.adoc
new file mode 100644
index 0000000..62cbf30
--- /dev/null
+++ b/src/main/jbake/content/dev/design-simple-passivater.adoc
@@ -0,0 +1,15 @@
+= Design - Simple Passivater
+:jbake-type: page
+:jbake-status: published
+
+== Simple Passivater
+
+Implementation of xref:design-passivation-strategy.adoc[Passivation Strategy]
+
+== Description
+
+A PassivationStrategy that idividually passivates bean instances to a binary file.
+
+== Related Classes
+
+* org.apache.openejb.core.stateful.SimplePassivater
diff --git a/src/main/jbake/content/dev/design-simple-passivater.md b/src/main/jbake/content/dev/design-simple-passivater.md
deleted file mode 100644
index 1d47a83..0000000
--- a/src/main/jbake/content/dev/design-simple-passivater.md
+++ /dev/null
@@ -1,18 +0,0 @@
-Title: Design - Simple Passivater
-
-<a name="Design-SimplePassivater-SimplePassivater"></a>
-## Simple Passivater
-
-Implementation of [Passivation Strategy](design-passivation-strategy.html)
-
-
-<a name="Design-SimplePassivater-Description"></a>
-## Description
-
-A PassivationStrategy that idividually passivates bean instances to a
-binary file.
-
-
-<a name="Design-SimplePassivater-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.core.stateful.SimplePassivater
diff --git a/src/main/jbake/content/dev/design-stateful-sessionbean-container.adoc b/src/main/jbake/content/dev/design-stateful-sessionbean-container.adoc
new file mode 100644
index 0000000..d06ddb2
--- /dev/null
+++ b/src/main/jbake/content/dev/design-stateful-sessionbean-container.adoc
@@ -0,0 +1,24 @@
+= Design - Stateful SessionBean Container
+:jbake-type: page
+:jbake-status: published
+
+== Stateful SessionBean Container
+
+Implementation of xref:design-container.adoc[Container]
+
+== Description
+
+Container that implements the EJB defined bean-container contract for Stateful SessionBeans.
+
+== Also Known As
+
+* Stateful Session Container
+* Stateful Container
+
+== Related Classes
+
+* org.apache.openejb.core.stateful.StatefulContainer
+
+== Sub-components
+
+* xref:design-passivation-strategy.adoc[Passivation Strategy]
diff --git a/src/main/jbake/content/dev/design-stateful-sessionbean-container.md b/src/main/jbake/content/dev/design-stateful-sessionbean-container.md
deleted file mode 100644
index 409495b..0000000
--- a/src/main/jbake/content/dev/design-stateful-sessionbean-container.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Title: Design - Stateful SessionBean Container
-<a name="Design-StatefulSessionBeanContainer-StatefulSessionBeanContainer"></a>
-## Stateful SessionBean Container
-
-Implementation of [Container](design-container.html)
-
-<a name="Design-StatefulSessionBeanContainer-Description"></a>
-## Description
-
-Container that implements the EJB defined bean-container contract for
-Stateful SessionBeans.
-
-<a name="Design-StatefulSessionBeanContainer-AlsoKnownAs"></a>
-## Also Known As
- * Stateful Session Container
- * Stateful Container
-
-<a name="Design-StatefulSessionBeanContainer-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.core.stateful.StatefulContainer
-
-<a name="Design-StatefulSessionBeanContainer-Sub-components"></a>
-## Sub-components
- * [Passivation Strategy](design-passivation-strategy.html)
diff --git a/src/main/jbake/content/dev/design-stateless-sessionbean-container.adoc b/src/main/jbake/content/dev/design-stateless-sessionbean-container.adoc
new file mode 100644
index 0000000..cf7fcae
--- /dev/null
+++ b/src/main/jbake/content/dev/design-stateless-sessionbean-container.adoc
@@ -0,0 +1,20 @@
+= Design - Stateless SessionBean Container
+:jbake-type: page
+:jbake-status: published
+
+== Stateless SessionBean Container
+
+Implementation of xref:design-container.adoc[Container]
+
+== Description
+
+Container that implements the EJB defined bean-container contract for stateless SessionBeans.
+
+== Also Known As
+
+* Stateless Session Container
+* Stateless Container
+
+== Related Classes
+
+* org.apache.openejb.core.stateless.StatelessContainer
diff --git a/src/main/jbake/content/dev/design-stateless-sessionbean-container.md b/src/main/jbake/content/dev/design-stateless-sessionbean-container.md
deleted file mode 100644
index 52a9111..0000000
--- a/src/main/jbake/content/dev/design-stateless-sessionbean-container.md
+++ /dev/null
@@ -1,22 +0,0 @@
-Title: Design - Stateless SessionBean Container
-
-<a name="Design-StatelessSessionBeanContainer-StatelessSessionBeanContainer"></a>
-## Stateless SessionBean Container
-
-Implementation of [Container](design-container.html)
-
-<a name="Design-StatelessSessionBeanContainer-Description"></a>
-## Description
-
-Container that implements the EJB defined bean-container contract for
-stateless SessionBeans.
-
-<a name="Design-StatelessSessionBeanContainer-AlsoKnownAs"></a>
-## Also Known As
- * Stateless Session Container
- * Stateless Container
-
-<a name="Design-StatelessSessionBeanContainer-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.core.stateless.StatelessContainer
-
diff --git a/src/main/jbake/content/dev/design-transaction-service.adoc b/src/main/jbake/content/dev/design-transaction-service.adoc
new file mode 100644
index 0000000..1c7694f
--- /dev/null
+++ b/src/main/jbake/content/dev/design-transaction-service.adoc
@@ -0,0 +1,24 @@
+= Design - Transaction Service
+:jbake-type: page
+:jbake-status: published
+
+== Transaction Service
+
+Sub-component of xref:design.adoc[OpenEJB]
+
+== Definition
+
+Provides the container with transactional integrity.
+
+== Also Known As
+
+* Transaction Manager
+
+== Responsibilities
+
+* To give OpenEJB a reference to a valid implementation of javax.transaction.TransactionManager
+
+== Related Classes
+
+* org.apache.openejb.spi.TransactionService
+* javax.transaction.TransactionManager
diff --git a/src/main/jbake/content/dev/design-transaction-service.md b/src/main/jbake/content/dev/design-transaction-service.md
deleted file mode 100644
index d314680..0000000
--- a/src/main/jbake/content/dev/design-transaction-service.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Title: Design - Transaction Service
-
-<a name="Design-TransactionService-TransactionService"></a>
-## Transaction Service
-
-Sub-component of [OpenEJB](design.html)
-
-
-<a name="Design-TransactionService-Definition"></a>
-## Definition
-
-Provides the container with transactional integrity.
-
-
-<a name="Design-TransactionService-AlsoKnownAs"></a>
-## Also Known As
- * Transaction Manager
-
-<a name="Design-TransactionService-Responsibilities"></a>
-## Responsibilities
- * To give OpenEJB a reference to a valid implementation of
-javax.transaction.TransactionManager
-
-<a name="Design-TransactionService-RelatedClasses"></a>
-## Related Classes
- * org.apache.openejb.spi.TransactionService
- * javax.transaction.TransactionManager
-
diff --git a/src/main/jbake/content/dev/design.adoc b/src/main/jbake/content/dev/design.adoc
new file mode 100644
index 0000000..232b4ca
--- /dev/null
+++ b/src/main/jbake/content/dev/design.adoc
@@ -0,0 +1,43 @@
+= Design
+:jbake-type: page
+:jbake-status: published
+
+== OpenEJB
+
+System Design
+
+
+== Definition
+
+A modular, configurable, customizable, embeddable open source EJB container system
+
+
+== Also Known As
+
+* container system
+
+
+== Responsibilities
+
+* Implement EJB 3.0 Specification
+
+
+== Related Classes
+
+* org.apache.openejb.OpenEJB
+
+
+== Required Libraries
+
+* openejb-javaagent-3.0.x.jar
+* openejb-jee-3.0.x.jar
+* openejb-core-3.0.x.jar
+
+== Sub-components
+
+* xref:design-application-server.adoc[Application Server]
+* xref:design-transaction-service.adoc[Transaction Service]
+* xref:design-security-service.adoc[Security Service]
+* xref:design-resource-manager.adoc[Resource Manager]
+* xref:design-container.adoc[Container]
+* xref:design-assembler.adoc[Assembler]
diff --git a/src/main/jbake/content/dev/design.md b/src/main/jbake/content/dev/design.md
deleted file mode 100644
index 72c830c..0000000
--- a/src/main/jbake/content/dev/design.md
+++ /dev/null
@@ -1,37 +0,0 @@
-Title: Design
-<a name="Design-OpenEJB"></a>
-## OpenEJB
-System Design
-
-<a name="Design-Definition"></a>
-## Definition
-A modular, configurable, customizable, embeddable open source EJB container
-system
-
-<a name="Design-AlsoKnownAs"></a>
-## Also Known As
-* container system
-
-<a name="Design-Responsibilities"></a>
-## Responsibilities
-* Implement EJB 3.0 Specification
-
-<a name="Design-RelatedClasses"></a>
-## Related Classes
-* org.apache.openejb.OpenEJB
-
-<a name="Design-RequiredLibraries"></a>
-## Required Libraries
-* openejb-javaagent-3.0.x.jar
-* openejb-jee-3.0.x.jar
-* openejb-core-3.0.x.jar
-
-<a name="Design-Sub-components"></a>
-## Sub-components
-* [Application Server](design-application-server.html)
-* [Transaction Service](design-transaction-service.html)
-* [Security Service](design-security-service.html)
-* [Resource Manager](design-resource-manager.html)
-* [Container](design-container.html)
-* [Assembler](design-assembler.html)
-
diff --git a/src/main/jbake/content/dev/git.adoc b/src/main/jbake/content/dev/git.adoc
new file mode 100644
index 0000000..a89b715
--- /dev/null
+++ b/src/main/jbake/content/dev/git.adoc
@@ -0,0 +1,108 @@
+= GIT for TomEE Developers
+:jbake-type: page
+:jbake-status: published
+
+== The GitFlow Workflow
+
+Notes before you begin (mostly for SVN users):
+
+* The '_develop_' repository is the equivalent of the SVN _trunk_ directory.
+* The '_master_' repository is the equivalent of the SVN _tags_ directory.
+* The '_origin_' is the actual GIT repository that contains the projects _master_, _develop_ and other branches (Like trunk, branches and tags).
+* Unlike SVN a 'commit' is only a local action.
+The local commits are only published to the remote repository using 'push'.
+* Commit and push code to your own feature branch as often as you like, but only merge stable branches back into to the _develop_ branch.
+* Only the release manager should manage the _master_ repository
+* Read the official Apache Committer documentation https://gitbox.apache.org/#committers-getting-started[here]
+
+Run commands in the directory of the project you are working on, for example 'tomee':
+
+Always create a feature branch from _develop_ using an '_extremely_' descriptive name, this should usually be the https://issues.apache.org/jira/browse/TOMEE[JIRA] id or task name you want to work on:
+
+----
+git checkout -b TOMEE-007 develop
+
+Switched to a new branch 'TOMEE-007'
+----
+
+----
+git status
+
+nothing to commit, working directory clean
+----
+
+Immediately push the new branch to the repository so everyone can see it remotely (and possibly collaborate):
+
+----
+git push -u origin TOMEE-007
+
+Branch TOMEE-007 set up to track remote branch TOMEE-007 from origin.
+----
+
+Once that is done then you just need the simple push for subsequent calls on this branch:
+
+----
+git push
+----
+
+Work like mad on the JIRA issue calling commit and add as often as you like...
+
+If others are working on your branch also remember to pull their changes (Or just as good practice):
+
+----
+git pull
+
+git commit
+
+git push
+----
+
+Finally, to push the completed (or significant non-breaking progress on the) feature to _develop_ at any time (ensuring _develop_ is up to date first):
+
+----
+git pull origin develop
+----
+
+----
+git checkout develop
+----
+
+----
+git merge --no-ff TOMEE-007
+----
+
+Once the completed feature is merged and the JIRA resolved then the branch can and 'should' be deleted before pushing:
+
+----
+git branch -d TOMEE-007
+----
+
+----
+git push origin develop
+----
+
+== The GUI Way
+
+Now we have learned to do it the hard way, time to look at the simplified version.
+The GitHub native tools!
+
+For the latest mac version go here: https://mac.github.com/[Mac Latest],
+
+And windows here: https://windows.github.com/[Win Latest]
+
+These tools will probably not save you much time over the command line, but provide a much better visualization of ongoing processes.
+
+The steps are and remain as described above:
+
+. From _develop_ create a new branch called, for example TOMEE-007
+. 'Publish' (push -u) the new branch
+. Work on the branch and commit regularly
+. Synchronize (pull and push) changes in the the branch when stable
+. Switch to _develop_ and synchronize (pull)
+. Merge the branch into _develop_, i.e. 'TOMEE-007' + 'develop'  = 'develop' *See note below
+. Commit _develop_
+. Synchronize _develop_ (pull and push)
+. Delete the branch TOMEE-007
+
+NOTE: You can actually merge the current *develop_ (or any other 'synchronized' branch) into your branch first to make sure it is stable,i.e.
+'develop' + 'TOMEE-007' = 'TOMEE-007' - This is really cool!
diff --git a/src/main/jbake/content/dev/git.md b/src/main/jbake/content/dev/git.md
deleted file mode 100644
index 2e94bbe..0000000
--- a/src/main/jbake/content/dev/git.md
+++ /dev/null
@@ -1,85 +0,0 @@
-Title: GIT for TomEE Developers
-
-###The GitFlow Workflow
-
-Notes before you begin (mostly for SVN users):
-
-* The '*develop*' repository is the equivalent of the SVN *trunk* directory.  
-* The '*master*' repository is the equivalent of the SVN *tags* directory.    
-* The '*origin*' is the actual GIT repository that contains the projects *master*, *develop* and other branches (Like trunk, branches and tags).  
-* Unlike SVN a 'commit' is only a local action. The local commits are only published to the remote repository using 'push'.  
-* Commit and push code to your own feature branch as often as you like, but only merge stable branches back into to the *develop* branch.  
-* Only the release manager should manage the *master* repository
-* Read the official Apache Committer documentation [here](https://gitbox.apache.org/#committers-getting-started)
-
-<span style="color: rgb(128,0,0);">Run commands in the directory of the project you are working on, for example 'tomee':</span>
-
-Always create a feature branch from *develop* using an '*extremely*' descriptive name, this should usually be the [JIRA](https://issues.apache.org/jira/browse/TOMEE) id or task name you want to work on:
-
-><span style="color: rgb(51,51,153);">git checkout -b TOMEE-007 develop</span>
->
->Switched to a new branch 'TOMEE-007'  
-
-
-><span style="color: rgb(51,51,153);">git status</span>
->
->nothing to commit, working directory clean
-
- Immediately push the new branch to the repository so everyone can see it remotely (and possibly collaborate):
-
-><span style="color: rgb(51,51,153);">git push -u origin TOMEE-007</span>
->
->Branch TOMEE-007 set up to track remote branch TOMEE-007 from origin.
-
-Once that is done then you just need the simple push for subsequent calls on this branch:
-
-><span style="color: rgb(51,51,153);">git push</span>
-
-<span style="color: rgb(0,128,0);">Work like mad on the JIRA issue calling commit and add as often as you like...</span>
-
-If others are working on your branch also remember to pull their changes (Or just as good practice):
-
-><span style="color: rgb(51,51,153);">git pull</span>
->
-><span style="color: rgb(51,51,153);">git commit</span>
->
-><span style="color: rgb(51,51,153);">git push</span>
-
-Finally, to push the completed (or significant non-breaking progress on the) feature to *develop* at any time (ensuring *develop* is up to date first):
-
-><span style="color: rgb(51,51,153);">git pull origin develop</span>
-
-><span style="color: rgb(51,51,153);">git checkout develop</span>
-
-><span style="color: rgb(51,51,153);">git merge --no-ff TOMEE-007</span>
-
-Once the completed feature is merged and the JIRA resolved then the branch can and 'should' be deleted before pushing:
-
-><span style="color: rgb(51,51,153);">git branch -d TOMEE-007</span>
-
-><span style="color: rgb(51,51,153);">git push origin develop</span>
-
-<a name="git-gui"></a>
-###The GUI Way
-
-Now we have learned to do it the hard way, time to look at the simplified version. The GitHub native tools!
-
-For the latest mac version go here: [Mac Latest](https://mac.github.com/), 
-
-And windows here: [Win Latest](https://windows.github.com/)
-
-These tools will probably not save you much time over the command line, but provide a much better visualization of ongoing processes.
-
-The steps are and remain as described above:
-
-1. From *develop* create a new branch called, for example TOMEE-007
-1. 'Publish' (push -u) the new branch
-1. Work on the branch and commit regularly
-1. Synchronize (pull and push) changes in the the branch when stable
-1. Switch to *develop* and synchronize (pull)
-1. Merge the branch into *develop*, i.e. 'TOMEE-007' + 'develop'  = 'develop' <span style="color: rgb(255,102,0);">*See note below</span>
-1. Commit *develop*
-1. Synchronize *develop* (pull and push)
-1. Delete the branch TOMEE-007
-
-<span style="color: rgb(255,102,0);">*Note</span>: You can actually merge the current *develop* (or any other 'synchronized' branch) into your branch first to make sure it is stable,i.e. 'develop' + 'TOMEE-007' = 'TOMEE-007' - This is really cool!
\ No newline at end of file
diff --git a/src/main/jbake/content/dev/itests-overview.adoc b/src/main/jbake/content/dev/itests-overview.adoc
new file mode 100644
index 0000000..98a1e98
--- /dev/null
+++ b/src/main/jbake/content/dev/itests-overview.adoc
@@ -0,0 +1,70 @@
+= iTests Overview
+:jbake-type: page
+:jbake-status: published
+
+== Motivation
+
+The basic idea behind itests that makes them slightly different than plain junit tests ran by maven is that it's assumed that there are other systems (servers, databases, brokers, etc) that need to be started or connected to before the tests can run.
+The tests themselves don't setup the other systems themselves so that the tests don't become coupled with them and you can actually swap out various aspects of those systems behind the back of the tests;
+server version, protocol implementation, java version, VM implementation, database provider, operating systems, even using embedded servers and embedded databases.
+
+The idea came from the tests in OpenEJB that do this.
+It took a lot of work to get them to run as part of the maven build and the itest plugin was the result.
+
+Definitely give those a look at:  http://svn.apache.org/viewvc/tomee/tomee/trunk/itests/
+
+== Plugging in
+
+You can have systems started and stopped before and after the tests in a number of ways.
+
+=== In maven 1
+
+This series of articles established a basic technique for Container Driven Testing with Maven and OpenEJB using preGoals and postGoals to do server and databse setup and teardown before and after Maven runs the unit tests.
+http://www.theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries
+
+This concept evolved from OpenEJB into a reusable maven plugin created by Dain Sundstrom that gave these integration tests (itests) their own source directory and added itest:setup and itest:teardown goals to your maven build rather than just using a preGoal on "test:test" for setup and a postGoal on "test:test" for teardown.
+The advantage to the new goals is that maven does not call any postGoals on "test:test" if the tests failed;
+something the above series of articles hacked around with an odd bit of jelly code.
+
+The new itest plugin was checked into Geronimo with the expectation that Geronimo would also use it.
+After some time of OpenEJB still being the only consumer of it, it was moved into the Maven repository where they keep it in the Maven sandbox.
+
+http://maven.apache.org/plugins-sandbox/itest/
+
+ActiveMQ later started using the itest plugin and now has a large suite of their own JMS specific integration tests.
+
+=== In maven 2
+
+The concept of integration tests (itests) has been built into the lifecycle of maven 2, so it is no longer required to have the itest plugin around to get the extra "itest:setup" and "itest:teardown" goals.
+See this document for more info:  http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
+
+=== In junit setup and teardown
+
+The ejb tests in particular require you to plug in facades for the server and the database so the client (the tests) can say "give me an initial context" or "create these tables i need" in a generic way.
+It's assumed that those systems were setup and guaranteed in working state in the itest setup phase.
+It's also guaranteed that the server and database facades know how to contact the server or database to carry out the "give me an initial context" and "create these tables" calls.
+
+Here are some implementations of the database provider for reference:   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/AxionTestDatabase.java   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/DerbyTestDatabase.java   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/InstantDbTestDatabase.java   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/PostgreSqlTestDatabase.java
+
+Here are some implementations for the server facades:   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/CorbaTestServer.java   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/RemoteTestServer.java   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/IvmTestServer.java   - http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/RiTestServer.java
+
+Using the itest concept you could setup any system you need before hand, then just provide an abstraction of that system to the actual tests.
+So it's not limited to just a server or a database.
+You could do queue, topic, clustering heartbeat agent, directory server, etc.
+
+== Testing matrix
+
+Even with just what we have we can get quite far.
+In a perfect world, we would actually test against the full matrix:
+
+Server: Local, Database: Axion   Server: Local, Database: Derby   Server: Local, Database: PostgreSQL   Server: Remote, Database: Axion   Server: Remote, Database: Derby   Server: Remote, Database: PostgreSQL   Server: Corba, Database: Axion   Server: Corba, Database: Derby   Server: Corba, Database: PostgreSQL
+
+We had that going for a short while years ago but it was just too much infrastructure for me to keep running.
+It would be nice to get Oracle and MySQL in that list as well.
+
+In an even more perfect world we'd test against not just different Server and Database combinations, but JVM versions as well.
+
+Server: Local, Database: Axion, JVM: 1.3   Server: Local, Database: Axion, JVM: 1.4   Server: Local, Database: Axion, JVM: 1.5   Server: Local, Database: Derby, JVM: 1.3   Server: Local, Database: Derby, JVM: 1.4   Server: Local, Database: Derby, JVM: 1.5   Server: Local, Database: PostgreSQL, JVM: 1.3   Server: Local, Database: PostgreSQL, JVM: 1.4   Server: Local, Database: PostgreSQL, JVM: 1.5   Server: Remote, Database: Axion, JVM: 1.3   Server: Remote, Database: Axion, JVM: 1.4   Server: Remote, Database: Axion, JVM: 1.5   Server: Remote, Database: Derby, JVM: 1.3   Server: Remote, Database: Derby, JVM: 1.4   Server: Remote, Database: Derby, JVM: 1.5   Server: Remote, Database: PostgreSQL, JVM: 1.3   Server: Remote, Database: PostgreSQL, JVM: 1.4   Server: Remote, Database: PostgreSQL, JVM: 1.5   Server: Corba, Database: Axion, JVM: 1.3   Server: Corba, Database: Axion, JVM: 1.4   Server: Corba, Database: Axion, JVM: 1.5   Server: Corba, Database: Derby, JVM: 1.3   Server: Corba, Database: Derby, JVM: 1.4   Server: Corba, Database: Derby, JVM: 1.5   Server: Corba, Database: PostgreSQL, JVM: 1.3   Server: Corba, Database: PostgreSQL, JVM: 1.4   Server: Corba, Database: PostgreSQL, JVM: 1.5
+
+If you add JVM vendors (Sun, IBM, Apple, BEA) to the list, the combinations goes up to like 109.
+Throw on OS implementations and you get an insane number of test runs to complete.
diff --git a/src/main/jbake/content/dev/itests-overview.md b/src/main/jbake/content/dev/itests-overview.md
deleted file mode 100644
index e72044c..0000000
--- a/src/main/jbake/content/dev/itests-overview.md
+++ /dev/null
@@ -1,151 +0,0 @@
-Title: iTests Overview
-<a name="iTestsOverview-Motivation"></a>
-#  Motivation
-
-The basic idea behind itests that makes them slightly different than plain
-junit tests ran by maven is that it's assumed that there are other systems
-(servers, databases, brokers, etc) that need to be started or connected to
-before the tests can run.  The tests themselves don't setup the other
-systems themselves so that the tests don't become coupled with them and you
-can actually swap out various aspects of those systems behind the back of
-the tests; server version, protocol implementation, java version, VM
-implementation, database provider, operating systems, even using embedded
-servers and embedded databases.
-
-The idea came from the tests in OpenEJB that do this.  It took a lot of
-work to get them to run as part of the maven build and the itest plugin was
-the result.
-
-Definitely give those a look at: 
-http://svn.apache.org/viewvc/tomee/tomee/trunk/itests/
-
-<a name="iTestsOverview-Pluggingin"></a>
-#  Plugging in
-
-You can have systems started and stopped before and after the tests in a
-number of ways.
-
-<a name="iTestsOverview-Inmaven1"></a>
-##  In maven 1
-
-This series of articles established a basic technique for Container Driven
-Testing with Maven and OpenEJB using preGoals and postGoals to do server
-and databse setup and teardown before and after Maven runs the unit tests.  [http://www.theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries](http://www.theserverside.com/articles/article.tss?l=ContainerDrivenTestingSeries)
-
-This concept evolved from OpenEJB into a reusable maven plugin created by
-Dain Sundstrom that gave these integration tests (itests) their own source
-directory and added itest:setup and itest:teardown goals to your maven
-build rather than just using a preGoal on "test:test" for setup and a
-postGoal on "test:test" for teardown.  The advantage to the new goals is
-that maven does not call any postGoals on "test:test" if the tests failed;
-something the above series of articles hacked around with an odd bit of
-jelly code.
-
-The new itest plugin was checked into Geronimo with the expectation that
-Geronimo would also use it.  After some time of OpenEJB still being the
-only consumer of it, it was moved into the Maven repository where they keep
-it in the Maven sandbox. 
-
- [http://maven.apache.org/plugins-sandbox/itest/](http://maven.apache.org/plugins-sandbox/itest/)
-
-ActiveMQ later started using the itest plugin and now has a large suite of
-their own JMS specific integration tests.
-
-<a name="iTestsOverview-Inmaven2"></a>
-##  In maven 2
-
-The concept of integration tests (itests) has been built into the lifecycle
-of maven 2, so it is no longer required to have the itest plugin around to
-get the extra "itest:setup" and "itest:teardown" goals.  See this document
-for more info:  [http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html](http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)
-
-<a name="iTestsOverview-Injunitsetupandteardown"></a>
-##  In junit setup and teardown
-
-The ejb tests in particular require you to plug in facades for the server
-and the database so the client (the tests) can say "give me an initial
-context" or "create these tables i need" in a generic way.  It's assumed
-that those systems were setup and guaranteed in working state in the itest
-setup phase.  It's also guaranteed that the server and database facades
-know how to contact the server or database to carry out the "give me an
-initial context" and "create these tables" calls.
-
-Here are some implementations of the database provider for reference:
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/AxionTestDatabase.java
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/DerbyTestDatabase.java
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/InstantDbTestDatabase.java
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/PostgreSqlTestDatabase.java
-
-Here are some implementations for the server facades:
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/CorbaTestServer.java
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/RemoteTestServer.java
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/IvmTestServer.java
-  -
-http://cvs.openejb.org/viewrep/openejb/openejb/modules/itests/src/itest/org/openejb/test/RiTestServer.java
-
-Using the itest concept you could setup any system you need before hand,
-then just provide an abstraction of that system to the actual tests.  So
-it's not limited to just a server or a database.  You could do queue,
-topic, clustering heartbeat agent, directory server, etc.
-
-<a name="iTestsOverview-Testingmatrix"></a>
-#  Testing matrix
-
-Even with just what we have we can get quite far.  In a perfect world, we
-would actually test against the full matrix:
-
-  Server: Local, Database: Axion
-  Server: Local, Database: Derby
-  Server: Local, Database: PostgreSQL
-  Server: Remote, Database: Axion
-  Server: Remote, Database: Derby
-  Server: Remote, Database: PostgreSQL
-  Server: Corba, Database: Axion
-  Server: Corba, Database: Derby
-  Server: Corba, Database: PostgreSQL
-
-We had that going for a short while years ago but it was just too much
-infrastructure for me to keep running.	It would be nice to get Oracle and
-MySQL in that list as well.
-
-In an even more perfect world we'd test against not just different Server
-and Database combinations, but JVM versions as well.
-
-  Server: Local, Database: Axion, JVM: 1.3
-  Server: Local, Database: Axion, JVM: 1.4
-  Server: Local, Database: Axion, JVM: 1.5
-  Server: Local, Database: Derby, JVM: 1.3
-  Server: Local, Database: Derby, JVM: 1.4
-  Server: Local, Database: Derby, JVM: 1.5
-  Server: Local, Database: PostgreSQL, JVM: 1.3
-  Server: Local, Database: PostgreSQL, JVM: 1.4
-  Server: Local, Database: PostgreSQL, JVM: 1.5
-  Server: Remote, Database: Axion, JVM: 1.3
-  Server: Remote, Database: Axion, JVM: 1.4
-  Server: Remote, Database: Axion, JVM: 1.5
-  Server: Remote, Database: Derby, JVM: 1.3
-  Server: Remote, Database: Derby, JVM: 1.4
-  Server: Remote, Database: Derby, JVM: 1.5
-  Server: Remote, Database: PostgreSQL, JVM: 1.3
-  Server: Remote, Database: PostgreSQL, JVM: 1.4
-  Server: Remote, Database: PostgreSQL, JVM: 1.5
-  Server: Corba, Database: Axion, JVM: 1.3
-  Server: Corba, Database: Axion, JVM: 1.4
-  Server: Corba, Database: Axion, JVM: 1.5
-  Server: Corba, Database: Derby, JVM: 1.3
-  Server: Corba, Database: Derby, JVM: 1.4
-  Server: Corba, Database: Derby, JVM: 1.5
-  Server: Corba, Database: PostgreSQL, JVM: 1.3
-  Server: Corba, Database: PostgreSQL, JVM: 1.4
-  Server: Corba, Database: PostgreSQL, JVM: 1.5
-
-If you add JVM vendors (Sun, IBM, Apple, BEA) to the list, the combinations
-goes up to like 109.  Throw on OS implementations and you get an insane
-number of test runs to complete.
diff --git a/src/main/jbake/content/dev/january2008.adoc b/src/main/jbake/content/dev/january2008.adoc
new file mode 100644
index 0000000..70c8c1b
--- /dev/null
+++ b/src/main/jbake/content/dev/january2008.adoc
@@ -0,0 +1,32 @@
+= January 2008
+:jbake-type: page
+:jbake-status: published
+
+ The release of OpenEJB 3.0 beta 1 at the end of September showed an mild but noticeable increase in user traffic which has continued since.
+Several usability improvements and related new features have been added, particularly around a returning user from years ago Alex St.
+Croix.
+Alex has already written some blog entries, created a couple video tutorials, and has a downloadable PDF of using OpenEJB embedded in Tomcat which is a dozen pages and growing.
+This is all very good for OpenEJB and we are very excited to see user activity of this nature again.
+
+Web Services support has been added to OpenEJB in both standalone and Tomcat embedded modes, and significant work has been contributed to the CXF project as a result to add new features required by OpenEJB but not already present, such as rpc/encoded web services.
+
+The ability to embed OpenEJB into Tomcat has been re-expanded from temporarily just supporting Tomcat 6.0 to now version 5.5 as well including annotation processing support which is usually a v6.0.x and higher feature.
+Support for older versions was lost when the integration was reworked and improved over the OpenEJB 1.0 approach, however post OpenEJB 3.0 beta 1 release, requests from users of older Tomcat versions began coming in showing that the ability to support pre Tomcat 6 users is still very important.
+
+The documentation has been reorganized significantly.
+A new confluence space as been created dedicated entirely to the OpenEJB 3.0.x codebase and reintegrated back into the main website.
+Several new examples have been created as well.
+A major issue with the documentation was that most of the new documents weren't linked into the main site, were just loose pages, and had no "center" to bind them all together.
+The creation of dedicated 3.0.x space with it's own index and new left navigation section has dramatically improved this.
+
+Jonathan Gallimore, a newer contributor, recently contributed another large patch to the Eclipse plugin he's been working on that takes an EJB 2.x application and adds the annotations to the source code required to turn it into an EJB 3.0 application, removing the equivalent xml as it goes.
+Jonathan has done great work, but we could be doing better as he is largely working alone and isn't getting the benefit of working closely with existing committers.
+It's always difficult to pull people in when there isn't a strong intersection with existing code/people.
+
+Release work on OpenEJB 3.0 beta 2 has begun.
+There was a perpetual state of "going to release" through late November and all December, however all the open issues have been cleared and the general mood is "it's over-ready."  We've branched and have begun helping other projects to release some of the things we have dependencies on such as the Geronimo Transaction Manager/Connector and the XBean libraries.
+All is going well and we should see  OpenEJB 3.0 beta 2 put up for vote this month.
+
+On a general note, OpenEJB celebrated it's eighth year of existence in December.
+As a personal comment from someone who's been on the project the entire time, I [David Blevins](david-blevins.html)  have never seen the project in such good shape.
+A major challenge going forward will be releasing the 3.0 final and getting OpenEJB back on people's radar.
diff --git a/src/main/jbake/content/dev/january2008.md b/src/main/jbake/content/dev/january2008.md
deleted file mode 100644
index 5709910..0000000
--- a/src/main/jbake/content/dev/january2008.md
+++ /dev/null
@@ -1,55 +0,0 @@
-Title: January2008
-The release of OpenEJB 3.0 beta 1 at the end of September showed an mild
-but noticeable increase in user traffic which has continued since.  Several
-usability improvements and related new features have been added,
-particularly around a returning user from years ago Alex St. Croix.  Alex
-has already written some blog entries, created a couple video tutorials,
-and has a downloadable PDF of using OpenEJB embedded in Tomcat which is a
-dozen pages and growing.  This is all very good for OpenEJB and we are very
-excited to see user activity of this nature again.
-
-Web Services support has been added to OpenEJB in both standalone and
-Tomcat embedded modes, and significant work has been contributed to the CXF
-project as a result to add new features required by OpenEJB but not already
-present, such as rpc/encoded web services.
-
-The ability to embed OpenEJB into Tomcat has been re-expanded from
-temporarily just supporting Tomcat 6.0 to now version 5.5 as well including
-annotation processing support which is usually a v6.0.x and higher feature.
- Support for older versions was lost when the integration was reworked and
-improved over the OpenEJB 1.0 approach, however post OpenEJB 3.0 beta 1
-release, requests from users of older Tomcat versions began coming in
-showing that the ability to support pre Tomcat 6 users is still very
-important.
-
-The documentation has been reorganized significantly.  A new confluence
-space as been created dedicated entirely to the OpenEJB 3.0.x codebase and
-reintegrated back into the main website.  Several new examples have been
-created as well.  A major issue with the documentation was that most of the
-new documents weren't linked into the main site, were just loose pages, and
-had no "center" to bind them all together.  The creation of dedicated 3.0.x
-space with it's own index and new left navigation section has dramatically
-improved this.
-
-Jonathan Gallimore, a newer contributor, recently contributed another large
-patch to the Eclipse plugin he's been working on that takes an EJB 2.x
-application and adds the annotations to the source code required to turn it
-into an EJB 3.0 application, removing the equivalent xml as it goes. 
-Jonathan has done great work, but we could be doing better as he is largely
-working alone and isn't getting the benefit of working closely with
-existing committers.  It's always difficult to pull people in when there
-isn't a strong intersection with existing code/people.
-
-Release work on OpenEJB 3.0 beta 2 has begun.  There was a perpetual state
-of "going to release" through late November and all December, however all
-the open issues have been cleared and the general mood is "it's
-over-ready."  We've branched and have begun helping other projects to
-release some of the things we have dependencies on such as the Geronimo
-Transaction Manager/Connector and the XBean libraries.	All is going well
-and we should see  OpenEJB 3.0 beta 2 put up for vote this month.
-
-On a general note, OpenEJB celebrated it's eighth year of existence in December.  As a personal comment from someone who's been on the project the entire time, I \[David Blevins\](david-blevins\.html)
- have never seen the project in such good shape.  A major challenge going
-forward will be releasing the 3.0 final and getting OpenEJB back on
-people's radar.
-
diff --git a/src/main/jbake/content/dev/january2010.adoc b/src/main/jbake/content/dev/january2010.adoc
new file mode 100644
index 0000000..071dbd9
--- /dev/null
+++ b/src/main/jbake/content/dev/january2010.adoc
@@ -0,0 +1,18 @@
+= January 2010
+:jbake-type: page
+:jbake-status: published
+
+Main areas of development activity include OSGi support, upgrading JAX-WS and potential support for JAX-RS, and Java EE 6 @ManagedBean support.
+More detailed planning has also begun for the remaining EJB 3.1 work.
+
+Overall user list activity continues to increase with October and November both being record months in terms of volume.
+Diversity in developers responding to user requests has also been greatly improved, quite stellar in fact, with more committers pitching in and resolving user issues.
+A wonderful trend.
+Holidays had their usual impact on December activity.
+
+OpenEJB Eclipse Plugin 1.0.0.alpha was released in late October and a screencast created which shows how to get started with it was put up in the project blog and website.
+
+An informal get together is planned in Milan, Italy for the last weekend of January.
+Information has been sent to the user list and anyone is welcome to come.
+Primary goal is just to meet each other and have a few beers, but there's certainly room for tech talk and some will likely occur.
+Anything substantial will reach the dev list as with any offline communication.
diff --git a/src/main/jbake/content/dev/january2010.md b/src/main/jbake/content/dev/january2010.md
deleted file mode 100644
index b8f1212..0000000
--- a/src/main/jbake/content/dev/january2010.md
+++ /dev/null
@@ -1,20 +0,0 @@
-Title: January2010
-Main areas of development activity include OSGi support, upgrading JAX-WS
-and potential support for JAX-RS, and Java EE 6 @ManagedBean support.  More
-detailed planning has also begun for the remaining EJB 3.1 work.
-
-Overall user list activity continues to increase with October and November
-both being record months in terms of volume.  Diversity in developers
-responding to user requests has also been greatly improved, quite stellar
-in fact, with more committers pitching in and resolving user issues.  A
-wonderful trend.  Holidays had their usual impact on December activity.
-
-OpenEJB Eclipse Plugin 1.0.0.alpha was released in late October and a
-screencast created which shows how to get started with it was put up in the
-project blog and website.
-
-An informal get together is planned in Milan, Italy for the last weekend of
-January.  Information has been sent to the user list and anyone is welcome
-to come.  Primary goal is just to meet each other and have a few beers, but
-there's certainly room for tech talk and some will likely occur.  Anything
-substantial will reach the dev list as with any offline communication.
diff --git a/src/main/jbake/content/dev/july2007.adoc b/src/main/jbake/content/dev/july2007.adoc
new file mode 100644
index 0000000..a6ff116
--- /dev/null
+++ b/src/main/jbake/content/dev/july2007.adoc
@@ -0,0 +1,19 @@
+= July 2007
+:jbake-type: page
+:jbake-status: published
+
+ CURRENT FOCUS
+
+Primary activities in the project are around polishing up features, user-facing code, reducing dependencies, documentation, and taking care of legal in preparation for the coming 3.0 release.
+No real issues stand in the way at this point, builds and voting should start soon.
+
+CONTRIBUTIONS
+
+More wonderful documentation contributions have been made by contributor Karan Malhi who is actively scraping our list archives and creating documentation from old emails.
+
+EXTERNAL INVOLVEMENT
+
+Contributed managed connection support to commons-dbcp.
+This will eliminate our custom database pooling code, and adds an important new feature to DBCP.
+This feature should be useful to anyone using DBCP in a managed environment such at Tomcat.
+Also, OpenEJB has a large set of data base test case, and we have already found a few bugs to fix in DBCP for which we are working on fixes.
diff --git a/src/main/jbake/content/dev/july2007.md b/src/main/jbake/content/dev/july2007.md
deleted file mode 100644
index 298c5de..0000000
--- a/src/main/jbake/content/dev/july2007.md
+++ /dev/null
@@ -1,22 +0,0 @@
-Title: July2007
-CURRENT FOCUS
-
-Primary activities in the project are around polishing up features,
-user-facing code, reducing dependencies, documentation, and taking care of
-legal in preparation for the coming 3.0 release. No real issues stand in
-the way at this point, builds and voting should start soon.
-
-CONTRIBUTIONS
-
-More wonderful documentation contributions have been made by contributor
-Karan Malhi who is actively scraping our list archives and creating
-documentation from old emails.
-
-EXTERNAL INVOLVEMENT
-
-Contributed managed connection support to commons-dbcp. This will eliminate
-our custom database pooling code, and adds an important new feature to
-DBCP. This feature should be useful to anyone using DBCP in a managed
-environment such at Tomcat. Also, OpenEJB has a large set of data base test
-case, and we have already found a few bugs to fix in DBCP for which we are
-working on fixes.
diff --git a/src/main/jbake/content/dev/july2008.adoc b/src/main/jbake/content/dev/july2008.adoc
new file mode 100644
index 0000000..2d99ee6
--- /dev/null
+++ b/src/main/jbake/content/dev/july2008.adoc
@@ -0,0 +1,17 @@
+= July 2008
+:jbake-type: page
+:jbake-status: published
+
+The OpenEJB 3.0 Final release in mid April brought some good attention to the project and more new users.
+User list traffic showed a small increase in April and May and a sharp spike in June.
+July looks to be a slow month so far.
+Many users are content and anxiously awaiting the next release.
+
+Planning for the next release has begun.
+The list of fixes and improvements is growing very large.
+If all goes well 3.1 it won't be too much longer before we start spinning binaries for 3.1.
+Major new features will include more EJB 3.1 support, jaxb performance increases through the SXC project, network performance increases in client/server communication, cmp and jpa conversion improvements, tomcat console improvements, and fixes in the jdbc connection pooling.
+
+Jonathan Gallimore was voted in as a committer with great support.
+Jonathan is not just a new committer to OpenEJB but to the ASF.
+A very warm welcome to Jonathan!
diff --git a/src/main/jbake/content/dev/july2008.md b/src/main/jbake/content/dev/july2008.md
deleted file mode 100644
index ceb3aee..0000000
--- a/src/main/jbake/content/dev/july2008.md
+++ /dev/null
@@ -1,19 +0,0 @@
-Title: July2008
-The OpenEJB 3.0 Final release in mid April brought some good attention to
-the project and more new users.  User list traffic showed a small increase
-in April and May and a sharp spike in June.  July looks to be a slow month
-so far.  Many users are content and anxiously awaiting the next release.
-
-Planning for the next release has begun.  The list of fixes and
-improvements is growing very large.  If all goes well 3.1 it won't be too
-much longer before we start spinning binaries for 3.1.	Major new features
-will include more EJB 3.1 support, jaxb performance increases through the
-SXC project, network performance increases in client/server communication,
-cmp and jpa conversion improvements, tomcat console improvements, and fixes
-in the jdbc connection pooling.
-
-Jonathan Gallimore was voted in as a committer with great support. 
-Jonathan is not just a new committer to OpenEJB but to the ASF.  A very
-warm welcome to Jonathan!
-
-
diff --git a/src/main/jbake/content/dev/july2009.adoc b/src/main/jbake/content/dev/july2009.adoc
new file mode 100644
index 0000000..e2aacdf
--- /dev/null
+++ b/src/main/jbake/content/dev/july2009.adoc
@@ -0,0 +1,23 @@
+= July 2009
+:jbake-type: page
+:jbake-status: published
+
+OpenEJB 3.1.1 was released in June.
+The release contained a mix of improvements and fixes.
+Overall it was very well received and very anticipated as the last trunk release was in October 2008.
+More frequent dot releases are planned and a 3.1.2 will hopefully be not too far behind.
+
+Project participation in blogs.apache.org started up in April and has been fairly successful with about seven posts so far.
+Some effort has gone into creating a convenient way that blog posts can be staged for community review before being posted.
+The result has proven to be very easy and not cumbersome which directly contributes to the number of posts in the last two months or so.
+Two screencasts, the first of many hopefully, were also added and published through the blog.
+
+Jean-Louis Monteiro was voted in as a committer in June.
+The project is extremely happy to have him as a committer and very much enjoys his work and overall contributions in the community.
+Congratulations, Jean-Louis!
+
+Preparation has been underway to do a first release of the OpenEJB Eclipse Plugin.
+As part of the work in preparing the release files, discussion started at the beginning of the month on adding the release manager and majority contributor to the plugin, Jonathan Gallimore, to the project PMC for better oversight.
+The discussion was started on the dev list carefully and deliberately with so far very healthy and positive results.
+A vote for his addition to the PMC is now underway on the dev list, the first of hopefully many open PMC votes.
+A big compliment to the community to whose amazing openness, mutual respect, and overall friendliness makes this kind of thing possible.
diff --git a/src/main/jbake/content/dev/july2009.md b/src/main/jbake/content/dev/july2009.md
deleted file mode 100644
index 87074c3..0000000
--- a/src/main/jbake/content/dev/july2009.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Title: July2009
-OpenEJB 3.1.1 was released in June.  The release contained a mix of
-improvements and fixes.  Overall it was very well received and very
-anticipated as the last trunk release was in October 2008.  More frequent
-dot releases are planned and a 3.1.2 will hopefully be not too far behind.
-
-Project participation in blogs.apache.org started up in April and has been
-fairly successful with about seven posts so far.  Some effort has gone into
-creating a convenient way that blog posts can be staged for community
-review before being posted.  The result has proven to be very easy and not
-cumbersome which directly contributes to the number of posts in the last
-two months or so.  Two screencasts, the first of many hopefully, were also
-added and published through the blog.
-
-Jean-Louis Monteiro was voted in as a committer in June.  The project is
-extremely happy to have him as a committer and very much enjoys his work
-and overall contributions in the community.  Congratulations, Jean-Louis!
-
-Preparation has been underway to do a first release of the OpenEJB Eclipse
-Plugin.  As part of the work in preparing the release files, discussion
-started at the beginning of the month on adding the release manager and
-majority contributor to the plugin, Jonathan Gallimore, to the project PMC
-for better oversight.  The discussion was started on the dev list carefully
-and deliberately with so far very healthy and positive results.  A vote for
-his addition to the PMC is now underway on the dev list, the first of
-hopefully many open PMC votes.	A big compliment to the community to whose
-amazing openness, mutual respect, and overall friendliness makes this kind
-of thing possible.
diff --git a/src/main/jbake/content/dev/july2010.adoc b/src/main/jbake/content/dev/july2010.adoc
new file mode 100644
index 0000000..229739e
--- /dev/null
+++ b/src/main/jbake/content/dev/july2010.adoc
@@ -0,0 +1,16 @@
+= July 2010
+:jbake-type: page
+:jbake-status: published
+
+Work on the 3.1.next development has slowed and a release of that codebase (3.1.3) is likely to come out soon.
+
+Activity on the 3.2 codebase is going strong with significant progress on EJB 3.1 features, specifically;
+@AccessTimeout, @AfterBegin, @BeforeCompletion, @AfterCompletion and some support for the @Asynchronous method invocations.
+Most of this work is being done by contributors.
+New committers are sure to be right around the corner.
+Work has started on JCDI integration aided by the OpenWebBeans community.
+That work is somewhat revolutionary and a separate branch has been created temporarily to workout the overall architecture and design of the integration.
+Significant work is also being done to overhaul and test the application validation code and related i18n message keys.
+
+Dev list participation has increased due to greater contributor activity.
+User list traffic has slowed somewhat which is welcome as it provides a little breathing room for development.
diff --git a/src/main/jbake/content/dev/july2010.md b/src/main/jbake/content/dev/july2010.md
deleted file mode 100644
index 0273575..0000000
--- a/src/main/jbake/content/dev/july2010.md
+++ /dev/null
@@ -1,18 +0,0 @@
-Title: July2010
-Work on the 3.1.next development has slowed and a release of that codebase
-(3.1.3) is likely to come out soon.
-
-Activity on the 3.2 codebase is going strong with significant progress on
-EJB 3.1 features, specifically; @AccessTimeout, @AfterBegin,
-@BeforeCompletion, @AfterCompletion and some support for the @Asynchronous
-method invocations.  Most of this work is being done by contributors.  New
-committers are sure to be right around the corner.  Work has started on
-JCDI integration aided by the OpenWebBeans community.  That work is
-somewhat revolutionary and a separate branch has been created temporarily
-to workout the overall architecture and design of the integration. 
-Significant work is also being done to overhaul and test the application
-validation code and related i18n message keys.
-
-Dev list participation has increased due to greater contributor activity. 
-User list traffic has slowed somewhat which is welcome as it provides a
-little breathing room for development.
diff --git a/src/main/jbake/content/dev/june2007.adoc b/src/main/jbake/content/dev/june2007.adoc
new file mode 100644
index 0000000..37f37eb
--- /dev/null
+++ b/src/main/jbake/content/dev/june2007.adoc
@@ -0,0 +1,12 @@
+= June 2007
+:jbake-type: page
+:jbake-status: published
+
+All Incubator Infrastructure has been migrated over to tomee.apache.org as well as removal of any miscellaneous Incubator related disclaimers in code and website.
+
+The project is excited to have implementation of EJB 3.0 complete and to see our sister project, Geronimo, announced JavaEE 5 Certification.
+Community short term goals are a release of OpenEJB 3.0 along with regular published snapshots.
+Early development discussions are underway on clustering, application validation as well as general items for code clean up.
+List activity post JavaEE 5 Certification is back up to normal.
+
+We still gain more contribution interests from new people like _Karan Malhi_ who is interested in fixing some issues with OpenEJB 3.0 assembly build process.
diff --git a/src/main/jbake/content/dev/june2007.md b/src/main/jbake/content/dev/june2007.md
deleted file mode 100644
index 517c5a8..0000000
--- a/src/main/jbake/content/dev/june2007.md
+++ /dev/null
@@ -1,16 +0,0 @@
-Title: June2007
-All Incubator Infrastructure has been migrated over to tomee.apache.org
-as well as removal of any miscellaneous Incubator related disclaimers in
-code and website.  
-
-The project is excited to have implementation of EJB 3.0 complete and to
-see our sister project, Geronimo, announced JavaEE 5 Certification. 
-Community short term goals are a release of OpenEJB 3.0 along with regular
-published snapshots.  Early development discussions are underway on
-clustering, application validation as well as general items for code clean
-up.  List activity post JavaEE 5 Certification is back up to normal.
-
-We still gain more contribution interests from new people like *Karan
-Malhi* who is interested in fixing some issues with OpenEJB 3.0 assembly
-build process.
-
diff --git a/src/main/jbake/content/dev/logging.adoc b/src/main/jbake/content/dev/logging.adoc
new file mode 100644
index 0000000..1744ca9
--- /dev/null
+++ b/src/main/jbake/content/dev/logging.adoc
@@ -0,0 +1,197 @@
+= Logging
+:jbake-type: page
+:jbake-status: published
+
+== Logging for Users
+
+All logging in OpenEJB is done using the openejb.base/conf/logging.properties file.
+When you download and extract OpenEJB, you will not find this file under the openejb.base/conf directory.
+However, when you start the server, this file magically appears.
+So what does this give you as a user of OpenEJB?
+Here are some of the benefits:
+
+. You do not have to author a logging.properties from scratch.
+You get one with sensible defaults.
+. If you did modify the default file, and you wanted to revert back to the default file generated by OpenEJB, all you have to do is
+. {blank}
++
+= Delete or rename the file e.g. rename it to logging.properties.BAK .
+. {blank}
++
+= Restart the server
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+OpenEJB will find that the logging.properties file is missing from the openejb.base/conf directory and it will automatically create a new one with the default configuration.
+The good thing is that if you modify the logging.properties file, OpenEJB will *NOT* over-write it.
+
+The default logging configuration created by OpenEJB uses RollingFileAppender's.
+The log files are located under the openejb.base/logs directory.
+By default it writes to just two files , openejb.log and transaction.log&nbsp;
+{info:title=Embedded Testing} When running tests using embedded OpenEJB, the logging.properties will be ignored.
+You need to use a file named embedded.logging.properties instead.
+Place this file under src/test/resources \{info}  +++<a name="Logging-Loggingforcontributors/committers">++++++</a>+++
+
+== Logging for contributors/committers
+
+The org.apache.openejb.util.Logger class is the one which is used for logging.
+This class is a wrapper around log4.&nbsp;
+
++++<a name="Logging-LogCategory">++++++</a>+++
+
+=== LogCategory
+
+Each Logger instance belongs to a category represented by a org.apache.openejb.util.LogCategory instance.
+Here is what the LogCategory class looks like
+
+....
+public final class LogCategory {
+  private final String name;
+  public static final LogCategory OPENEJB = new LogCategory( "OpenEJB");
+  public static final LogCategory OPENEJB_ADMIN = OPENEJB.createChild("admin");
+  public static final LogCategory OPENEJB_STARTUP = OPENEJB.createChild("startup");
+  public static final LogCategory OPENEJB_STARTUP_CONFIG = OPENEJB_STARTUP.createChild("config");
+  public static final LogCategory OPENEJB_STARTUP_VALIDATION = OPENEJB_STARTUP.createChild("validation");
+       // other categories removed for code brevity
+  private LogCategory(String name){
+    this.name = name;
+  }
+  public String getName() {
+    return name;
+  }
+  /**
+   * Creates a child category of this category. <B>Use this method sparingly</B>. This method is to be used in only those circumstances where the name of the
+   * category is not known upfront and is a derived name. If you know the name of the category, it is highly recommended to add a static final field
+   * of type LogCategory in this class
+   * @param child
+   * @return - LogCategory
+   */
+  public LogCategory createChild(String child){
+    return new LogCategory(this.name+"."+child);
+  }
+
+}
+....
+
+Notice carefully how each LogCategory instance is created.&nbsp;
+The objective here is that each LogCategory should be a child of the OPENEJB category.
+If you need to add a new category and you know the name of the category upfront, simply open the LogCategory class and add another category.
+For example, if you needed to add a category named SHUTDOWN, here is the recommended way to add it
+
+ public static final LogCategory OPENEJB_SHUTDOWN = LogCategory.OPENEJB.createChild("shutdown");
+
+Sometimes you may want to create a category whose name is "generated" at runtime.
+In that case you can use the "createChild" method of the LogCategory class to create this new category.&nbsp;
+For example, if you wanted to create a category of Logger for every deployed module, then assuming you have the moduleId information you could do something as follows to create a category:
+
+ String moduleId = "mymodule";
+ LogCategory generatedCategory = LogCategory.OPENEJB.createChild(moduleId);
+
++++<a name="Logging-&nbsp;Logger">++++++</a>+++
+
+=== &nbsp;Logger
+
+The preference is to externalize all logging messages in properties file.
+Typically each package should have a file called Messages.properties.&nbsp;
+This file should have all the keys and the corresponding messages.&nbsp;
+Here are the steps you would follow to log a message:
+
+* For each message you need to log, you would open the Messages.properties file in the corresponding package and add a key-value pair for the message.&nbsp;
+For example, if you were authoring a class called org.apache.openejb.util.Connect, then you would add a key-value pair to the Messages.properties file located in the org.apache.openejb.util package.
+* Obtain a Logger instance in one of the following ways:
+
+&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;
+_Using the package name_
+
+ Logger logger = Logger.getInstance (LogCategory.OPENEJB, "org.apache.openejb.util");
+
+&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;
+&nbsp;&nbsp;__&nbsp;
+Using the Class__
+
+ Logger logger = Logger.getInsance(LogCategory.OPENEJB, Connect.class);
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+_Get a child Logger for an existing Logger instance_
+
+ Logger logger = Logger.getInsance(LogCategory.OPENEJB, Connect.class);
+ Logger child = logger.getChildLogger("shutdown");
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+_Get a child Logger of an existing Logger using a LogCategory_
+
+ LogCategory childCategory = LogCategory.OPENEJB.createChild("shutdown");
+ Logger logger = Logger.getInstance(childCategory,Connect.class);
+
+* &nbsp;Call one of the following methods passing in the key as an argument ** debug ** error ** fatal ** info ** warning
++
+Logger logger = Logger.getInstance(LogCategory.OPENEJB,Connect.class);
+logger.info("error.file");
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+The Messages.properties file under org.apache.openejb.util must have the "error.file" key in it with the corresponding message.
+
++++<a name="Logging-LoggerInheritance&nbsp;">++++++</a>+++
+
+=== Logger Inheritance&nbsp;
+
+&nbsp;Another interesting feature of the Logging framework is inheritance.
+Here is how it works:
+
+Say you have the following Messages.properties files in the classpath.
+
+. &nbsp;
+org/apache/openejb/Messages.properties
+. &nbsp;
+org/apache/openejb/core/Messages.properties
+. &nbsp;
+org/apache/openejb/core/stateless/Messages.properties
+
+&nbsp;
+&nbsp;
+Then you have a class such as org.apache.openejb.core.stateless.StatelessContainer (+note the package+) If that class referenced a message key "classNotFound" for example, the Logger would look for the message first in Messages.properties 3, then 2, then 1 and so on until it found the required message.
+This would allow better reuse of messages, more flexibility in where we put the Message.properties&nbsp;
+files, as well as the added bonus in that we no longer need to pass in the location of where our Message.properties file is
+
++++<a name="Logging-Loggingforintegrators">++++++</a>+++
+
+=== Logging for integrators
+
+If you want to embed OpenEJB in your application and need to control the logging configuration of OpenEJB, simple set the openejb.logger.external system property to true.
+Now, its your applications' responsibility to configure logging, OpenEJB will simply use your configuration.
+
++++<a name="Logging-&nbsp;OriginationoftheLoggingIdea">++++++</a>+++
+
+=== &nbsp;Origination of the Logging Idea
+
+There has been a long discussion for this logging idea.
+Its going to be worth it to read the discussion at http://www.nabble.com/i18n-and-logging-tf3962134s2756.html[i18n and logging]
+
++Here is a extract from an email from David Blevins which talks about the existing logging framework.
+The current framework is more or less the same as this one, just some added features and a rewrite of the API+
+
+Each module has a file called default.logging.conf.
+This file contains the definition of all Loggers, their appenders and warning levels.
+However, we do not use default.logging.conf first.
+The basic idea is that first we look for say conf/logging.conf in the openejb.base directory.
+&nbsp;If we don't find it there, we look for default.logging.conf in the classpath.
+&nbsp;If we did find default.logging.conf (which we should) and there is an openejb.base/conf/ directory then expand the default.logging.conf to openejb.base/conf/logging.conf where we expected to find the file in the first place.
+&nbsp;If there was no openejb.base/conf/ directory, then it's safe to assume we're running embedded (in a test case perhaps) and just use the default.logging.conf and do no extra work.
+
+We have default.logging.conf which we use this way as well as default.openejb.conf and now more recently users.properties and groups.properties.
+&nbsp;We search on disk for the resource in openejb.base/conf/ if we don't find them we unpack the default one we stuffed in openejb-core jar and extract it to disk in the openejb.base/conf directory if there is one -- if there isn't one we just use the default file.
+
+The basic ideas behind the pattern are that:  &nbsp;1.
+If you've messed up your configuration, just delete or rename the respective files in your conf/ directory and new (working) ones will magically appear.
+&nbsp;2.
+When upgrading its nice that our zip file won't overwrite any existing files in conf/  &nbsp;3.
+If you're running embedded you don't have to setup any directories or have any config files, we can run on defaults.
+
+The _ConfUtils.getConfResource_ utility to do that pattern generically , but so far we're only using it for the users.properties and groups.properties files.
+&nbsp;We should be using it everywhere.
+&nbsp;Having the code in multiple places has lead to some inconsistencies such as we expand the default.openejb.conf file to conf/openejb.xml (not even the same file extension).
+&nbsp;We really don't need the "default" part in our file names and the lingering usage of the "conf" file extension is something that needs to go bye-bye -- we should use properties for properties files and xml for xml files, etc.
diff --git a/src/main/jbake/content/dev/logging.md b/src/main/jbake/content/dev/logging.md
deleted file mode 100644
index e8edabe..0000000
--- a/src/main/jbake/content/dev/logging.md
+++ /dev/null
@@ -1,222 +0,0 @@
-Title: Logging
-<a name="Logging-LoggingforUsers"></a>
-## Logging for Users
-All logging in OpenEJB is done using the
-openejb.base/conf/logging.properties file. When you download and extract
-OpenEJB, you will not find this file under the openejb.base/conf directory.
-However, when you start the server, this file magically appears. So what
-does this give you as a user of OpenEJB? Here are some of the benefits:
-1. You do not have to author a logging.properties from scratch. You get one
-with sensible defaults.
-1. If you did modify the default file, and you wanted to revert back to the
-default file generated by OpenEJB, all you have to do is
-1. # Delete or rename the file e.g. rename it to logging.properties.BAK .
-1. # Restart the server
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-OpenEJB will find that the logging.properties file is missing from the
-openejb.base/conf directory and it will automatically create a new one with
-the default configuration. The good thing is that if you modify the
-logging.properties file, OpenEJB will \*NOT\* over-write it.
-
-The default logging configuration created by OpenEJB uses
-RollingFileAppender's. The log files are located under the
-openejb.base/logs directory. By default it writes to just two files ,
-openejb.log and transaction.log&nbsp;
-{info:title=Embedded Testing}
-When running tests using embedded OpenEJB, the logging.properties will be
-ignored. You need to use a file named embedded.logging.properties instead.
-Place this file under src/test/resources
-{info} 
-<a name="Logging-Loggingforcontributors/committers"></a>
-## Logging for contributors/committers
-
-The org.apache.openejb.util.Logger class is the one which is used for
-logging. This class is a wrapper around log4.&nbsp;
-
-<a name="Logging-LogCategory"></a>
-### LogCategory
-
-Each Logger instance belongs to a category represented by a
-org.apache.openejb.util.LogCategory instance. Here is what the LogCategory
-class looks like
-
-    public final class LogCategory {
-      private final String name;
-      public static final LogCategory OPENEJB = new LogCategory( "OpenEJB");
-      public static final LogCategory OPENEJB_ADMIN = OPENEJB.createChild("admin");
-      public static final LogCategory OPENEJB_STARTUP = OPENEJB.createChild("startup");
-      public static final LogCategory OPENEJB_STARTUP_CONFIG = OPENEJB_STARTUP.createChild("config");
-      public static final LogCategory OPENEJB_STARTUP_VALIDATION = OPENEJB_STARTUP.createChild("validation");
-           // other categories removed for code brevity
-      private LogCategory(String name){
-        this.name = name;
-      }
-      public String getName() {
-        return name;
-      }
-      /**
-       * Creates a child category of this category. <B>Use this method sparingly</B>. This method is to be used in only those circumstances where the name of the
-       * category is not known upfront and is a derived name. If you know the name of the category, it is highly recommended to add a static final field
-       * of type LogCategory in this class
-       * @param child
-       * @return - LogCategory
-       */
-      public LogCategory createChild(String child){
-        return new LogCategory(this.name+"."+child);
-      }
-
-    }
-
-Notice carefully how each LogCategory instance is created.&nbsp; The
-objective here is that each LogCategory should be a child of the OPENEJB
-category. If you need to add a new category and you know the name of the
-category upfront, simply open the LogCategory class and add another
-category. For example, if you needed to add a category named SHUTDOWN, here
-is the recommended way to add it
-
-    public static final LogCategory OPENEJB_SHUTDOWN = LogCategory.OPENEJB.createChild("shutdown");
-
-Sometimes you may want to create a category whose name is "generated" at
-runtime. In that case you can use the "createChild" method of the
-LogCategory class to create this new category.&nbsp; For example, if you
-wanted to create a category of Logger for every deployed module, then
-assuming you have the moduleId information you could do something as
-follows to create a category:
-
-    String moduleId = "mymodule";
-    LogCategory generatedCategory = LogCategory.OPENEJB.createChild(moduleId);
-
-
-<a name="Logging-&nbsp;Logger"></a>
-### &nbsp;Logger
-
-The preference is to externalize all logging messages in properties file.
-Typically each package should have a file called Messages.properties.&nbsp;
-This file should have all the keys and the corresponding messages.&nbsp;
-Here are the steps you would follow to log a message:
-* For each message you need to log, you would open the Messages.properties
-file in the corresponding package and add a key-value pair for the
-message.&nbsp; For example, if you were authoring a class called
-org.apache.openejb.util.Connect, then you would add a key-value pair to the
-Messages.properties file located in the org.apache.openejb.util package.
-
-* Obtain a Logger instance in one of the following ways:
-
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-*Using the package name*
-
-    Logger logger = Logger.getInstance (LogCategory.OPENEJB,
-"org.apache.openejb.util");
-
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;*&nbsp; 
-Using the Class*
-
-    Logger logger = Logger.getInsance(LogCategory.OPENEJB, Connect.class);
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-*Get a child Logger for an existing Logger instance*
-
-    Logger logger = Logger.getInsance(LogCategory.OPENEJB, Connect.class);
-    Logger child = logger.getChildLogger("shutdown");
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-*Get a child Logger of an existing Logger using a LogCategory*
-
-    LogCategory childCategory = LogCategory.OPENEJB.createChild("shutdown");
-    Logger logger = Logger.getInstance(childCategory,Connect.class);
-
-* &nbsp;Call one of the following methods passing in the key as an argument
-** debug
-** error
-** fatal
-** info
-** warning
-
-
-    Logger logger = Logger.getInstance(LogCategory.OPENEJB,Connect.class);
-    logger.info("error.file");
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The
-Messages.properties file under org.apache.openejb.util must have the
-"error.file" key in it with the corresponding message.
-
-<a name="Logging-LoggerInheritance&nbsp;"></a>
-### Logger Inheritance&nbsp;
-
-&nbsp;Another interesting feature of the Logging framework is inheritance.
-Here is how it works:
-
-Say you have the following Messages.properties files in the classpath.
-1. &nbsp; org/apache/openejb/Messages.properties
-1. &nbsp; org/apache/openejb/core/Messages.properties
-1. &nbsp; org/apache/openejb/core/stateless/Messages.properties
-
-&nbsp;
-&nbsp;
-Then you have a class such as
-org.apache.openejb.core.stateless.StatelessContainer (+note the package+)
-If that class referenced a message key "classNotFound" for example, the
-Logger would look for the message first in Messages.properties 3, then 2,
-then 1 and so on until it found the required message.
-This would allow better reuse of messages, more flexibility in where we put
-the Message.properties&nbsp; files, as well as the added bonus in that we
-no longer need to pass in the location of where our
-Message.properties file is
-
-<a name="Logging-Loggingforintegrators"></a>
-### Logging for integrators
-
-If you want to embed OpenEJB in your application and need to control the
-logging configuration of OpenEJB, simple set the openejb.logger.external
-system property to true. Now, its your applications' responsibility to
-configure logging, OpenEJB will simply use your configuration.
-
-<a name="Logging-&nbsp;OriginationoftheLoggingIdea"></a>
-### &nbsp;Origination of the Logging Idea
-
-There has been a long discussion for this logging idea. Its going to be
-worth it to read the discussion at [i18n and logging](http://www.nabble.com/i18n-and-logging-tf3962134s2756.html)
-
-+Here is a extract from an email from David Blevins which talks about the
-existing logging framework. The current framework is more or less the same
-as this one, just some added features and a rewrite of the API+
-
-Each module has a file called default.logging.conf. This file contains the
-definition of all Loggers, their appenders and warning levels. However, we
-do not use default.logging.conf first. The basic idea is that first we look
-for say conf/logging.conf in the openejb.base directory. &nbsp;If we don't
-find it there, we look for default.logging.conf in the classpath. &nbsp;If
-we did find default.logging.conf (which we should) and there is an
-openejb.base/conf/ directory then expand the default.logging.conf to
-openejb.base/conf/logging.conf where we expected to find the file in the
-first place. &nbsp;If there was no openejb.base/conf/ directory, then it's
-safe to assume we're running embedded (in a test case perhaps) and just use
-the default.logging.conf and do no extra work.
-
-We have default.logging.conf which we use this way as well as
-default.openejb.conf and now more recently users.properties and
-groups.properties. &nbsp;We search on disk for the resource in
-openejb.base/conf/ if we don't find them we unpack the default one we
-stuffed in openejb-core jar and extract it to disk in the openejb.base/conf
-directory if there is one \-\- if there isn't one we just use the default
-file.
-
-The basic ideas behind the pattern are that:
- &nbsp;1. If you've messed up your configuration, just delete or rename the
-respective files in your conf/ directory and new (working) ones will
-magically appear.
- &nbsp;2. When upgrading its nice that our zip file won't overwrite any
-existing files in conf/
- &nbsp;3. If you're running embedded you don't have to setup any
-directories or have any config files, we can run on defaults.
-
-The *ConfUtils.getConfResource* utility to do that pattern generically ,
-but so far we're only using it for the users.properties and
-groups.properties files. &nbsp;We should be using it everywhere.
-&nbsp;Having the code in multiple places has lead to some inconsistencies
-such as we expand the default.openejb.conf file to conf/openejb.xml (not
-even the same file extension). &nbsp;We really don't need the "default"
-part in our file names and the lingering usage of the "conf" file extension
-is something that needs to go bye-bye \-\- we should use properties for
-properties files and xml for xml files, etc.
diff --git a/src/main/jbake/content/dev/mastering-the-command-line.adoc b/src/main/jbake/content/dev/mastering-the-command-line.adoc
new file mode 100644
index 0000000..52d3b75
--- /dev/null
+++ b/src/main/jbake/content/dev/mastering-the-command-line.adoc
@@ -0,0 +1,117 @@
+= Linux/OSX awesomeness
+:jbake-type: page
+:jbake-status: published
+
+
+Not specific to this projec, but can be incredibly useful ways to maximizes your time.
+Mastering the command line is the best way to get things done, quick and cheaply.
+
+Reapeat after me:
+
+* I will write a script for any tasks I do regularly
+
+== Core commands
+
+Some very big time-saving commands
+
+=== In shell scripts
+
+* *basename* - what is the file name again?
+not the path, just the file name
+* *dirname* - what directory is this in?
+* *readllink -f* - what is the absolute path of this file?
+* *cat* - spit out the contents of one or more files
+* *cp* - copy file or dir
+* *scp* - copy file or dir to another machine
+* *rsync* - both the above, but so much more awesome
+ ** rsync -av here there
+ ** rsync -e ssh -av here user@host:there
+* *cut* - wish I could i could chop out this column in the middle here
+* *date* - would be nice if I had some way to make this log file name a little more unique
+* *echo* - System.out.println()
+* *xargs* - can be useful but doesn't respect paths with spaces.
+I only use it sometimes
+* *find* - find some files and potentially execute a command against them
+* *egrep* - search for text in a file or from STDIN.
+better than grep
+* *mkdir* - makes a dir, with -p will make parent dirs too
+* *mv* - move a file
+* *head* - spit out the first N lines of a file
+* *tail* - spit out the last N lines of a file
+* *tee* - I want to see the output of this command, but I also want to write it to a file.
+Oh!
+tee is awesome!
+* *perl* - edit a stream:  cat file.txt
+ ** edit a file: perl -i -pe 's/this/that/'
+* *pwd* - where am I?
+* *rm* - delete
+* *read (bash)* - I dig this out for strings with spaces.
+paths have spaces in them sometimes
+ ** ls *.txt
+ ** find . -name "*.txt"
+* *export (bash)* - why can't my script find this command?
+i use this to debug scripts 'export > /tmp/script-env.txt'
+* *for (bash)* - my favorite bash construct
+ ** for n in one two three;
+do echo "$n";
+done
+ ** (side note, always quote your variables like "$n" vs $n, trust me it's a good habit)
+* *while  (bash)* - my second favorite bash construct
+ ** loop forever and do something: while true;
+do my_command;
+sleep 10;
+done
+* *sleep* - Thread.sleep().
+Only accepts seconds.
+I typically do the math with bash sytax
+ ** sleep for an hour:  sleep $(( 60 * 60 ))
+ ** sleep for a day:  sleep $(( 60 * 60 * 24 ))
+* *sort* - sort lines of text
+* *uniq* - trim out the duplicates
+ ** show me only things that had duplicates: uniq -d
+ ** ( I always 'sort
+* *ssh* - awesomeness.
+can execute commands remotely too
+ ** ssh people.apache.org pwd
+ ** ssh people.apache.org 'pwd
+* *sudo* - I wish I were a fish.
+I wish I were a fish.
+* *tar* - package up some stuff
+* *wget* - download this url
+ ** wget http://apache.org
+ ** wget -q -O - http://apache.org
+* *tr* - echo $PATH
+* *uname* - what system am I on?
+
+=== OSX commands
+
+* *pbpaste* - paste the contents of the clipboard to stdout
+* *pbcopy* - copy stdin to the clipbboard
+
+=== running shell scripts
+
+* *bash* - quick way to run a script if it isn't already executable
+* *chmod* - this file should be executable
+* *clear* - my terminal is messy
+* *diff/patch* - comparing or merging file contents
+* *ps/kill* - my script is running too long, i want to force it to stop
+* *less* - paging through command line output
+* *nohup* - I don't want this script to die if my connection is interrupted
+* *which* - where does this command live?
+* *crontab* - schedule something to run regularly (i use 'bash -l foo.sh' to run stuff in my crontab file)
+* *shutdown* - shutdown or restart a machine
+* *top* - what the heck is chewing up my cpu?
+* *uname* - what system am I on?
+
+== I never use
+
+Some people like it.
+sed -- i always use "perl -pe 's/find/replace/'")
+
+Getting used to using perl is better.
+This page was originally written thinking markdown had table support like confluence does.
+Soo all lines where using "| command | description |" formatting.
+Markdown doesn't have that, so I changed it to a list syntax with the following command on my mac:
+
+`+pbpaste | perl -ne '@f = split(" *\\| *", $_);
+print " - **$f[1]** - $f[2]\n"' | pbcopy+`
diff --git a/src/main/jbake/content/dev/mastering-the-command-line.md b/src/main/jbake/content/dev/mastering-the-command-line.md
deleted file mode 100644
index bed5666..0000000
--- a/src/main/jbake/content/dev/mastering-the-command-line.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# Linux/OSX awesomeness
-
-Not specific to this projec, but can be incredibly useful ways to maximizes your time.  Mastering the command line is the best way to get things done, quick and cheaply.
-
-Reapeat after me:
-
- - I will write a script for any tasks I do regularly
-
-# Core commands
-
-Some very big time-saving commands
-
-## In shell scripts
-
- - **basename** - what is the file name again? not the path, just the file name
- - **dirname** - what directory is this in?
- - **readllink -f** - what is the absolute path of this file?
- - **cat** - spit out the contents of one or more files
- - **cp** - copy file or dir
- - **scp** - copy file or dir to another machine
- - **rsync** - both the above, but so much more awesome
-    - rsync -av here there
-    - rsync -e ssh -av here user@host:there
- - **cut** - wish I could i could chop out this column in the middle here
- - **date** - would be nice if I had some way to make this log file name a little more unique
- - **echo** - System.out.println()
- - **xargs** - can be useful but doesn't respect paths with spaces. I only use it sometimes
- - **find** - find some files and potentially execute a command against them
- - **egrep** - search for text in a file or from STDIN.  better than grep
- - **mkdir** - makes a dir, with -p will make parent dirs too
- - **mv** - move a file
- - **head** - spit out the first N lines of a file
- - **tail** - spit out the last N lines of a file
- - **tee** - I want to see the output of this command, but I also want to write it to a file.  Oh! tee is awesome!
- - **perl** - edit a stream:  cat file.txt
-    - edit a file: perl -i -pe 's/this/that/'
- - **pwd** - where am I?
- - **rm** - delete
- - **read (bash)** - I dig this out for strings with spaces. paths have spaces in them sometimes
-    - ls *.txt
-    - find . -name "*.txt"
- - **export (bash)** - why can't my script find this command? i use this to debug scripts 'export > /tmp/script-env.txt'
- - **for (bash)** - my favorite bash construct
-    - for n in one two three; do echo "$n"; done
-    - (side note, always quote your variables like "$n" vs $n, trust me it's a good habit)
- - **while  (bash)** - my second favorite bash construct
-    - loop forever and do something: while true; do my_command; sleep 10; done
- - **sleep** - Thread.sleep().  Only accepts seconds.  I typically do the math with bash sytax
-    - sleep for an hour:  sleep $(( 60 * 60 ))
-    - sleep for a day:  sleep $(( 60 * 60 * 24 ))
- - **sort** - sort lines of text
- - **uniq** - trim out the duplicates
-    - show me only things that had duplicates: uniq -d
-    - ( I always 'sort
- - **ssh** - awesomeness.  can execute commands remotely too
-    - ssh people.apache.org pwd
-    - ssh people.apache.org 'pwd
- - **sudo** - I wish I were a fish.  I wish I were a fish.
- - **tar** - package up some stuff
- - **wget** - download this url
-    - wget http://apache.org
-    - wget -q -O - http://apache.org
- - **tr** - echo $PATH
- - **uname** - what system am I on?
-
-## OSX commands
-
- - **pbpaste** - paste the contents of the clipboard to stdout
- - **pbcopy** - copy stdin to the clipbboard
-
-## running shell scripts
-
- - **bash** - quick way to run a script if it isn't already executable
- - **chmod** - this file should be executable
- - **clear** - my terminal is messy
- - **diff/patch** - comparing or merging file contents
- - **ps/kill** - my script is running too long, i want to force it to stop
- - **less** - paging through command line output
- - **nohup** - I don't want this script to die if my connection is interrupted
- - **which** - where does this command live?
- - **crontab** - schedule something to run regularly (i use 'bash -l foo.sh' to run stuff in my crontab file)
- - **shutdown** - shutdown or restart a machine
- - **top** - what the heck is chewing up my cpu?
- - **uname** - what system am I on?
-
-# I never use
-
-Some people like it.
-sed -- i always use "perl -pe 's/find/replace/'")
-
-Getting used to using perl is better.  This page was originally written thinking markdown had table support
-like confluence does.  Soo all lines where using "| command | description |" formatting.  Markdown doesn't
-have that, so I changed it to a list syntax with the following command on my mac:
-
-`pbpaste | perl -ne '@f = split(" *\\| *", $_); print " - **$f[1]** - $f[2]\n"' | pbcopy`
-
-
diff --git a/src/main/jbake/content/dev/october2007.adoc b/src/main/jbake/content/dev/october2007.adoc
new file mode 100644
index 0000000..8684877
--- /dev/null
+++ b/src/main/jbake/content/dev/october2007.adoc
@@ -0,0 +1,10 @@
+= October 2007
+:jbake-type: page
+:jbake-status: published
+
+OpenEJB 3.0 beta 1 released.
+First contribution from Jonathan Gallimore.
+(was anything checked in, if not yank this line) Completed Export Control (Cryptography) process.
+Completed integration with Tomcat 6.
+Expanded documentation and examples.
+Activity on the user list has increased slightly since the release.
diff --git a/src/main/jbake/content/dev/october2007.md b/src/main/jbake/content/dev/october2007.md
deleted file mode 100644
index e650b18..0000000
--- a/src/main/jbake/content/dev/october2007.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Title: October2007
-OpenEJB 3.0 beta 1 released.
-First contribution from Jonathan Gallimore. (was anything checked in, if
-not yank this line)
-Completed Export Control (Cryptography) process.
-Completed integration with Tomcat 6.
-Expanded documentation and examples.
-Activity on the user list has increased slightly since the release.
diff --git a/src/main/jbake/content/dev/october2008.adoc b/src/main/jbake/content/dev/october2008.adoc
new file mode 100644
index 0000000..8d9a552
--- /dev/null
+++ b/src/main/jbake/content/dev/october2008.adoc
@@ -0,0 +1,24 @@
+= October 2008
+:jbake-type: page
+:jbake-status: published
+
+ The user base has grown significantly.
+The primary areas seem to be people replacing the JBoss Embedded platform with OpenEJB as an embedded container for either testing or Swing/GUI work and people using OpenEJB in Tomcat for web work.
+There have also been some reports of very large applications getting ported to OpenEJB.
+External signs of adoption have increased as well with some OpenEJB users popping up in other communities such as Maven asking for OpenEJB focused improvements in their tools, a half dozen or so very favorable blog entries from people outside the project and a recent thread on TheServerSide where many users expressed they were considering leaving Spring for OpenEJB/Tomcat or Glassfish.
+
+Development on the OpenEJB Eclipse Plugin continues strong.
+The still-in-development Eclipse plugin is attracting some interest and has already received some contributions from at least two different individuals.
+Thanks goes out to Jonathan Gallimore for not succumbing to post-commit-status burnout as so many people do when first getting commit.
+The dedication is noted.
+Other larger areas of development have been a total overhaul of the client/server aspect of OpenEJB, first in the request speed and throughput and secondly in request failover and retry.
+This had been a weak area for the project and these improvements will likely increase the number of people using the standalone version of OpenEJB (current major areas of use are embedded and Tomcat).
+Some experimental work on integrating OpenEJB with Spring has been done which when completed should prove to be a compelling feature.
+
+Support for EJB 3.1 is underway.
+Full support for the proposed Singleton bean type has been added, which to our knowledge is the only implementation in the market currently.
+This should drive some EJB 3.1 early adopters to the project and serve as a good tool for getting feedback for the EJB 3.1 spec.
+
+The OpenEJB 3.1 release is up for a vote and if all goes well will be final in a few days.
+It's been a bit too long since our last release in April.
+Hopefully after 3.1 is released we can get back into the frequent release rhythm we had throughout the betas and up until 3.0 final.
diff --git a/src/main/jbake/content/dev/october2008.md b/src/main/jbake/content/dev/october2008.md
deleted file mode 100644
index 7d383f0..0000000
--- a/src/main/jbake/content/dev/october2008.md
+++ /dev/null
@@ -1,36 +0,0 @@
-Title: October2008
-The user base has grown significantly. The primary areas seem to be people
-replacing the JBoss Embedded platform with OpenEJB as an embedded container
-for either testing or Swing/GUI work and people using OpenEJB in Tomcat for
-web work. There have also been some reports of very large applications
-getting ported to OpenEJB. External signs of adoption have increased as
-well with some OpenEJB users popping up in other communities such as Maven
-asking for OpenEJB focused improvements in their tools, a half dozen or so
-very favorable blog entries from people outside the project and a recent
-thread on TheServerSide where many users expressed they were considering
-leaving Spring for OpenEJB/Tomcat or Glassfish.
-
-Development on the OpenEJB Eclipse Plugin continues strong. The
-still-in-development Eclipse plugin is attracting some interest and has
-already received some contributions from at least two different
-individuals. Thanks goes out to Jonathan Gallimore for not succumbing to
-post-commit-status burnout as so many people do when first getting commit.
-The dedication is noted. Other larger areas of development have been a
-total overhaul of the client/server aspect of OpenEJB, first in the request
-speed and throughput and secondly in request failover and retry. This had
-been a weak area for the project and these improvements will likely
-increase the number of people using the standalone version of OpenEJB
-(current major areas of use are embedded and Tomcat). Some experimental
-work on integrating OpenEJB with Spring has been done which when completed
-should prove to be a compelling feature.
-
-Support for EJB 3.1 is underway. Full support for the proposed Singleton
-bean type has been added, which to our knowledge is the only implementation
-in the market currently. This should drive some EJB 3.1 early adopters to
-the project and serve as a good tool for getting feedback for the EJB 3.1
-spec.
-
-The OpenEJB 3.1 release is up for a vote and if all goes well will be final
-in a few days.	It's been a bit too long since our last release in April. 
-Hopefully after 3.1 is released we can get back into the frequent release
-rhythm we had throughout the betas and up until 3.0 final.
diff --git a/src/main/jbake/content/dev/october2009.adoc b/src/main/jbake/content/dev/october2009.adoc
new file mode 100644
index 0000000..d76acce
--- /dev/null
+++ b/src/main/jbake/content/dev/october2009.adoc
@@ -0,0 +1,5 @@
+= October 2009
+:jbake-type: page
+:jbake-status: published
+
+Release 3.1.2 Eclipse Plugin 1.0.0 alpha release More EJB 3.1 activity
diff --git a/src/main/jbake/content/dev/october2009.md b/src/main/jbake/content/dev/october2009.md
deleted file mode 100644
index 0169b0d..0000000
--- a/src/main/jbake/content/dev/october2009.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Title: October2009
-Release 3.1.2
-Eclipse Plugin 1.0.0 alpha release
-More EJB 3.1 activity
diff --git a/src/main/jbake/content/dev/openejb-release-process.adoc b/src/main/jbake/content/dev/openejb-release-process.adoc
new file mode 100644
index 0000000..4f8b77b
--- /dev/null
+++ b/src/main/jbake/content/dev/openejb-release-process.adoc
@@ -0,0 +1,167 @@
+= OpenEJB Release Process
+:jbake-type: page
+:jbake-status: published
+
+ Note: This information is largely obsolete and remains here for reference only.
+
+{code:none} mvn release:prepare -Dusername=dblevins -Dassemble
+
+....
+{code:none}
+mvn release:perform -Dassemble -Dusername=dblevins -DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage -Dgpg.passphrase=xxxxx
+
+
+
+mvn clean deploy -Prelease -Dassemble -Dusername=dblevins -DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage/repo -Dgpg.passphrase=xxxxx
+....
+
+. Create a copy of the trunk the branch will be based on.
+
+{code:none} svn copy -m "TomEE 1.5.1 branch" \   https://svn.apache.org/repos/asf/tomee/tomee/trunk \   https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.5.1
+
+== Merging things from trunk to the branch
+
+....
+While fixing issues in the branch and trunk in parallel it may happen that some changes in trunk have not been applied to the branch. Provided you're in the branch's directory the following command applies a change from the trunk  to the branch (`{-c 575845`} is the commit number with the fix and the url points to a repo the change is in).
+
+{code:none}
+svn merge -c 575845 https://svn.apache.org/repos/asf/tomee/tomee/trunk
+....
+
+Here's a little script that can make merging easier
+
+....
+#!/bin/bash
+
+for n in $@; do
+  m=$(($n -1))
+  LOG=/tmp/svn-commit-r$n.log
+
+  cat /dev/null > $LOG
+
+  echo "Merging r$n - http://svn.apache.org/viewvc?rev=$n&view=rev" >> $LOG
+  echo "" >> $LOG
+  echo "svn merge -r $m:$n https://svn.apache.org/repos/asf/tomee/tomee/trunk ." >> $LOG
+  echo "" >> $LOG
+  svn log -r$n https://svn.apache.org/repos/asf/tomee/tomee/trunk >> $LOG
+
+  svn merge -r $m:$n https://svn.apache.org/repos/asf/tomee/tomee/trunk .  &&
+  svn ci -F $LOG
+  echo "$n merged"
+done
+....
+
+== Aggregation into a stage/3.x directory
+
+....
+#!/bin/bash
+
+VER=3.0
+
+function package () {
+    SOURCE=$1; DEST=${2:-$SOURCE}
+    tar czf $DEST.tar.gz $SOURCE
+    zip -9rq $DEST.zip $SOURCE
+}
+function shash {
+    openssl $1 < $2 > $2.$1 ;
+}
+function sign {
+    archive=$1
+    gpg --armor --output $archive.asc --detach-sig $archive
+    gpg --verify $archive.asc $archive
+}
+
+function fail () { echo $1 >&2; exit 1;}
+
+
+mkdir $VER
+(cd $VER
+
+svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER/examples openejb-examples-$VER
+package openejb-examples-$VER && rm -r openejb-examples-$VER
+
+svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER openejb-$VER-src
+package openejb-$VER-src && rm -r openejb-$VER-src
+
+for archive in *.{zip,tar.gz}; do
+    echo $archive
+    shash md5 $archive
+    sign $archive
+done || fail "Unable to sign or hash release archives"
+)
+
+scp -r $VER  people.apache.org:public_html/stage/
+
+# Copy standalone assembly in
+
+ssh people.apache.org "cp ~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5} ~/public_html/stage/$VER/"
+
+
+echo $VER | ssh people.apache.org 'read VER && for n in ~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5}; do cp $n ~/public_html/stage/$VER/$(basename ${n/openejb-standalone-$VER/openejb-$VER}); done'
+
+# Copy tomcat webapp assembly in
+
+echo $VER | ssh people.apache.org 'read VER && for n in ~/public_html/stage/repo/org/apache/openejb/openejb-tomcat-webapp/$VER/openejb-tomcat-webapp-$VER.war{,.asc,.md5}; do cp $n ~/public_html/stage/$VER/$(basename ${n/-tomcat-webapp-$VER/}); done'
+....
+
+== Release notes
+
+....
+#set( $rpc = $xmlrpc.connect("dblevins:xxxxx","http://issues.apache.org/jira/rpc/xmlrpc") )
+#set( $version = $rpc.getVersion("OPENEJB", "3.0") )
+#set ( $versionId = $version.id )
+#set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=${versionId}&tempMax=1000&reset=true&decorator=none") )
+#set( $issues = $jira.issues )
+
+Apache OpenEJB $version
+
+$date
+
+New Features:
+
+#foreach ( $issue in $issues.equals("type", "New Feature").descending("id") )
+  * [$issue.key]  $issue.summary
+#end
+
+Improvements:
+
+#foreach ( $issue in $issues.equals("type", "Improvement") )
+  * [$issue.key]  $issue.summary
+#end
+
+Bugs:
+
+#foreach ( $issue in $issues.equals("type", "Bug").sort("priority") )
+  * [$issue.key]  $issue.summary
+#end
+
+Tasks & Sub-Tasks:
+
+#foreach ( $issue in $issues.equals("type", "Task").sort("summary") )
+  * [$issue.key]  $issue.summary
+#end
+#foreach ( $issue in $issues.equals("type", "Sub-task").sort("summary") )
+  * [$issue.key]  $issue.summary
+#end
+
+
+
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+Unimplemented Features, bugs, limitations
+
+#set ( $jira = $rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=1&status=3&status=4&version=${versionId}&tempMax=1000&reset=true&decorator=none") )
+#set( $issues = $jira.issues )
+
+#foreach ( $issue in $issues.sort("priority") )
+  * [$issue.key]  $issue.summary
+#end
+....
+
+== README.html file
+
+some way to dynamically update this would be great.
+
+{code:html} <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">+++<html>++++++<head>++++++<TITLE>+++Apache OpenEJB 3.0+++</TITLE>++++++</head>++++++<body>+++[discrete] === Apache OpenEJB 3.0   {blank}   Packaging Details (or "What Should I Download?")   * OpenEJB Standlone Server:  ** link:openejb-3.0.zip[openejb-3.0.zip]  ** link:openejb-3.0.tar.gz[openejb-3.0.tar.gz] * OpenEJB for Tomcat 6 or Tomcat 5.5:  ** link:openejb.war[openejb.war] * EJB 3.0 and other examples:  ** link:openejb-examples-3.0.zip[openejb-examples-3.0.zip]  ** link:openejb-examples-3.0.tar.gz[openejb-examples-3.0.tar.gz] * Source:  ** link:openejb-3.0-src.zip[openejb-3.0-src.zip]  ** link:openejb-3.0-src.tar.gz[openejb-3.0-src.tar.gz]   Thank you for using http://tomee.apache.org/[OpenEJB]!.
+*The Apache OpenEJB Project* + http://tomee.apache.org/   {blank}</BODY></HTML> # Publishing When all voting is done {code:none} mvn stage:copy -Dsource="http://people.apache.org/~dblevins/stage/repo/" \ -Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" \ -DsourceRepositoryId=apache.staging \ -DtargetRepositoryId=apache.releases \ -Dversion=3.0 {code:none} $ mv 3.0 /www/www.apache.org/dist/openejb/+++</body>++++++</html>+++
diff --git a/src/main/jbake/content/dev/openejb-release-process.md b/src/main/jbake/content/dev/openejb-release-process.md
deleted file mode 100644
index 2934d99..0000000
--- a/src/main/jbake/content/dev/openejb-release-process.md
+++ /dev/null
@@ -1,278 +0,0 @@
-Title: OpenEJB Release Process
-
-	Note: This information is largely obsolete and remains here for reference only.
-
-{code:none}
-mvn release:prepare -Dusername=dblevins -Dassemble
-
-    
-    {code:none}
-    mvn release:perform -Dassemble -Dusername=dblevins
--DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage
--Dgpg.passphrase=xxxxx
-
-
-
-    mvn clean deploy -Prelease -Dassemble -Dusername=dblevins
--DaltDeploymentRepository=dblevins::default::scp://people.apache.org/x1/home/dblevins/public_html/stage/repo
--Dgpg.passphrase=xxxxx
-
-
-1. Create a copy of the trunk the branch will be based on.
-
-{code:none}
-svn copy -m "TomEE 1.5.1 branch" \
-  https://svn.apache.org/repos/asf/tomee/tomee/trunk \
-  https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.5.1
-
-    
-#  Merging things from trunk to the branch
-    
-    While fixing issues in the branch and trunk in parallel it may happen that
-some changes in trunk have not been applied to the branch. Provided you're
-in the branch's directory the following command applies a change from the
-trunk  to the branch (`{-c 575845`} is the commit number with the fix and
-the url points to a repo the change is in).
-    
-    {code:none}
-    svn merge -c 575845 https://svn.apache.org/repos/asf/tomee/tomee/trunk
-
-
-Here's a little script that can make merging easier
-
-
-    #!/bin/bash
-    
-    for n in $@; do
-      m=$(($n -1))
-      LOG=/tmp/svn-commit-r$n.log
-    
-      cat /dev/null > $LOG
-    
-      echo "Merging r$n - http://svn.apache.org/viewvc?rev=$n&view=rev" >> $LOG
-      echo "" >> $LOG
-      echo "svn merge -r $m:$n
-https://svn.apache.org/repos/asf/tomee/tomee/trunk ." >> $LOG
-      echo "" >> $LOG
-      svn log -r$n https://svn.apache.org/repos/asf/tomee/tomee/trunk >>
-$LOG
-    
-      svn merge -r $m:$n
-https://svn.apache.org/repos/asf/tomee/tomee/trunk .  &&
-      svn ci -F $LOG
-      echo "$n merged"
-    done
-
-
-<a name="OpenEJBReleaseProcess-Aggregationintoastage/3.xdirectory"></a>
-#  Aggregation into a stage/3.x directory
-
-
-    #!/bin/bash
-    
-    VER=3.0
-    
-    function package () {
-        SOURCE=$1; DEST=${2:-$SOURCE}
-        tar czf $DEST.tar.gz $SOURCE
-        zip -9rq $DEST.zip $SOURCE
-    }
-    function shash {
-        openssl $1 < $2 > $2.$1 ;
-    }
-    function sign {
-        archive=$1
-        gpg --armor --output $archive.asc --detach-sig $archive
-        gpg --verify $archive.asc $archive
-    }
-    
-    function fail () { echo $1 >&2; exit 1;}
-    
-    
-    mkdir $VER
-    (cd $VER
-    
-    svn export
-http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER/examples
-openejb-examples-$VER
-    package openejb-examples-$VER && rm -r openejb-examples-$VER
-    
-    svn export http://svn.apache.org/repos/asf/openejb/tags/openejb-$VER
-openejb-$VER-src
-    package openejb-$VER-src && rm -r openejb-$VER-src
-    
-    for archive in *.{zip,tar.gz}; do
-        echo $archive
-        shash md5 $archive
-        sign $archive
-    done || fail "Unable to sign or hash release archives"
-    )
-    
-    scp -r $VER  people.apache.org:public_html/stage/
-    
-    # Copy standalone assembly in
-    
-    ssh people.apache.org "cp
-~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5}
-~/public_html/stage/$VER/"
-    
-    
-    echo $VER | ssh people.apache.org 'read VER && for n in
-~/public_html/stage/repo/org/apache/openejb/openejb-standalone/$VER/openejb-standalone-$VER.{zip,tar.gz}{,.asc,.md5};
-do cp $n ~/public_html/stage/$VER/$(basename
-${n/openejb-standalone-$VER/openejb-$VER}); done'
-    
-    # Copy tomcat webapp assembly in
-    
-    echo $VER | ssh people.apache.org 'read VER && for n in
-~/public_html/stage/repo/org/apache/openejb/openejb-tomcat-webapp/$VER/openejb-tomcat-webapp-$VER.war{,.asc,.md5};
-do cp $n ~/public_html/stage/$VER/$(basename ${n/-tomcat-webapp-$VER/});
-done'
-
-
-<a name="OpenEJBReleaseProcess-Releasenotes"></a>
-#  Release notes
-
-
-    #set( $rpc =
-$xmlrpc.connect("dblevins:xxxxx","http://issues.apache.org/jira/rpc/xmlrpc")
-)
-    #set( $version = $rpc.getVersion("OPENEJB", "3.0") )
-    #set ( $versionId = $version.id )
-    #set ( $jira =
-$rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=5&status=6&fixfor=${versionId}&tempMax=1000&reset=true&decorator=none")
-)
-    #set( $issues = $jira.issues )
-    
-    Apache OpenEJB $version
-    
-    $date
-    
-    New Features:
-    
-    #foreach ( $issue in $issues.equals("type", "New Feature").descending("id")
-)
-      * [$issue.key]
- $issue.summary
-    #end
-    
-    Improvements:
-    
-    #foreach ( $issue in $issues.equals("type", "Improvement") )
-      * [$issue.key]
- $issue.summary
-    #end
-    
-    Bugs:
-    
-    #foreach ( $issue in $issues.equals("type", "Bug").sort("priority") )
-      * [$issue.key]
- $issue.summary
-    #end
-    
-    Tasks & Sub-Tasks:
-    
-    #foreach ( $issue in $issues.equals("type", "Task").sort("summary") )
-      * [$issue.key]
- $issue.summary
-    #end
-    #foreach ( $issue in $issues.equals("type", "Sub-task").sort("summary") )
-      * [$issue.key]
- $issue.summary
-    #end
-    
-    
-    
-     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    
-    Unimplemented Features, bugs, limitations
-    
-    #set ( $jira =
-$rss.fetch("http://issues.apache.org/jira/secure/IssueNavigator.jspa?view=rss&&pid=12310530&status=1&status=3&status=4&version=${versionId}&tempMax=1000&reset=true&decorator=none")
-)
-    #set( $issues = $jira.issues )
-    
-    #foreach ( $issue in $issues.sort("priority") )
-      * [$issue.key]
- $issue.summary
-    #end
-
-
-
-<a name="OpenEJBReleaseProcess-README.htmlfile"></a>
-#  README.html file
-
-some way to dynamically update this would be great.
-
-{code:html}
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD><TITLE>Apache OpenEJB 3.0</TITLE>
-<META http-equiv=Content-Type content="text/html">
-</HEAD>
-<BODY>
-<P>
-<H3>Apache OpenEJB 3.0</H3>
-<P></P>
-
-<p>Packaging Details (or "What Should I Download?")
-  <ul>
-      <li>
-	  OpenEJB Standlone Server:
-	  <ul>
-	      <li><a href="openejb-3.0.zip">openejb-3.0.zip</a></li>
-	      <li><a href="openejb-3.0.tar.gz">openejb-3.0.tar.gz</a></li>
-	  </ul>
-      </li>
-      <li>
-	  OpenEJB for Tomcat 6 or Tomcat 5.5:
-	  <ul>
-	      <li><a href="openejb.war">openejb.war</a></li>
-	  </ul>
-      </li>
-      <li>
-	  EJB 3.0 and other examples:
-	  <ul>
-	      <li><a
-href="openejb-examples-3.0.zip">openejb-examples-3.0.zip</a></li>
-	      <li><a
-href="openejb-examples-3.0.tar.gz">openejb-examples-3.0.tar.gz</a></li>
-	  </ul>
-      </li>
-      <li>
-	  Source:
-	  <ul>
-	      <li><a
-href="openejb-3.0-src.zip">openejb-3.0-src.zip</a></li>
-	      <li><a
-href="openejb-3.0-src.tar.gz">openejb-3.0-src.tar.gz</a></li>
-	  </ul>
-      </li>
-  </ul>
-</p>
-
-<P>Thank you for using <A href="http://tomee.apache.org/">OpenEJB</A>!.
-</P>
-<P><B>The Apache OpenEJB Project</B> <BR><A
-href="http://tomee.apache.org/">http://tomee.apache.org/</A> </P>
-<P>
-<P></P></BODY></HTML>
-
-    
-#  Publishing
-    
-    When all voting is done
-    
-    {code:none}
-    mvn stage:copy -Dsource="http://people.apache.org/~dblevins/stage/repo/" \
-     
--Dtarget="scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository"
-\
-      -DsourceRepositoryId=apache.staging \
-      -DtargetRepositoryId=apache.releases \
-      -Dversion=3.0
-
-
-{code:none}
-
-$ mv 3.0 /www/www.apache.org/dist/openejb/
-
diff --git a/src/main/jbake/content/dev/proxies.adoc b/src/main/jbake/content/dev/proxies.adoc
new file mode 100644
index 0000000..f2d23e2
--- /dev/null
+++ b/src/main/jbake/content/dev/proxies.adoc
@@ -0,0 +1,19 @@
+= Proxies
+:jbake-type: page
+:jbake-status: published
+
+== Where's the Java source for the proxies?
+
+The short answer is we do not generate java code containing any ejb logic at all as other platforms like WebSphere and WebLogic do.
+We use dynamic proxy generation via java.lang.reflect.Proxy.
+
+Most of the commercial platforms predate dynamic proxy generation and not only statically generate java files which are then compiled and included in the app but decided as long as they were generating java files that they would jam-pack them with as many optimizations as they could.
+The result was that significant portions of your application data such as transaction attributes and database queries were stuck in generated vendor code.
+We don't have any equivalent to that.
+
+Dynamic proxies such as java.lang.reflect.Proxy or cglib byte code in memory, not java source, which is immediately turned into a class definition and used.
+The basic paradigm is that you give the library the interfaces you want implemented and some sort of Handler object.
+The library will give you back a proxy instance that does nothing more than call your handler every time a method is called.
+Now it's possible with some trickery to pull the byte code for any java.lang.Class instance out of the classloader and then use some sort of java decompiler library to turn that into some sort of java source file, however there's no real motivation to do so as the VM generated proxies are quite dumb and the code that does all the work is not generated and available for download or svn checkout.
+
+If you are coming from a commercial vendor and simply looking for a good place to begin your debugging, look for implementations java.lang.reflect.InvocationHandler and slap a breakpoint in the "invoke" method and you'll be all set.
diff --git a/src/main/jbake/content/dev/proxies.md b/src/main/jbake/content/dev/proxies.md
deleted file mode 100644
index f08659d..0000000
--- a/src/main/jbake/content/dev/proxies.md
+++ /dev/null
@@ -1,34 +0,0 @@
-Title: Proxies
-<a name="Proxies-Where'stheJavasourcefortheproxies?"></a>
-#  Where's the Java source for the proxies?
-
-The short answer is we do not generate java code containing any ejb logic
-at all as other platforms like WebSphere and WebLogic do.  We use dynamic
-proxy generation via java.lang.reflect.Proxy.
-
-Most of the commercial platforms predate dynamic proxy generation and not
-only statically generate java files which are then compiled and included in
-the app but decided as long as they were generating java files that they
-would jam-pack them with as many optimizations as they could.  The result
-was that significant portions of your application data such as transaction
-attributes and database queries were stuck in generated vendor code.  We
-don't have any equivalent to that.
-
-Dynamic proxies such as java.lang.reflect.Proxy or cglib byte code in
-memory, not java source, which is immediately turned into a class
-definition and used.  The basic paradigm is that you give the library the
-interfaces you want implemented and some sort of Handler object.  The
-library will give you back a proxy instance that does nothing more than
-call your handler every time a method is called.  Now it's possible with
-some trickery to pull the byte code for any java.lang.Class instance out of
-the classloader and then use some sort of java decompiler library to turn
-that into some sort of java source file, however there's no real motivation
-to do so as the VM generated proxies are quite dumb and the code that does
-all the work is not generated and available for download or svn checkout.
-
-If you are coming from a commercial vendor and simply looking for a good
-place to begin your debugging, look for implementations
-java.lang.reflect.InvocationHandler and slap a breakpoint in the "invoke"
-method and you'll be all set.
-
-
diff --git a/src/main/jbake/content/dev/release-tomee.adoc b/src/main/jbake/content/dev/release-tomee.adoc
new file mode 100644
index 0000000..a211513
--- /dev/null
+++ b/src/main/jbake/content/dev/release-tomee.adoc
@@ -0,0 +1,290 @@
+= Releasing TomEE
+:jbake-type: page
+:jbake-status: published
+
+ This document is aimed at guiding a release manager through the general release process. You will need either a Linux, Mac, or failing that a Linux Virtual (with at least a 50GB Drive) on Win.
+
+== Preparation of The Branch
+
+Run menu:ant -f rat.xml[report.txt] on trunk to ensure all licences are in place.
+
+* Review the report.txt and update/add missing headers until clean.
+* _Tip_, search for *Unapproved licenses:* at the beginning of the report for a list.
+
+Branch the version to release and ensure it builds and passes all tests.
+
+Add a buildbot CI setup for branch here:
+
+https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/tomee.conf
+
+Basically search for the following line and it should be obvious how to add a new builder:
+
+ c['builders'].append(tomee_hemera_builder("tomee-trunk-ubuntu", "tomee/tomee/trunk"))
+
+An SVN trigger must be added afterwards.
+This can only be done by someone with admin permissions, such as any PMC chair or an Infra team member.
+Just drop an email to _infrastructure@apache.org_
+
+== Create a TCK Branch
+
+Branch the TCK using the same version as the release branch from here:
+
+https://svn.apache.org/repos/tck/tomee-tck/trunk
+
+Update the TCK branch files to point to the version branch.
+
+ \tckbranch\plus.properties
+ \tckbranch\pom.xml
+ \tckbranch\webprofile-plus.properties
+ \tckbranch\webprofile.properties
+
+Run menu:ant -f rat.xml[report.txt] on the branch.
+
+* Review the report.txt and update/add missing headers until clean.
+* _Tip_, search for *Unapproved licenses:*.
+
+== Check SVN Authentication
+
+Pre-authenticate svn repositories to ensure your credentials are cached before using any tools.
+
+ svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://svn.apache.org/repos/asf/tomee/tomee/branches/testdir1
+ svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://svn.apache.org/repos/asf/tomee/tomee/branches/testdir1
+ svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://repository.apache.org/content/repositories/testdir2
+ svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://repository.apache.org/content/repositories/testdir2
+ svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://dist.apache.org/repos/dist/dev/tomee/testdir3
+ svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://dist.apache.org/repos/dist/dev/tomee/testdir3
+
+== Prepare Maven Authentication
+
+Ensure your maven .m2/settings.xml correct, and be aware that the tools currently require a clear text password:
+
+....
+<server>
+  <id>apache.snapshots.https</id>
+  <username>un</username>
+  <password>pw.in.clear</password>
+</server>
+
+<server>
+  <id>apache.releases.https</id>
+  <username>un</username>
+  <password>pw.in.clear</password>
+</server>
+
+<server>
+  <id>apache.dist.https</id>
+  <username>un</username>
+  <password>pw.in.clear</password>
+</server>
+
+<profiles>
+	<profile>
+	...
+		<repositories>
+			<repository>
+			  <id>apache.dist.https</id>
+			  <url>https://dist.apache.org/repos/dist</url>
+			</repository>
+		  </repositories>
+....
+
+== Code Signing Setup
+
+If this is your first release then you will have to ensure that you have a code signing key prepared on the machine from which you perform the release.
+The process is quite intense.
+You can find information here:
+
+* http://www.apache.org/dev/release-signing.html
+* http://maven.apache.org/developers/release/pmc-gpg-keys.html
+
+However, the basic steps are:
+
+* Create a key using *gpg --gen-key*, using size 4096 and answering the questions that command issues.
+* During the process you will have to generate random entropy, this is best achieved in another console and issuing the command *find / > /dev/null* and waiting a minute.
+* List the keys using *gpg --list-keys* and take note of the name
+
+Once you have your key then you will need to append it to the key file here:
+
+* http://www.apache.org/dist/tomee/KEYS
+
+That is best done as the file itself explains, once you open and view it in a UTF-8 safe text editor you will see the description at the top.
++ Just follow the instructions there on how to append your key.
+The basic steps are also here, please read both before you proceed:
+
+* Save the KEYS file on your local machine and import it using *gpg --import KEYS*
+* Then create the new KEYS file using **(gpg --list-sigs +++<your name="">+++&& gpg --armor --export +++<your name="">+++) >> KEYS**+++</your>++++++</your>+++
+* Check that the new KEYS file contains your key.
+* Log in to people.apache.org and locate /dist/tomee/KEYS
+* Make a backup of the remote KEYS file just in case
+* Overwrite the old /dist/tomee/KEYS file with your new one that now also contains your key.
+* Go to http://pgp.mit.edu/ and add your ascii armoured key
+* Take note of your key fingerprint using **gpg --fingerprint +++<your name="">+++**+++</your>+++
+* Go to https://id.apache.org, log in and fill OpenPGP Public Key Primary Fingerprint: with the value of your fingerprint.
+
+== Build the Release Tools
+
+Checkout the release tools using SVN from here https://svn.apache.org/repos/asf/tomee/sandbox/release-tools
+
+Really read the README.mdtext and follow the instructions for building the 3rd party libraries.
++ Basically SVN checkout and compile https://svn.codehaus.org/swizzle/trunk[Swizzle] and https://svn.apache.org/repos/asf/creadur/tentacles/trunk[Tentacles]
+
+Build the release tools, _mvn clean install -DskipTests -DfailIfNoTests=false_
+
+Have a look at *run.sh* to see the entry point.
+
+Understand that the release tools are not polished, and you currently may have to edit source and re-compile.
+
+== Site Staging <<staging,>> For some of the release steps you will need to provide documentation on the site.
+Checkout the site here:
+
+https://svn.apache.org/repos/asf/tomee/site/trunk
+
+Most of the content can be found under 'content' and subdirectories.
+
+When you commit changes the site should be built automatically by the buildbot, but you can force a build on IRC using:
+
+ **tomee-bot: force build tomee-site-staging**
+
+The buildbot staging result can be seen here:
+
+http://ci.apache.org/builders/tomee-site-staging
+
+And the actual staging site, where you can review your changes, is here:
+
+http://tomee.staging.apache.org/
+
+Once you are happy with the staging you can publish to the real site using:
+
+https://cms.apache.org/tomee/publish
+
+== Begin The Release Process
+
+Ensure TCK is passing all tests, and if so create an SVN tag from the branch.
+
+....
+Note: It is a future goal to either separate OpenEJB from TomEE or unify the versions so the
+[maven-release-plugin](http://maven.apache.org/maven-release/maven-release-plugin/) can be used.
+
+Because we cannot use the Maven release tools we currently have to create a an SVN tag manually. The best way to do this is to:
+
+ - Copy the branch to a staging branch using:
+   > svn copy https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]  https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging -m "Staging [version]"
+ - Checkout the staging branch using:
+   > svn co https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging tomee-[version]-staging
+ - Update all SNAPSHOT versions to the release versions in the local tomee-[version]-staging and commit.
+ - Create the tag from the staging:
+   > svn copy https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging https://svn.apache.org/repos/asf/tomee/tomee/tags/tomee-[version] -m "Tag [version]"
+ - Delete the staging branch using:
+   > svn rm https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging -m "Delete staging"
+....
+
+Open a console on the release-tools directory.
+
+NOTE: Before running any *./run.sh* activity always check the release tools code for the command tomee-release-tools/src/main/java/org/apache/openejb/tools/release/cmd.
+At the moment some of the commands need manually editing to work.
+Eventually the commands should be re-written.
+
+All JIRA actions should be performed on the ASF JIRA here:
+
+https://issues.apache.org/jira/browse/TOMEE
+
+Ensure JIRAs have been filed for commits using *./run.sh reviewcommits*
+
+Update fixVersions for JIRAs used in SVN commits using *./run.sh updatejiras* - _Untested, requires investigation_
+
+Review and bulk Close all JIRAs for the version to be released.
+
+Publish the changed binaries report (if any) using *./run.sh comparelibraries*
+
+Write and publish the release notes preview on the staging site.
+
+Publish a summary of the RAT report preview on the staging site.
+
+Using the RAT report as a guide update LICENSE and NOTICE files for any changed binaries, and add new ones if required.
+
+Update branch versions.
+How you do this is up to you at this point in time.
+
+Update trunk versions.
+How you do this is up to you at this point in time.
+
+Create the next version iterations in JIRA.
+
+== Rolling Out The Preview
+
+....
+Note: Before running anything below ensure you either have:
+
+ - A valid tomee-release.properties from the last release in your home directory (Speak to the last release manager).
+ - Or have modified **tomee-release-tools/src/main/java/org/apache/openejb/tools/release/Release.java** with current versions and **mvn clean install**.
+....
+
+Ensure the TCK passes with preview repositories by editing and ensuring paths are correct in the following files:
+
+ \tckbranch\plus.properties
+ \tckbranch\pom.xml
+ \tckbranch\webprofile-plus.properties
+ \tckbranch\webprofile.properties
+
+Publish the preview using *./run.sh roll binaries legal releasenotes preview* - You can run these tasks like so, or individually in order.
+It will be likely that this will have to be repeated several times before a successful vote.
+
+The _legal_ step will create the legal report files in the /tmp/download/staging-[revision]/legal directory.
+These need to be added to the staging repo.
+
+* Delete the [legal]/repo and [legal]/content directories, as these are no longer required  rm -R /tmp/download/staging-[revision]/legal/content  rm -R /tmp/download/staging-[revision]/legal/repo
+* Perform a non-recursive checkout of the staging repo and add the legal:  svn co -N https://dist.apache.org/repos/dist/dev/tomee/staging-[revision] /tmp/download/staging  mv /tmp/download/staging-[revision]/legal /tmp/download/staging  cd /tmp/download/staging-[revision]  svn add legal
+
+Once the binaries are in place add the staging repository to the corresponding TCK project and fire off a build.
+To fire off a build on EC2 from the TCK directory speak to the last release manager for the *curl* command to use
+
+If the TCK fails then discuss, fix and re-roll.
+
+Publish a https://www.apache.org/foundation/voting.html[Vote] if, and only if, the TCK passes.
+
+Votes are generally managed and identified using keywords such as [VOTE], [CANCELLED] and [RESULT]
+
+If the vote fails then discuss, fix and re-roll.
+
+== Voted Binaries
+
+Once the vote has passed then release the binaries on Nexus: https://repository.apache.org/index.html#welcome
+
+Update both OpenEJB and TomEE JIRA versions as released (Set the release date).
+
+Copy the binaries to the release location (User rights require a PMC to do this)
+
+ From: https://dist.apache.org/repos/dist/dev/tomee/staging-[stagingId]/tomee-[version]
+ To: https://dist.apache.org/repos/dist/release/tomee/tomee-[version]
+
+Wait for the binaries to replicate to mirrors.
+Here is a neat script from David to check the status:
+
+....
+#!/bin/bash
+
+RELEASE=${1?Specify a release, such as './mirror_check.sh tomee-1.7.1'}
+
+function list_mirrors {
+    DYN=http://www.apache.org/dyn/closer.cgi/tomee/$RELEASE/
+    wget -q -O - $DYN | tr '">< ' '\n' | grep "^http.*$RELEASE/" | sort | uniq
+}
+
+function status_code {
+    wget -v "$1" 2>&1| grep 'awaiting response' | tr ' ' '\n' | grep "[0-9]"
+}
+
+list_mirrors | while read n; do
+    echo "$(status_code $n) $n"
+done | sort | grep 'http'
+....
+
+Commit and publish changes to the site, see xref:release-tomee.adoc#staging[Site Staging]
+
+ https://cms.apache.org/tomee/publish
+
+== Blog
+
+Announce to the world that TomEE has new bells and whistles!
+
+https://blogs.apache.org/roller-ui/login.rol + http://twitter.com/ApacheTomEE + http://facebook.com/ApacheTomEE
diff --git a/src/main/jbake/content/dev/release-tomee.md b/src/main/jbake/content/dev/release-tomee.md
deleted file mode 100644
index a125e4a..0000000
--- a/src/main/jbake/content/dev/release-tomee.md
+++ /dev/null
@@ -1,283 +0,0 @@
-#Releasing TomEE
-
-	This document is aimed at guiding a release manager through the general release process. You will need either a Linux, Mac, or failing that a Linux Virtual (with at least a 50GB Drive) on Win. 
-
-###Preparation of The Branch
-	
-Run **ant -f rat.xml > report.txt** on trunk to ensure all licences are in place.
-
- - Review the report.txt and update/add missing headers until clean.
- - *Tip*, search for **Unapproved licenses:** at the beginning of the report for a list.
-
-Branch the version to release and ensure it builds and passes all tests.
-
-Add a buildbot CI setup for branch here:
-
-[https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/tomee.conf](https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/tomee.conf)
-
-Basically search for the following line and it should be obvious how to add a new builder:
-
-	c['builders'].append(tomee_hemera_builder("tomee-trunk-ubuntu", "tomee/tomee/trunk"))
-	
-An SVN trigger must be added afterwards. This can only be done by someone with admin permissions, such as any PMC chair or an Infra team member.
-Just drop an email to *infrastructure@apache.org*
-
-###Create a TCK Branch
-
-Branch the TCK using the same version as the release branch from here:
-
-[https://svn.apache.org/repos/tck/tomee-tck/trunk](https://svn.apache.org/repos/tck/tomee-tck/trunk)
-
-Update the TCK branch files to point to the version branch.
-
-	\tckbranch\plus.properties
-	\tckbranch\pom.xml
-	\tckbranch\webprofile-plus.properties
-	\tckbranch\webprofile.properties
-
-Run **ant -f rat.xml > report.txt** on the branch.
-
- - Review the report.txt and update/add missing headers until clean.
- - *Tip*, search for **Unapproved licenses:**.
-
-###Check SVN Authentication
- 
-Pre-authenticate svn repositories to ensure your credentials are cached before using any tools.
-
-	svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://svn.apache.org/repos/asf/tomee/tomee/branches/testdir1
-	svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://svn.apache.org/repos/asf/tomee/tomee/branches/testdir1
-	svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://repository.apache.org/content/repositories/testdir2
-	svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://repository.apache.org/content/repositories/testdir2
-	svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://dist.apache.org/repos/dist/dev/tomee/testdir3
-	svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://dist.apache.org/repos/dist/dev/tomee/testdir3
-
-###Prepare Maven Authentication
-
-Ensure your maven .m2/settings.xml correct, and be aware that the tools currently require a clear text password:
-
-	<server>
-	  <id>apache.snapshots.https</id>
-	  <username>un</username>
-	  <password>pw.in.clear</password>
-	</server>
-
-	<server>
-	  <id>apache.releases.https</id>
-	  <username>un</username>
-	  <password>pw.in.clear</password>
-	</server>
-
-	<server>
-	  <id>apache.dist.https</id>
-	  <username>un</username>
-	  <password>pw.in.clear</password>
-	</server>
-
-	<profiles>
-		<profile>
-		...
-			<repositories>
-				<repository>
-				  <id>apache.dist.https</id>
-				  <url>https://dist.apache.org/repos/dist</url>
-				</repository>
-			  </repositories>
-
-###Code Signing Setup
-
-If this is your first release then you will have to ensure that you have a code signing key prepared on the machine from which you perform the release. The process is quite intense. You can find information here:
-
- - [http://www.apache.org/dev/release-signing.html](http://www.apache.org/dev/release-signing.html)
- - [http://maven.apache.org/developers/release/pmc-gpg-keys.html](http://maven.apache.org/developers/release/pmc-gpg-keys.html)
- 
-However, the basic steps are:
-
- - Create a key using **gpg --gen-key**, using size 4096 and answering the questions that command issues.
- - During the process you will have to generate random entropy, this is best achieved in another console and issuing the command **find / > /dev/null** and waiting a minute.
- - List the keys using **gpg --list-keys** and take note of the name
-
-Once you have your key then you will need to append it to the key file here:
-
- - [http://www.apache.org/dist/tomee/KEYS](http://www.apache.org/dist/tomee/KEYS)
-
-That is best done as the file itself explains, once you open and view it in a UTF-8 safe text editor you will see the description at the top.  
-Just follow the instructions there on how to append your key. The basic steps are also here, please read both before you proceed:
-
- - Save the KEYS file on your local machine and import it using **gpg --import KEYS**
- - Then create the new KEYS file using **(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS**
- - Check that the new KEYS file contains your key.
- - Log in to people.apache.org and locate /dist/tomee/KEYS
- - Make a backup of the remote KEYS file just in case
- - Overwrite the old /dist/tomee/KEYS file with your new one that now also contains your key.
- - Go to [http://pgp.mit.edu/](http://pgp.mit.edu/) and add your ascii armoured key
- - Take note of your key fingerprint using **gpg --fingerprint <your name>**
- - Go to [https://id.apache.org](https://id.apache.org), log in and fill OpenPGP Public Key Primary Fingerprint: with the value of your fingerprint.
- 
-###Build the Release Tools
-
-Checkout the release tools using SVN from here [https://svn.apache.org/repos/asf/tomee/sandbox/release-tools](https://svn.apache.org/repos/asf/tomee/sandbox/release-tools)
-
-Really read the README.mdtext and follow the instructions for building the 3rd party libraries.  
-Basically SVN checkout and compile [Swizzle](https://svn.codehaus.org/swizzle/trunk) and [Tentacles](https://svn.apache.org/repos/asf/creadur/tentacles/trunk)
-
-Build the release tools, *mvn clean install -DskipTests -DfailIfNoTests=false*
-
-Have a look at **run.sh** to see the entry point.
-
-Understand that the release tools are not polished, and you currently may have to edit source and re-compile.
-
-###Site Staging
-<a href="#staging"/>
-For some of the release steps you will need to provide documentation on the site. Checkout the site here:
-
-[https://svn.apache.org/repos/asf/tomee/site/trunk](https://svn.apache.org/repos/asf/tomee/site/trunk)
-
-Most of the content can be found under 'content' and subdirectories.
-
-When you commit changes the site should be built automatically by the buildbot, but you can force a build on IRC using:
-
-    **tomee-bot: force build tomee-site-staging**
-
-The buildbot staging result can be seen here:
-
-[http://ci.apache.org/builders/tomee-site-staging](http://ci.apache.org/builders/tomee-site-staging)
-
-And the actual staging site, where you can review your changes, is here:
-
-[http://tomee.staging.apache.org/](http://tomee.staging.apache.org/)
-
-Once you are happy with the staging you can publish to the real site using:
-
-[https://cms.apache.org/tomee/publish](https://cms.apache.org/tomee/publish)
-
-###Begin The Release Process
-
-Ensure TCK is passing all tests, and if so create an SVN tag from the branch.
-
-	Note: It is a future goal to either separate OpenEJB from TomEE or unify the versions so the
-	[maven-release-plugin](http://maven.apache.org/maven-release/maven-release-plugin/) can be used.
-
-	Because we cannot use the Maven release tools we currently have to create a an SVN tag manually. The best way to do this is to:
-	
-	 - Copy the branch to a staging branch using:  
-	   > svn copy https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]  https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging -m "Staging [version]"
-	 - Checkout the staging branch using:  
-	   > svn co https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging tomee-[version]-staging
-	 - Update all SNAPSHOT versions to the release versions in the local tomee-[version]-staging and commit.
-	 - Create the tag from the staging:  
-	   > svn copy https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging https://svn.apache.org/repos/asf/tomee/tomee/tags/tomee-[version] -m "Tag [version]"
-	 - Delete the staging branch using:  
-	   > svn rm https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging -m "Delete staging"
-
-Open a console on the release-tools directory.
-
-Note: Before running any **./run.sh** activity always check the release tools code for the command tomee-release-tools/src/main/java/org/apache/openejb/tools/release/cmd.
-At the moment some of the commands need manually editing to work. Eventually the commands should be re-written.
-
-All JIRA actions should be performed on the ASF JIRA here:
-
-[https://issues.apache.org/jira/browse/TOMEE](https://issues.apache.org/jira/browse/TOMEE)
-
-Ensure JIRAs have been filed for commits using **./run.sh reviewcommits**
-
-Update fixVersions for JIRAs used in SVN commits using **./run.sh updatejiras** - *Untested, requires investigation*
-
-Review and bulk Close all JIRAs for the version to be released.
-
-Publish the changed binaries report (if any) using **./run.sh comparelibraries**
-
-Write and publish the release notes preview on the staging site. 
-
-Publish a summary of the RAT report preview on the staging site.
-
-Using the RAT report as a guide update LICENSE and NOTICE files for any changed binaries, and add new ones if required.
-
-Update branch versions. How you do this is up to you at this point in time.
-
-Update trunk versions. How you do this is up to you at this point in time.
-
-Create the next version iterations in JIRA.
-
-###Rolling Out The Preview
-
-	Note: Before running anything below ensure you either have:
-
-	 - A valid tomee-release.properties from the last release in your home directory (Speak to the last release manager).
-	 - Or have modified **tomee-release-tools/src/main/java/org/apache/openejb/tools/release/Release.java** with current versions and **mvn clean install**.
-	 	 
-Ensure the TCK passes with preview repositories by editing and ensuring paths are correct in the following files:
-
-	\tckbranch\plus.properties
-	\tckbranch\pom.xml
-	\tckbranch\webprofile-plus.properties
-	\tckbranch\webprofile.properties
-
-Publish the preview using **./run.sh roll binaries legal releasenotes preview** - You can run these tasks like so, or individually in order.
-It will be likely that this will have to be repeated several times before a successful vote.
-
-The *legal* step will create the legal report files in the /tmp/download/staging-[revision]/legal directory. These need to be added to the staging repo.
- - Delete the [legal]/repo and [legal]/content directories, as these are no longer required
-    rm -R /tmp/download/staging-[revision]/legal/content
-    rm -R /tmp/download/staging-[revision]/legal/repo
-
- - Perform a non-recursive checkout of the staging repo and add the legal:
-	svn co -N https://dist.apache.org/repos/dist/dev/tomee/staging-[revision] /tmp/download/staging
-	mv /tmp/download/staging-[revision]/legal /tmp/download/staging
-	cd /tmp/download/staging-[revision]
-	svn add legal
-
-Once the binaries are in place add the staging repository to the corresponding TCK project and fire off a build.
-To fire off a build on EC2 from the TCK directory speak to the last release manager for the **curl** command to use
-
-If the TCK fails then discuss, fix and re-roll.
-
-Publish a [Vote](https://www.apache.org/foundation/voting.html) if, and only if, the TCK passes.
-
-Votes are generally managed and identified using keywords such as [VOTE], [CANCELLED] and [RESULT]
-
-If the vote fails then discuss, fix and re-roll.
-
-###Voted Binaries
-
-Once the vote has passed then release the binaries on Nexus: [https://repository.apache.org/index.html#welcome](https://repository.apache.org/index.html#welcome)
-
-Update both OpenEJB and TomEE JIRA versions as released (Set the release date).
-
-Copy the binaries to the release location (User rights require a PMC to do this)
-
-	From: https://dist.apache.org/repos/dist/dev/tomee/staging-[stagingId]/tomee-[version]
-	To: https://dist.apache.org/repos/dist/release/tomee/tomee-[version] 
-    
-
-Wait for the binaries to replicate to mirrors. Here is a neat script from David to check the status:
-
-    #!/bin/bash
-
-    RELEASE=${1?Specify a release, such as './mirror_check.sh tomee-1.7.1'}
-
-    function list_mirrors {
-        DYN=http://www.apache.org/dyn/closer.cgi/tomee/$RELEASE/
-        wget -q -O - $DYN | tr '">< ' '\n' | grep "^http.*$RELEASE/" | sort | uniq
-    }
-
-    function status_code {
-        wget -v "$1" 2>&1| grep 'awaiting response' | tr ' ' '\n' | grep "[0-9]"
-    }
-
-    list_mirrors | while read n; do
-        echo "$(status_code $n) $n"
-    done | sort | grep 'http'
-
-Commit and publish changes to the site, see [Site Staging](release-tomee.html#staging)
-
-    https://cms.apache.org/tomee/publish
-
-
-###Blog
-
-Announce to the world that TomEE has new bells and whistles!
-
-[https://blogs.apache.org/roller-ui/login.rol](https://blogs.apache.org/roller-ui/login.rol)  
-[http://twitter.com/ApacheTomEE](http://twitter.com/ApacheTomEE)  
-[http://facebook.com/ApacheTomEE](http://facebook.com/ApacheTomEE)  
-[https://plus.google.com/118203123063829126066](https://plus.google.com/118203123063829126066)  
diff --git a/src/main/jbake/content/dev/roadmap.adoc b/src/main/jbake/content/dev/roadmap.adoc
new file mode 100644
index 0000000..29c1e52
--- /dev/null
+++ b/src/main/jbake/content/dev/roadmap.adoc
@@ -0,0 +1,23 @@
+= High level goals
+:jbake-type: page
+:jbake-status: published
+
+* Pre Certification
+ ** pass the tcks
+ ** push a beta and get the certification mark
+* Post Certification
+ ** fill out features, performance tune and polish
+ ** release final
+
+== Post Certification requirements
+
+Aside from passing the tcks, the
+
+== Post Certification goals
+
+Unordered list:
+
+* Restore Tomcat 6 support (possibly also Tomcat 5.5)
+* Make webapps/ dir deployment work properly again
+* Fix undeploy memory leak
+* Flush out TomEE embedded API
diff --git a/src/main/jbake/content/dev/roadmap.md b/src/main/jbake/content/dev/roadmap.md
deleted file mode 100644
index 411e585..0000000
--- a/src/main/jbake/content/dev/roadmap.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# High level goals
-
- - Pre Certification
-    - pass the tcks
-    - push a beta and get the certification mark
- - Post Certification
-    - fill out features, performance tune and polish
-    - release final
-
-# Post Certification requirements
-
-Aside from passing the tcks, the
-
-# Post Certification goals
-
-Unordered list:
-
- - Restore Tomcat 6 support (possibly also Tomcat 5.5)
- - Make webapps/ dir deployment work properly again
- - Fix undeploy memory leak
- - Flush out TomEE embedded API
-
-
diff --git a/src/main/jbake/content/dev/rsync.adoc b/src/main/jbake/content/dev/rsync.adoc
new file mode 100644
index 0000000..d5faa94
--- /dev/null
+++ b/src/main/jbake/content/dev/rsync.adoc
@@ -0,0 +1,106 @@
+= rsync
+:jbake-type: page
+:jbake-status: published
+
+`rsync` is basically the only copy command you'll ever need on a linux/unix system.
+It can copy in the same machine or across machines.
+It can retain file permissions and owners.
+You can run it over and over again say if the first execution failed or if there are new files to be copied over.
+
+== same machine copy
+
+`rsync -av fromdir/ todir/`
+
+Will copy the contents of `fromdir/` to the directory `todir/`
+
+To make a little example, some fancy bash syntax for creating a directory structure.
+
+ $ mkdir -p one/{green,blue}/{square,circle}{1..3}
+ $ find .
+ .
+ ./one
+ ./one/blue
+ ./one/blue/circle1
+ ./one/blue/circle2
+ ./one/blue/circle3
+ ./one/blue/square1
+ ./one/blue/square2
+ ./one/blue/square3
+ ./one/green
+ ./one/green/circle1
+ ./one/green/circle2
+ ./one/green/circle3
+ ./one/green/square1
+ ./one/green/square2
+ ./one/green/square3
+
+So to copy `one` to a new directory `two` we just do this
+
+`rsync -av one/ two/`
+
+Which gives us this as output
+
+[source,console]
+----
+$ rsync -av one/ two/
+building file list ... done
+created directory two
+./
+blue/
+blue/circle1/
+blue/circle2/
+blue/circle3/
+blue/square1/
+blue/square2/
+blue/square3/
+green/
+green/circle1/
+green/circle2/
+green/circle3/
+green/square1/
+green/square2/
+green/square3/
+
+sent 301 bytes  received 110 bytes  822.00 bytes/sec
+total size is 0  speedup is 0.00
+----
+
+Now we have the following directory structure:
+
+ $ find .
+ .
+ ./one
+ ./one/blue
+ ./one/blue/circle1
+ ./one/blue/circle2
+ ./one/blue/circle3
+ ./one/blue/square1
+ ./one/blue/square2
+ ./one/blue/square3
+ ./one/green
+ ./one/green/circle1
+ ./one/green/circle2
+ ./one/green/circle3
+ ./one/green/square1
+ ./one/green/square2
+ ./one/green/square3
+ ./two
+ ./two/blue
+ ./two/blue/circle1
+ ./two/blue/circle2
+ ./two/blue/circle3
+ ./two/blue/square1
+ ./two/blue/square2
+ ./two/blue/square3
+ ./two/green
+ ./two/green/circle1
+ ./two/green/circle2
+ ./two/green/circle3
+ ./two/green/square1
+ ./two/green/square2
+ ./two/green/square3
+
+== beware the slashes
+
+There's a strange thing when not using the slashes at the end.
+To keep things sane, just always use the slashes at the end of the two file paths and things will always be easy to remember.
diff --git a/src/main/jbake/content/dev/rsync.md b/src/main/jbake/content/dev/rsync.md
deleted file mode 100644
index 81dd002..0000000
--- a/src/main/jbake/content/dev/rsync.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# rsync
-
-`rsync` is basically the only copy command you'll ever need on a linux/unix system.  It can copy in the same machine or across machines.  It can retain file permissions and owners.  You can run it over and over again say if the first execution failed or if there are new files to be copied over.
-
-## same machine copy
-
-`rsync -av fromdir/ todir/`
-
-Will copy the contents of `fromdir/` to the directory `todir/`
-
-To make a little example, some fancy bash syntax for creating a directory structure.
-
-    $ mkdir -p one/{green,blue}/{square,circle}{1..3}
-    $ find .
-    .
-    ./one
-    ./one/blue
-    ./one/blue/circle1
-    ./one/blue/circle2
-    ./one/blue/circle3
-    ./one/blue/square1
-    ./one/blue/square2
-    ./one/blue/square3
-    ./one/green
-    ./one/green/circle1
-    ./one/green/circle2
-    ./one/green/circle3
-    ./one/green/square1
-    ./one/green/square2
-    ./one/green/square3
-
-So to copy `one` to a new directory `two` we just do this
-
-`rsync -av one/ two/`
-
-Which gives us this as output
-
-    $ rsync -av one/ two/
-    building file list ... done
-    created directory two
-    ./
-    blue/
-    blue/circle1/
-    blue/circle2/
-    blue/circle3/
-    blue/square1/
-    blue/square2/
-    blue/square3/
-    green/
-    green/circle1/
-    green/circle2/
-    green/circle3/
-    green/square1/
-    green/square2/
-    green/square3/
-
-    sent 301 bytes  received 110 bytes  822.00 bytes/sec
-    total size is 0  speedup is 0.00
-
-Now we have the following directory structure:
-
-    $ find .
-    .
-    ./one
-    ./one/blue
-    ./one/blue/circle1
-    ./one/blue/circle2
-    ./one/blue/circle3
-    ./one/blue/square1
-    ./one/blue/square2
-    ./one/blue/square3
-    ./one/green
-    ./one/green/circle1
-    ./one/green/circle2
-    ./one/green/circle3
-    ./one/green/square1
-    ./one/green/square2
-    ./one/green/square3
-    ./two
-    ./two/blue
-    ./two/blue/circle1
-    ./two/blue/circle2
-    ./two/blue/circle3
-    ./two/blue/square1
-    ./two/blue/square2
-    ./two/blue/square3
-    ./two/green
-    ./two/green/circle1
-    ./two/green/circle2
-    ./two/green/circle3
-    ./two/green/square1
-    ./two/green/square2
-    ./two/green/square3
-
-## beware the slashes
-
-There's a strange thing when not using the slashes at the end.  To keep things sane, just always use the slashes at the end of the two file paths and things will always be easy to remember.
-
diff --git a/src/main/jbake/content/dev/rules-of-thumb.adoc b/src/main/jbake/content/dev/rules-of-thumb.adoc
new file mode 100644
index 0000000..90137fb
--- /dev/null
+++ b/src/main/jbake/content/dev/rules-of-thumb.adoc
@@ -0,0 +1,16 @@
+= Rules of Thumb
+:jbake-type: page
+:jbake-status: published
+
+== Configuration
+
+* Configuration settings should have configurable defaults at the module, ear, server and cluster level (when clustering is added).
+For example, security settings should be configurable on a per ejb, ejb jar, ear and server levels.
+* Settings should have a smooth increase in complexity from very simple to complex.
+For example, a cache setting could start with a simple max-size, and over time the user could increase the complexity by adding configuration for disk paging up to specification of complex flushing rules.
+
+== Validation
+
+* Applications should be fully validated before handing it off to the deployment system.
+This vastly simplifies the deployment system because it assumes that an application is valid.
+As a corollary, the deployment system should not be complicated with code that tests for invalid deployments or with code to print graceful error messages to a user.
diff --git a/src/main/jbake/content/dev/rules-of-thumb.md b/src/main/jbake/content/dev/rules-of-thumb.md
deleted file mode 100644
index 54a8130..0000000
--- a/src/main/jbake/content/dev/rules-of-thumb.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Title: Rules of Thumb
-
-<a name="RulesofThumb-Configuration"></a>
-### Configuration
-
-* Configuration settings should have configurable defaults at the module,
-ear, server and cluster level (when clustering is added).  For example,
-security settings should be configurable on a per ejb, ejb jar, ear and
-server levels.	
-
-* Settings should have a smooth increase in complexity from very simple to
-complex.  For example, a cache setting could start with a simple max-size,
-and over time the user could increase the complexity by adding
-configuration for disk paging up to specification of complex flushing
-rules.
-
-<a name="RulesofThumb-Validation"></a>
-### Validation
-
-* Applications should be fully validated before handing it off to the
-deployment system.  This vastly simplifies the deployment system because it
-assumes that an application is valid.  As a corollary, the deployment
-system should not be complicated with code that tests for invalid
-deployments or with code to print graceful error messages to a user.
diff --git a/src/main/jbake/content/dev/source-code.adoc b/src/main/jbake/content/dev/source-code.adoc
new file mode 100644
index 0000000..5eaf882
--- /dev/null
+++ b/src/main/jbake/content/dev/source-code.adoc
@@ -0,0 +1,129 @@
+= Source Code
+:jbake-type: page
+:jbake-status: published
+
+*We have moved to GIT.
+This means that anything you may find elsewhere on the site about SVN is no longer valid!*
+
+The documentation will be updated over the next few days and weeks but if you find anything that is *really* misleading then please send a message to the developer list at: link:mailto:dev@tomee.apache.org[dev@tomee.apache.org]
+
+Probably the best GIT tutorial on the planet can be found here: https://www.atlassian.com/git/ - This is a great reference for both existing and new GIT users.
+Please take a look.
+
+== GIT Information for Everyone
+
+You can browse the source code via the http://gitbox.apache.org/repos/asf/tomee.git[web interface].
+
+If you intend to hack on TomEE then it is recommended that you create a https://github.com[GitHub Account] and https://help.github.com/articles/fork-a-repo/[fork] the TomEE repository so that you can submit pull requests (See below).
+
+If you just want to build the source version then you can download (aka clone) the sources of Apache TomEE with a GIT client from the following URL https://gitbox.apache.org/repos/asf/tomee.git - The 'master' branch is the current development branch.
+
+Performing the checkout from a command line using the GIT client (recommended) is as easy as executing the following command:
+
+----
+git clone https://gitbox.apache.org/repos/asf/tomee.git tomee
+----
+
+If you want to checkout a specific branch then you can just change that in the command:
+
+----
+git clone -b tomee-1.7.x https://gitbox.apache.org/repos/asf/tomee.git tomee-1.7.x
+----
+
+Or alternatively with Apache Maven 3.0.5 or later:
+
+----
+mvn scm:checkout -DconnectionUrl=scm:git:https://gitbox.apache.org/repos/asf/tomee.git -DcheckoutDirectory=tomee
+----
+
+NOTE: This method does not require the GIT client.
+
+== GIT Information for TomEE Contributors
+
+*Please read our own detailed GitFlow workflow information xref:git.adoc[here]*
+
+We will be using the https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow[Gitflow Workflow] from day one.
+Please read and understand how this works.
+
+See https://help.github.com/articles/using-pull-requests/[here] for information on pull requests.
+
+The official Apache Committer documentation can be found https://gitbox.apache.org/#committers-getting-started[here]
+
+== Continuous integration
+
+Apache TomEE continuous integration relies on http://ci.apache.org/[Apache Buildbot].
+All builders are available http://ci.apache.org/builders[from the page].
+
+* http://ci.apache.org/builders/tomee-1.7.x-ubuntu[Apache TomEE 1.7.x under Ubuntu]
+* http://ci.apache.org/builders/tomee-trunk-ubuntu[Apache TomEE 2.x under Ubuntu]
+* http://ci.apache.org/builders/tomee-trunk-win-sunjdk[Apache TomEE 2.x under Windows using a Sun/Oracle JDK]
+* http://ci.apache.org/builders/tomee-trunk-win-ibmjdk6[Apache TomEE 2.x under Windows using an IBM JDK]
+
+== Maven
+
+To build the code, you'll need to grab a copy of http://maven.apache.org[Apache Maven], version 3.0.5 or later.
+
+== Memory Settings
+
+It is pretty much guaranteed that you will need to give Maven an increase on the available memory.
++ Depending on the OS you are working on the fix can be as easy as (Note: _-XX:MaxPermSize=256M_ is ignored by Java 8):
+
+----
+export MAVEN_OPTS="-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"
+----
+
+on MacOS and Unices or
+
+----
+set "MAVEN_OPTS=-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"
+----
+
+on MS Windows.
+
+== Full Build
+
+A fast build that skips all tests, generates no reports and creates full distribution archives is as follows:
+
+----
+mvn -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install
+----
+
+The full build with tests takes around 2 hours:
+
+----
+mvn -Dassemble clean install
+----
+
+The output of those commands should end with "BUILD SUCCESSFUL"
+
+It is of course possible to just compile and test individual modules.
+Just change to the module directory and run the same commands as above.
+
+== Quick Build
+
+If you are in real a hurry (and let's face it most of us are) you can run a quick build without the examples using the _quick_ profile:
+
+----
+mvn -Pquick -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install
+----
+
+== Binary locations
+
+Once built, the TomEE binaries will be located at:
+
+....
+ls [project]/tomee/apache-tomee/target/*.zip
+
+tomee/apache-tomee/target/apache-tomee-jaxrs-[version]-SNAPSHOT.zip
+tomee/apache-tomee/target/apache-tomee-plus-[version]-SNAPSHOT.zip
+tomee/apache-tomee/target/apache-tomee-webprofile-[version]-SNAPSHOT.zip
+tomee/apache-tomee/target/apache-tomee-plume-[version]-SNAPSHOT.tar.gz
+....
+
+The OpenEJB standalone binaries will be located at:
+
+....
+ls [project]/assembly/openejb-standalone/target/*.zip
+
+assembly/openejb-standalone/target/apache-openejb-[version]-SNAPSHOT.zip
+....
diff --git a/src/main/jbake/content/dev/source-code.md b/src/main/jbake/content/dev/source-code.md
deleted file mode 100644
index 2708283..0000000
--- a/src/main/jbake/content/dev/source-code.md
+++ /dev/null
@@ -1,101 +0,0 @@
-Title: Source Code
-
-**<span style="color: rgb(128,0,0);">We have moved to GIT</span>. This means that anything you may find elsewhere on the site about SVN is no longer valid!**
-  
-The documentation will be updated over the next few days and weeks but if you find anything that is **really** misleading then please send a message to the developer list at: [dev@tomee.apache.org](mailto:dev@tomee.apache.org)
-
-Probably the best GIT tutorial on the planet can be found here: [https://www.atlassian.com/git/](https://www.atlassian.com/git/) - This is a great reference for both existing and new GIT users. Please take a look.
-
-###GIT Information for Everyone
-
-You can browse the source code via the [web interface](http://gitbox.apache.org/repos/asf/tomee.git).
-
-If you intend to hack on TomEE then it is recommended that you create a [GitHub Account](https://github.com) and [fork](https://help.github.com/articles/fork-a-repo/) the TomEE repository so that you can submit pull requests (See below).
-
-If you just want to build the source version then you can download (aka clone) the sources of Apache TomEE with a GIT client from the following URL [https://gitbox.apache.org/repos/asf/tomee.git](https://gitbox.apache.org/repos/asf/tomee.git) - The 'master' branch is the current development branch.
-
-Performing the checkout from a command line using the GIT client (recommended) is as easy as executing the following command:
-> git clone [https://gitbox.apache.org/repos/asf/tomee.git](https://gitbox.apache.org/repos/asf/tomee.git) tomee
-
-If you want to checkout a specific branch then you can just change that in the command:
-
-> git clone -b tomee-1.7.x [https://gitbox.apache.org/repos/asf/tomee.git](https://gitbox.apache.org/repos/asf/tomee.git) tomee-1.7.x
-
-Or alternatively with Apache Maven 3.0.5 or later:
-
-> mvn scm:checkout
-> -DconnectionUrl=scm:git:[https://gitbox.apache.org/repos/asf/tomee.git](https://gitbox.apache.org/repos/asf/tomee.git)
-> -DcheckoutDirectory=tomee
-
-Note: This method does not require the GIT client.
-
-<a name="SourceCode-Contributors"></a>
-###GIT Information for TomEE Contributors
-
-**Please read our own detailed GitFlow workflow information [here](git.html)**
-
-We will be using the [Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) from day one. Please read and understand how this works.
-
-See [here](https://help.github.com/articles/using-pull-requests/) for information on pull requests. 
-
-The official Apache Committer documentation can be found [here](https://gitbox.apache.org/#committers-getting-started)
-
-<a name="SourceCode-Continuousintegration"></a>
-###Continuous integration
-
-Apache TomEE continuous integration relies on [Apache Buildbot](http://ci.apache.org/).
-All builders are available [from the page](http://ci.apache.org/builders).
-
-* [Apache TomEE 1.7.x under Ubuntu](http://ci.apache.org/builders/tomee-1.7.x-ubuntu)
-* [Apache TomEE 2.x under Ubuntu](http://ci.apache.org/builders/tomee-trunk-ubuntu)
-* [Apache TomEE 2.x under Windows using a Sun/Oracle JDK](http://ci.apache.org/builders/tomee-trunk-win-sunjdk)
-* [Apache TomEE 2.x under Windows using an IBM JDK](http://ci.apache.org/builders/tomee-trunk-win-ibmjdk6)
-
-<a name="SourceCode-Building"></a>
-###Maven
-To build the code, you'll need to grab a copy of [Apache Maven](http://maven.apache.org), version 3.0.5 or later.
- 
-###Memory Settings
-
-It is pretty much guaranteed that you will need to give Maven an increase on the available memory.  
-Depending on the OS you are working on the fix can be as easy as (Note: *-XX:MaxPermSize=256M* is ignored by Java 8):  
->export MAVEN_OPTS="-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"
-
-on MacOS and Unices or 
->set "MAVEN_OPTS=-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"
-  
-on MS Windows.
-
-###Full Build
-
-A fast build that skips all tests, generates no reports and creates full distribution archives is as follows:
->mvn -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install
-
-The full build with tests takes around 2 hours:
->mvn -Dassemble clean install
-
-The output of those commands should end with "BUILD SUCCESSFUL"
-
-It is of course possible to just compile and test individual modules. Just change to the module directory and run the same commands as above.
-
-###Quick Build
-
-If you are in real a hurry (and let's face it most of us are) you can run a quick build without the examples using the *quick* profile:
->mvn -Pquick -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install
-
-###Binary locations
-
-Once built, the TomEE binaries will be located at:
-
-    ls [project]/tomee/apache-tomee/target/*.zip
-	
-    tomee/apache-tomee/target/apache-tomee-jaxrs-[version]-SNAPSHOT.zip
-    tomee/apache-tomee/target/apache-tomee-plus-[version]-SNAPSHOT.zip
-    tomee/apache-tomee/target/apache-tomee-webprofile-[version]-SNAPSHOT.zip
-    tomee/apache-tomee/target/apache-tomee-plume-[version]-SNAPSHOT.tar.gz
-
-The OpenEJB standalone binaries will be located at:
-
-    ls [project]/assembly/openejb-standalone/target/*.zip
-	
-    assembly/openejb-standalone/target/apache-openejb-[version]-SNAPSHOT.zip
diff --git a/src/main/jbake/content/dev/take-my-code.adoc b/src/main/jbake/content/dev/take-my-code.adoc
new file mode 100644
index 0000000..867cdd2
--- /dev/null
+++ b/src/main/jbake/content/dev/take-my-code.adoc
@@ -0,0 +1,14 @@
+= Take My Code Gladly!
+:jbake-type: page
+:jbake-status: published
+
+We (the individuals who makeup the community) will happily take your code.
+
+The easiest way for us to take code both legally and practically is by:
+
+. Create a patch and attach it in a https://issues.apache.org/jira/browse/OPENEJB[new JIRA issue]
+. Send a note to the dev list
+
+Anyone who is a committer has already signed a http://apache.org/licenses/#clas[Contributor License Agreement]  (CLA) stating that the code they contribute is intended to be licensed under the Apache Public License.
+If you intend to contribute a lot, consider sending one in as it will make things go faster.
+The next best thing to having a CLA on file.
diff --git a/src/main/jbake/content/dev/take-my-code.md b/src/main/jbake/content/dev/take-my-code.md
deleted file mode 100644
index 42967e0..0000000
--- a/src/main/jbake/content/dev/take-my-code.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Title: Take My Code
-Gladly!  We (the individuals who makeup the community) will happily take
-your code.
-
-The easiest way for us to take code both legally and practically is by:
-
-1. Create a patch and attach it in a [new JIRA issue](https://issues.apache.org/jira/browse/OPENEJB)
-1. Send a note to the dev list
-
-Anyone who is a committer has already signed a [Contributor License Agreement](http://apache.org/licenses/#clas)
- (CLA) stating that the code they contribute is intended to be licensed
-under the Apache Public License.  If you intend to contribute a lot,
-consider sending one in as it will make things go faster.  The next best
-thing to having a CLA on file.
diff --git a/src/main/jbake/content/dev/thread-dumps.adoc b/src/main/jbake/content/dev/thread-dumps.adoc
new file mode 100644
index 0000000..e152521
--- /dev/null
+++ b/src/main/jbake/content/dev/thread-dumps.adoc
@@ -0,0 +1,34 @@
+= Thread Dumps
+:jbake-type: page
+:jbake-status: published
+
+== Java 5 tools
+
+This should work on any Java 5 or newer platform.
+
+[source,console]
+----
+$ jps
+3392 Jps
+3387 JConsole
+
+
+
+$ jstack 3387
+Attaching to process ID 3387, please wait...
+Debugger attached successfully.
+Client compiler detected.
+JVM version is 1.5.0_16-133
+Thread t@59139: (state = BLOCKED)
+- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
+- javax.swing.TimerQueue.run() @bci=14, line=236 (Interpreted frame)
+- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
+----
+
+== OS signals
+
+In the case of an OS signal the thread dump is printed to the console window that started the java process.
+If you use javaw to start the process, the dump is lost.
+
+On Windows, typing _ctrl-break_ in the console window that started the Java process.
+On Unix, the command *kill -QUIT <pid>* or typing *ctrl-&#92;* in the console window that started the Java process.
diff --git a/src/main/jbake/content/dev/thread-dumps.md b/src/main/jbake/content/dev/thread-dumps.md
deleted file mode 100644
index fb5b5bc..0000000
--- a/src/main/jbake/content/dev/thread-dumps.md
+++ /dev/null
@@ -1,37 +0,0 @@
-Title: Thread Dumps
-<a name="ThreadDumps-Java5tools"></a>
-# Java 5 tools
-
-This should work on any Java 5 or newer platform.
-
-
-    $ jps
-    3392 Jps
-    3387 JConsole
-
-
-
-    $ jstack 3387
-    Attaching to process ID 3387, please wait...
-    Debugger attached successfully.
-    Client compiler detected.
-    JVM version is 1.5.0_16-133
-    Thread t@59139: (state = BLOCKED)
-    - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
-    - javax.swing.TimerQueue.run() @bci=14, line=236 (Interpreted frame)
-    - java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
-
-
-
-<a name="ThreadDumps-OSsignals"></a>
-# OS signals
-
-In the case of an OS signal the thread dump is printed to the console
-window that started the java process.  If you use javaw to start the
-process, the dump is lost.
-
-On Windows, typing *ctrl-break* in the console window that started the Java
-process.
-On Unix, the command *kill \-QUIT <pid>* or typing *ctrl-&#92;* in the
-console window that started the Java process.
-
diff --git a/src/main/jbake/content/dev/tips-and-suggestions.md b/src/main/jbake/content/dev/tips-and-suggestions.adoc
similarity index 93%
rename from src/main/jbake/content/dev/tips-and-suggestions.md
rename to src/main/jbake/content/dev/tips-and-suggestions.adoc
index 70cc5ff..15f72e7 100644
--- a/src/main/jbake/content/dev/tips-and-suggestions.md
+++ b/src/main/jbake/content/dev/tips-and-suggestions.adoc
@@ -1,11 +1,11 @@
-Title: Tips and Suggestions
-> 
+= Tips and Suggestions
+:jbake-type: page
+:jbake-status: published
 
-<a name="TipsandSuggestions-Usefulinformationforcontributors"></a>
-## Useful information for contributors
 
-<a name="TipsandSuggestions-JIRAusage"></a>
-### JIRA usage
+== Useful information for contributors
+
+=== JIRA usage
 It's good to leverage JIRA, but everything that happens there should be
 considered invisible for the most part and only reviewed on a random and
 infrequent basis.
@@ -52,8 +52,7 @@
 {+}If you'd like to get added to the openejb-contributors JIRA group, just
 ping the list with your JIRA id and someone will add you.{+}
 
-<a name="TipsandSuggestions-Commits"></a>
-### Commits
+=== Commits
 
 *Contributed by*: David Blevins
 +Here is an email from David Blevins explaining the things he keeps in mind
@@ -86,12 +85,10 @@
 As far as jira titles, I always *try and make them short and succinct* for
 the future release notes.
 
-<a name="TipsandSuggestions-SVN+JIRA"></a>
-### SVN + JIRA
+=== SVN + JIRA
 
 
-<a name="TipsandSuggestions-*Contributedby*:Vamsi"></a>
-#### *Contributed by*: Vamsi
+==== *Contributed by*: Vamsi
 
 I had trouble figuring out if a revision is related to a JIRA and what all
 revisions corresponded to a particular JIRA.  So, I always include the JIRA
@@ -107,16 +104,14 @@
 $Rev$ $Date$ and add those so that the file will have them from my next
 commit onwards.
 
-<a name="TipsandSuggestions-*Contributedby*:DavidBlevins"></a>
-#### *Contributed by*: David Blevins
+==== *Contributed by*: David Blevins
 
 > If you put "\[jira\](jira\.html)
 >  OPENEJB-XXX" anywhere in your subject line and cc jira@apache.org our
 > email gets added as a comment with all '> quoted' text stripped out.
 PS: XXX is the JIRA issue number
 
-<a name="TipsandSuggestions-Details"></a>
-#### Details
+==== Details
 
 The following subject lines did work:
 - Subject: \[jira\](jira\.html)
@@ -184,43 +179,54 @@
 
 </three>
 
-### scp, ssh, and rsync examples for working with files and directories on
-people.apache.org
+=== scp, ssh, and rsync examples for working with files and directories on people.apache.org
 
 *Contributed by*: David Blevins
 
 *copying a file to apache from locahost*
+----
 scp topsecret.tar.gz kmalhi@people.apache.org:
 scp index.html kmalhi@people.apache.org:public_html/
+----
 
 *copying a file from apache to localhost -- reverse of the above*
+----
 scp kmalhi@people.apache.org:topsecret.tar.gz ./
 scp kmalhi@people.apache.org:public_html/index.html ./
+----
 
 *copying directories*
+----
 scp \-r kmalhi@people.apache.org:public_html ./
 scp \-r public_html kmalhi@people.apache.org:
+----
 
 *When the directory exists, better to rsync*
 
 *pull a dir from apache*
+----
 rsync \-v \-e ssh \-lzrptog kmalhi@people.apache.org:public_html ./
 rsync \-v \-e ssh \-lzrptog
 kmalhi@people.apache.org:/home/kmalhi/public_html ./
+----
 
 *the two above commands do the exact same thing*
 
 *push the same dir to apache*
+----
 rsync \-v \-e ssh \-lzrptog ./public_html kmalhi@people.apache.org:
 rsync \-v \-e ssh \-lzrptog ./public_html
 kmalhi@people.apache.org:/home/kmalhi/
+----
 
 *the two above commands do the exact same thing*
 
 *sometimes useful to execute commands over ssh (piping works too)*
+----
 ssh people.apache.org ls /home \| tee home-dirs-on-apache.txt
 echo \-e 'Hello, me\n\nHow am I doing today?' \| ssh
 kmalhi@people.apache.org mail \-s 'Greetings' kmalhi@apache.org
+----
 
 *For Putty users*
 *Contributed by:* Mohammad
@@ -228,15 +234,16 @@
 Windows version too, I issue this command to upload a file to my home dir
 on people.apache.org
 
+----
     pscp [[file-name]
  | [dir]
 ] mnour@people.apache.org:~/
+----
 
 and if you want to access your home page, you should create a dir with the
 name public_html, and then upload files to it.
 
-<a name="TipsandSuggestions-Acoolsubversiontip"></a>
-### A cool subversion tip
+=== A cool subversion tip
 
 *Contributed by*: Jacek Laskowski.
 
@@ -244,6 +251,7 @@
 otherwise have to type in on the command line.*
 Edit/Add the following configurations to \~/.subversion/config:
 
+----
     [miscellany]
     global-ignores = *.log *.save *.o *.lo *.la #*# .*~ *~ .#* .DS_Store
     build dist target *.ipr *.iml *.iws .project .classpath .settings
@@ -314,10 +322,9 @@
     Revision
     *.sql = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
 Revision
+----
 
-
-<a name="TipsandSuggestions-Maventips"></a>
-### Maven tips
+=== Maven tips
 
 *Contributed by:* Jacek and David
 *I want to make a small change in a module , for example openejb-core and
@@ -325,11 +332,15 @@
 test my change. What is the easiest and fastest way of doing it?*
 Run the following from within openejb-core
 
+----
     mvn -Dtest=none install
+----
 
 Now run the following from within openejb-standalone
 
+----
     mvn -Dtest=none clean package
+----
 
 *So what if I wanted to do the above in a single command?*
 It's possible with $\{module\} and $\{assemble\} properties and *create a
@@ -337,9 +348,11 @@
 
 Another option is and *if you're in bash*, here's what could be done
 
+----
     # camping out in assembly/openejb-standalone/
     $ (cd ../../container/openejb-core && mvn clean install -Dtest=skip) && mvn
 clean install && ./try.sh
+----
 
 That's one command, parens and all. The first "$" is the prompt,don't type
 that.  Then just edit ./try.sh to do what you're looking for on the
@@ -351,6 +364,7 @@
 
 For example
 
+----
     $ export FOO=hello && (export FOO=byebye) && echo $FOO
     hello
     
@@ -358,12 +372,14 @@
     /Users/dblevins
     /tmp
     /Users/dblevins
+----
 
 As well, several commands can be combined with '&&'.  Far better than just
 separating commands with ';' as if one of the commands fail, the remaining
 commands will not be executed.
 
 *Suggestion from Dain*
+----
 > &nbsp;I suggest that you always do a full build (with tests) before
 > committing.  I do this even if the change is small because I have been
 > burned too many times by trivial changes. At the very least I suggest you
@@ -375,10 +391,11 @@
 > compile the test classes so you know that your change doesn't have compile
 > errors.
 > If you want to be thorough, run with \-Dassemble.
+----
 
-<a name="TipsandSuggestions-JAXBUsage"></a>
-### JAXB Usage
-{note:title=TODO}
+=== JAXB Usage
+
+TODO:
 Create a write up from here
 http://www.nabble.com/jaxb-question-td18023648.html
-{note}
+
diff --git a/src/main/jbake/content/dev/validation-keys-audit-report.adoc b/src/main/jbake/content/dev/validation-keys-audit-report.adoc
new file mode 100644
index 0000000..1bc3c79
--- /dev/null
+++ b/src/main/jbake/content/dev/validation-keys-audit-report.adoc
@@ -0,0 +1,265 @@
+= Validation Keys Audit Report
+:jbake-type: page
+:jbake-status: published
+
+Warning: This page is auto-generated.
+Any manual changes would be over-written the next time this page is regenerated
+
+TODO: figure out if this page is still relevant, it certainly isn't being generated any more.
+
+== Out of a total of 144 keys, 123 have been tested.
+
+Test coverage for keys is 85.41666666666666 %.\{info} {table-plus:autoNumber=true}
+
+| abstractAnnotatedAsBean |   | ann.ejb.beanClass |   | ann.ejb.notInterface |   | ann.localRemote.generalconflict |   | asynchronous.badExceptionType |   | asynchronous.badReturnType |   | asynchronous.methodignored |   | asynchronous.missing |   | callback.missing.possibleTypo |   | cannot.validate |   | client.missingMainClass |   | ignoredClassAnnotation |   | interfaceAnnotatedAsBean |   | missing.dependent.class |   | misslocated.class |   | multiplyAnnotatedAsBean |   | timeout.badReturnType |   | timeout.invalidArguments |   | timeout.missing.possibleTypo |   | timeout.tooManyMethods |   | xml.noEjbClass |  \{table-plus} +++<a name="ValidationKeysAuditReport-Listofkeyswhichhavebeentested.">++++++</a>+++
+
+== List of keys which have been tested.
+
+{table-plus:autoNumber=true}+++<table>++++++<tr>++++++<th>+++Key </td>+++<td>+++Method which tests the key </th></tr>
++++<tr>++++++<td>+++ann.ejb.ejbLocalObject+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidEjbRefTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.ejb.ejbObject+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidEjbRefTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.invalidConcurrencyAttribute+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidConcurrencyAttributeTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidconcurrencyattributetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.invalidTransactionAttribute+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidTransactionAttributeTest.annotation() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidtransactionattributetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.local.noAttributes+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidAnnotatedInterfacesTest.noAttributes() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidannotatedinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.localRemote.ambiguous+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidAnnotatedInterfacesTest.ambiguous() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidannotatedinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+
+
++++<tr>++++++<td>+++ann.notAnInterface+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.remote.noAttributes+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidAnnotatedInterfacesTest.noAttributes() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidannotatedinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.remoteOrLocal.converse.parent+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test2() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.remoteOrLocal.ejbHome+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.remoteOrLocal.ejbLocalHome+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.remoteOrLocal.ejbLocalObject+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ann.remoteOrLocal.ejbObject+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+
+
+
+
+
+
++++<tr>++++++<td>+++aroundInvoke.missing.possibleTypo+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++aroundInvoke.mustThrowException+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidAroundTimeoutTest.testInvalidAroundTimeoutReturnValue() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidaroundtimeouttest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++callback.badModifier+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++callback.badReturnType+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++callback.invalidArguments+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++callback.missing+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++callback.sessionSynchronization.invalidUse+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++callback.sessionbean.invalidusage+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test2() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++conflictingSecurityAnnotations+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidSecurityAnnotationsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidsecurityannotationstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++containerTransaction.ejbNameRequired+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidContainerTransactionTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcontainertransactiontest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++containerTransaction.noSuchEjbName+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidContainerTransactionTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcontainertransactiontest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++dependsOn.circuit+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckDependsOnTest.dependsOn() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkdependsontest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++dependsOn.noSuchEjb+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckDependsOnTest.dependsOn() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkdependsontest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ejbAnnotation.onClassWithNoBeanInterface+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidEjbRefTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++ejbAnnotation.onClassWithNoName+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidEjbRefTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++entity.no.ejb.create+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
+
+
++++<tr>++++++<td>+++injectionTarget.nameContainsSet+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInjectionTargetsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinjectiontargetstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptor.callback.badReturnType+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptor.callback.invalidArguments+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptor.callback.missing+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptor.callback.missing.possibleTypo+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptor.unused+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptorBinding.ejbNameRequiredWithMethod+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interceptorBinding.noSuchEjbName+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interface.beanOnlyAnnotation+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++interfaceMethod.beanOnlyAnnotation+++</td>++++++<td>+++[org/apache/openejb/config/rules/InvalidInterfacesTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++methodPermission.ejbNameRequired+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidMethodPermissionsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidmethodpermissionstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++methodPermission.noSuchEjbName+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidMethodPermissionsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidmethodpermissionstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++missing.class+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckMissingClassTest.wrongClassType() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkmissingclasstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++no.busines.method+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckNoBusinessMethodTest.noBusinessMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknobusinessmethodtest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++no.busines.method.args+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckNoBusinessMethodTest.noBusinessMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknobusinessmethodtest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++no.busines.method.case+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckNoBusinessMethodTest.noBusinessMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknobusinessmethodtest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++no.home.create+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++noInterfaceDeclared.entity+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckWrongClassTypeTest.wrongClassType() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkwrongclasstypetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++permitAllAndRolesAllowedOnClass+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckInvalidSecurityAnnotationsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidsecurityannotationstest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextAnnotation.onClassWithNoName+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextAnnotation.onEntityManagerFactory+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextAnnotation.onNonEntityManager+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextExtented.nonStateful+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextRef.noMatches+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextRef.noPersistenceUnits+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextRef.noUnitName+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceContextRef.vagueMatches+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.vagueMatches() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceUnitAnnotation.onClassWithNoName+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceUnitAnnotation.onEntityManager+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceUnitAnnotation.onNonEntityManagerFactory+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceUnitRef.noMatches+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
++++<tr>++++++<td>+++persistenceUnitRef.noPersistenceUnits+++</td>++++++<td>+++[org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org