You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2018/11/30 22:27:16 UTC

[32/34] tomee-site-generator git commit: Merge old content. Move tech content to main build.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/applicationcomposer/index.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/applicationcomposer/index.adoc b/src/main/jbake/content/advanced/applicationcomposer/index.adoc
deleted file mode 100755
index 50390cc..0000000
--- a/src/main/jbake/content/advanced/applicationcomposer/index.adoc
+++ /dev/null
@@ -1,76 +0,0 @@
-= ApplicationComposer with JBatch
-:jbake-date: 2016-03-16
-:jbake-type: page
-:jbake-status: published
-:jbake-tomeepdf:
-
-ApplicationComposer can be a way to run a JBatch not needing any HTTP connector.
-
-Here is an example making batch integration easy - note you can extract the generic part in a library very easily:
-
-TIP: if you didn't check yet BatchEE provides some standalone utilities for JBatch but the idea of this page can be reused for a lot of applications.
-
-[source,java]
-----
-// helper class reusable for any batch
-abstract class BatchApplication {
-    private static final DateTimeFormatter DATE = DateTimeFormatter.ofPattern("YYYYMMddHHmmss");
-
-    protected Report runBatch(final String batchName, final Properties config) {
-        final JobOperator operator = BatchRuntime.getJobOperator();
-        final long id = operator.start(batchName, config);
-        Batches.waitForEnd(operator, id);
-        return new Report(operator.getJobExecution(id), operator.getParameters(id));
-    }
-
-    @Module // we enforce BatchEE to be initialized as an EJB context to get JNDI for JTA init, needed for TomEE 1
-    public EjbModule ensureBatchEESetupIsDoneInTheRightContext() {
-        final EjbJar ejbJar = new EjbJar().enterpriseBean(new SingletonBean(BatchEEBeanManagerInitializer.class));
-
-        final Beans beans = new Beans();
-        beans.addManagedClass(BatchEEBeanManagerInitializer.Init.class);
-
-        final EjbModule ejbModule = new EjbModule(ejbJar);
-        ejbModule.setModuleId("batchee-shared-components");
-        ejbModule.setBeans(beans);
-        return ejbModule;
-    }
-
-    public static class Report {
-        private final JobExecution execution;
-        private final Properties properties;
-
-        public Report(final JobExecution execution, final Properties properties) {
-            this.execution = execution;
-            this.properties = properties;
-        }
-
-        public JobExecution getExecution() {
-            return execution;
-        }
-
-        public Properties getProperties() {
-            return properties;
-        }
-    }
-}
-
-@Classes(cdi = true, value = { MyFilter.class, MoveFile.class, InputFile.class, MyReader.class, LoggingListener.class })
-public class MyBatch extends BatchApplication {
-    private final Properties config;
-
-    public Mybatch(final String[] args) { // main args
-        this.config = new Properties() {{ // create the batch config
-            setProperty("input-directory", args[0]);
-        }};
-    }
-
-    public Report execute(final String inputDirectory) {
-        return runBatch("sunstone", config);
-    }
-
-    public static void main(final String[] args) throws Exception {
-        ApplicationComposers.run(MyBatch.class, args);
-    }
-}
-----

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/client/jndi.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/client/jndi.adoc b/src/main/jbake/content/advanced/client/jndi.adoc
deleted file mode 100644
index a6e461a..0000000
--- a/src/main/jbake/content/advanced/client/jndi.adoc
+++ /dev/null
@@ -1,116 +0,0 @@
-== Java Naming and Directory Interface (JNDI)
-:jbake-date: 2016-10-14
-:jbake-type: page
-:jbake-status: published
-:jbake-tomeepdf:
-
-TomEE has several JNDI client intended for multiple usages.
-
-== Default one
-
-In a standalone instance you generally don't need (or want) to specify anything
-to do a lookup. Doing so you will inherit from the contextual environment:
-
-[source,java]
-----
-final Context ctx = new InitialContext();
-ctx.lookup("java:....");
-----
-
-== LocalInitialContextFactory
-
-This is the legacy context factory used by OpenEJB. It is still useful to fallback
-on the "default" one in embedded mode where sometimes classloaders or libraries can mess
-up the automatic conextual context.
-
-Usage:
-
-[source,java]
-----
-Properties properties = new Properties();
-properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory");
-final Context ctx = new InitialContext(properties);
-ctx.lookup("java:....");
-----
-
-This context factory supports few more options when *you boot the container* creating a context:
-
-|===
-| Name | Description
-| openejb.embedded.remotable | true/false: starts embedded services
-| Context.SECURITY_PRINCIPAL/Context.SECURITY_CREDENTIALS | the *global* security identity for the whole container
-|===
-
-IMPORTANT: `Context.SECURITY_*` shouldn't be used for runtime lookups with `LocalInitialContextFactory`, it would leak a security identity and make the runtime no more thread safe.
-This factory was deprecated starting with 7.0.2 in favor of `org.apache.openejb.core.OpenEJBInitialContextFactory`.
-
-== OpenEJBInitialContextFactory
-
-This factory allows you to access local EJB and container resources.
-
-[source,java]
-----
-Properties properties = new Properties();
-properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.OpenEJBInitialContextFactory");
-final Context ctx = new InitialContext(properties);
-ctx.lookup("java:....");
-----
-
-== RemoteInitialContextFactory
-
-Intended to be used to contact a remote server, the `org.apache.openejb.client.RemoteInitialContextFactory` relies on the provider url
-to contact a tomee instance:
-
-[source,java]
-----
-Properties p = new Properties();
-p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
-p.put(Context.PROVIDER_URL, "failover:ejbd://192.168.1.20:4201,ejbd://192.168.1.30:4201");
-
-final InitialContext remoteContext = new InitialContext(p);
-ctx.lookup("java:....");
-----
-
-Contrarly to local one, the remote factory supports `Context.SECURITY_*` options in a thread safe manner and you can do lookups at runtime using them.
-
-See link:../../admin/cluster/index.html[Cluster] page for more details on the options.
-
-=== Security
-
-The context configuration can take additional configuration to handle EJB security:
-
-[source]
-----
-p.put("openejb.authentication.realmName", "my-realm"); // optional
-p.put(Context.SECURITY_PRINCIPAL, "alfred");
-p.put(Context.SECURITY_CREDENTIALS, "bat");
-----
-
-The realm will be used by JAAS to get the right LoginModules and principal/credentials to
-do the actual authentication.
-
-==== HTTP case
-
-Often HTTP layer is secured and in this case you need to authenticate before the EJBd (remote EJB TomEE protocol) layer.
-Thanks to TomEE/Tomcat integration login there will propagate to the EJBd context.
-
-This can be done passing the token you need to set as `Authorization` header in the `PROVIDER_URL`:
-
-[source]
-----
-// tomee/openejb principal/credentials
-p.put(Context.PROVIDER_URL, "http://localhost:8080/tomee/ejb?authorization=Basic%20dG9tZWU6b3BlbmVqYg==");
-----
-
-The token passed as `authorization` query parameter is the header value URL encoded. It can
-be any token like a basic one, a custom one, an OAuth2 one (in this case you need to renew it programmatically
-and change your client instance when renewing) etc...
-
-TIP: basic being very common there is a shortcut with two alternate query parameter replacing `authorization` one: `basic.password` and `basic.username`.
-
-Finally if you don't use `Authorization` header you can change the used header setting `authorizationHeader` query parameter.
-
-NOTE: `authorization`, `authorizationHeader`, `basic.username`, and `basic.password` are removed
-from the URL before opening the connection and therefore not logged in the remote server access log since version 7.0.3.
-
-

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/index.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/index.adoc b/src/main/jbake/content/advanced/index.adoc
deleted file mode 100755
index 7928b61..0000000
--- a/src/main/jbake/content/advanced/index.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-= Advanced
-:jbake-date: 2016-03-16
-:jbake-type: page
-:jbake-status: published
-:jbake-tomeepdf:
-
-Click link:../docs.html[here] to find advanced documentation.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/jms/jms-configuration.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/jms/jms-configuration.adoc b/src/main/jbake/content/advanced/jms/jms-configuration.adoc
deleted file mode 100644
index 701b1dd..0000000
--- a/src/main/jbake/content/advanced/jms/jms-configuration.adoc
+++ /dev/null
@@ -1,67 +0,0 @@
-= Why is my ActiveMQ/JMS MDB not scaling as expected?
-:jbake-date: 2017-02-22
-:jbake-type: page
-:jbake-status: published
-:jbake-tomeepdf:
-
-==== Why my ActiveMQ/JMS MDB is not scaling as expected?
-
-There are multiple configurations points to ensure you scale as much as you want.
-
-Here some common configuration to validate (note that when possible the sample value is the default):
-
-- The resource adapter thread pool ("worker threads" or `WorkManager`) limits the number of max work threads:
-
-[source,xml]
-----
-<Resource id="my resource adapter" ....>
-  # using -1 will make the server using cached threads (unbounded)
-  # min recommanded: maxSessions + 1 (for connect())
-  threadPoolSize = 30
-</Resource>
-----
-
-- Then the MDB container itself has a upper bound through `InstanceLimit` which controls the max MDB instance count:
-
-[source,xml]
-----
-<Container id="my mdb container" type="MESSAGE">
-    # -1 will disable it
-    # min recommanded = maxSessions
-    InstanceLimit = 10
-</Container>
-----
-
-- ActiveMQ `maxSessions` controls how many sessions a MDB can use:
-
-[source,java]
-----
-@MessageDriven(activationConfig = {
-        @javax.ejb.ActivationConfigProperty(propertyName = "maxSessions", propertyValue = "1"),
-        @javax.ejb.ActivationConfigProperty(propertyName = "destination", propertyValue = "target-queue")
-})
-public static class MyMdb implements MessageListener {
-    @Override
-    public void onMessage(final Message message) {
-        // ...
-    }
-}
-----
-
-- The ConnectionFactory has also an instance pool through geronimo-connector logic, configuration
- can make the behavior changing but this is controlled through pool related variables (the pool and resource properties are merged in the definition):
-
-[source,xml]
-----
-<Resource id="my connection factory" type="ConnectionFactory">
-    # recommanded to be aligned on maxSessions
-    PoolMaxSize = 10
-    # for 100% MDB (no client) you can evaluate to turn it off/false, for client it can still be useful depending what you do
-    Pooling = true
-</Resource>
-----
-
-==== Slow Message Consumption
-
-If you find you have a slow consumption of messages there are several options to have a look (activemq website explains it very well)
-but one very impacting option can be the prefetch size.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/setup/index.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/setup/index.adoc b/src/main/jbake/content/advanced/setup/index.adoc
deleted file mode 100755
index 4fe684d..0000000
--- a/src/main/jbake/content/advanced/setup/index.adoc
+++ /dev/null
@@ -1,142 +0,0 @@
-= How to Setup TomEE in production
-:jbake-date: 2016-03-16
-:jbake-type: page
-:jbake-status: published
-
-
-You can use TomEE as described on link:../../admin/directory-structure.html[Directory Structure] page but in production it is better to
-split TomEE and application binaries and configuration.
-
-Idea is to have this kind of layout (the root is the one you prefer):
-
-ifndef::backend-pdf[]
-
-[#filetree.col-md-4]
-[{
-    label: '/some/path',
-    description: 'any location on your file system',
-    children: [
-        {
-            label: 'tomee',
-            description: 'all tomee binaries will be there, note: you often do the same for the JVM versions you have',
-            children: [
-                {
-                    label: 'tomee-1.7.1',
-                    description: 'a particular tomee version (just unzip it there)',
-                    children: [
-                        { label: 'bin', description: 'the startup binaries/scripts' },
-                        { label: 'conf', description: 'default shared configuration for this version, can be overwritten by instance' },
-                        { label: 'lib', description: 'the binaries' }
-                    ]
-                },
-                {
-                    label: 'tomee-1.7.2',
-                    description: 'a particular tomee version (just unzip it there)',
-                    children: [
-                        { label: 'bin', description: 'the startup binaries/scripts' },
-                        { label: 'conf', description: 'default shared configuration for this version, can be overwritten by instance' },
-                        { label: 'lib', description: 'the binaries' }
-                    ]
-                },
-                {
-                    label: 'tomee-7.0.0-M3',
-                    description: 'a particular tomee version (just unzip it there)',
-                    children: [
-                        { label: 'bin', description: 'the startup binaries/scripts' },
-                        { label: 'conf', description: 'default shared configuration for this version, can be overwritten by instance' },
-                        { label: 'lib', description: 'the binaries' }
-                    ]
-                }
-            ]
-        },
-        {
-            label: 'applications',
-            description: 'all applications',
-            children: [
-                {
-                    label: 'application1',
-                    description: 'any application instance (ie configuration + binaries)',
-                    children: [
-                        { label: 'bin', description: 'provide scripts for this instance (see under that file layout)' },
-                        { label: 'conf', description: 'the instance configuration, typically what is in tomee/conf when used in standalone' },
-                        { label: 'lib', description: 'some additional binaries like JDBC drivers' },
-                        { label: 'logs', description: 'instances logs location' },
-                        { label: 'work', description: 'dedicated work directory' },
-                        { label: 'temp', description: 'instance temporary folder' },
-                        { label: 'webapps', description: 'instance webapp folder' }
-                    ]
-                },
-                {
-                    label: 'application2',
-                    description: 'any application instance (ie configuration + binaries)',
-                    children: [
-                        { label: 'bin', description: 'provide scripts for this instance (see under that file layout)' },
-                        { label: 'conf', description: 'the instance configuration, typically what is in tomee/conf when used in standalone' },
-                        { label: 'lib', description: 'some additional binaries like JDBC drivers' },
-                        { label: 'logs', description: 'instances logs location' },
-                        { label: 'work', description: 'dedicated work directory' },
-                        { label: 'temp', description: 'instance temporary folder' },
-                        { label: 'webapps', description: 'instance webapp folder' }
-                    ]
-                }
-            ]
-        }
-    ]
-}]
-
-
-[#filetreedetail.col-md-8.bs-callout.bs-callout-primary]
-Click on a tree node or open a folder to see the detail there.
-
-[.clearfix]
-&nbsp;
-
-endif::[]
-
-=== Instance scripts
-
-The idea for instances (applications) scripts is to simply delegate to tomcat ones but customizing the JVM and TomEE versions.
-
-Customizing the version (and locations) is done in `bin/setenv.sh` of instances.
-
-Here are an example for the common scripts (of course you can write helper version like restart etc).
-
-==== setenv.sh
-
-[source,bash]
-----
-#! /bin/sh
-
-# which java
-export JAVA_HOME="/some/path/java/jdk-8u60"
-# which tomee
-export CATALINA_HOME="/some/path/tomee/tomee-7.0.0-M3"
-# where is the application - to let tomcat/tomee finds the configuration
-export CATALINA_BASE="/some/path/application1/"
-# to let tomee be able to kill the instance if shutdown doesn't work (see shutdown script)
-export CATALINA_PID="/some/path/application1/work/tomee.pid"
-----
-
-==== startup
-
-[source,bash]
-----
-#! /bin/bash
-
-proc_script_base="`cd $(dirname $0) && cd .. && pwd`"
-source "$proc_script_base/bin/setenv.sh"
-nohup "$CATALINA_HOME/bin/startup.sh" "$@" > $proc_script_base/logs/nohup.log &
-----
-
-==== shutdown
-
-[source,bash]
-----
-#! /bin/bash
-
-proc_script_base="`cd $(dirname $0) && cd .. && pwd`"
-source "$proc_script_base/bin/setenv.sh"
-# we support parameters like timeout and force, typically we would call it this way: ./shutdown 1200 -force
-"$CATALINA_HOME/bin/shutdown.sh" "$@"
-----
-

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/shading/index.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/shading/index.adoc b/src/main/jbake/content/advanced/shading/index.adoc
deleted file mode 100755
index fc4b18a..0000000
--- a/src/main/jbake/content/advanced/shading/index.adoc
+++ /dev/null
@@ -1,276 +0,0 @@
-= Fat / Uber jars - Using the Shade Plugin
-:jbake-date: 2016-03-16
-:jbake-type: page
-:jbake-status: published
-:jbake-tomeepdf:
-
-Shading the container and the application has some challenges like merging correctly resources (`META-INF/services/` typically).
-
-Here is a maven shade plugin configuration working for most cases:
-
-[source,xml]
-----
-<plugin>
-  <groupId>org.apache.maven.plugins</groupId>
-  <artifactId>maven-shade-plugin</artifactId>
-  <version>2.3</version>
-  <executions>
-    <execution>
-      <phase>package</phase>
-      <goals>
-        <goal>shade</goal>
-      </goals>
-      <configuration>
-        <dependencyReducedPomLocation>${project.build.directory}/reduced-pom.xml</dependencyReducedPomLocation>
-        <transformers>
-          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-            <mainClass>org.apache.tomee.embedded.FatApp</mainClass>
-          </transformer>
-          <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
-            <resource>META-INF/cxf/bus-extensions.txt</resource>
-          </transformer>
-          <transformer implementation="org.apache.openwebbeans.maven.shade.OpenWebBeansPropertiesTransformer" />
-        </transformers>
-        <filters>
-          <filter> <!-- we don't want JSF to be activated -->
-            <artifact>*:*</artifact>
-            <excludes>
-              <exclude>META-INF/faces-config.xml</exclude>
-            </excludes>
-          </filter>
-        </filters>
-      </configuration>
-    </execution>
-  </executions>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.openwebbeans</groupId>
-      <artifactId>openwebbeans-maven</artifactId>
-      <version>1.7.0/version>
-    </dependency>
-  </dependencies>
-</plugin>
-----
-
-NOTE: see link:../tomee-embedded/index.html[TomEE Embedded] page for more information about tomee embedded options.
-
-IMPORTANT: this shade uses TomEE Embedded but you can do the same with an link:../applicationcomposer/index.html[Application Composer] application.
-
-TIP: if you have `META-INF/web-fragment.xml` in your application you will need to merge them in a single one in the shade. Note that tomcat provides one
-which can be skipped in this operation since it is there only as a marker for jasper detection.
-
-Then just build the jar:
-
-[source,bash]
-----
-mvn clean package
-----
-
-And you can run it:
-
-[source,bash]
-----
-java -jar myapp-1.0-SNAPSHOT.jar
-----
-
-== Fat Jars with Gradle
-
-With gradle you can rely on either jar plugin, fatjar plugin or shadowjar plugin. Last one is likely the closer to maven shade plugin
-so that's the one used for next sample:
-
-[source,groovy]
-----
-// run $ gradle clean shadowJar
-import org.apache.openwebbeans.gradle.shadow.OpenWebBeansPropertiesTransformer
-
-buildscript {
-    repositories {
-        mavenLocal()
-        jcenter()
-    }
-    dependencies {
-        classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
-        classpath 'org.apache.openwebbeans:openwebbeans-gradle:1.7.0'
-    }
-}
-
-apply plugin: 'com.github.johnrengelman.shadow'
-
-group 'org.apache.tomee.demo.gradle'
-version '1.0-SNAPSHOT'
-
-apply plugin: 'idea'
-apply plugin: 'java'
-
-sourceCompatibility = 1.8
-
-repositories {
-    mavenLocal()
-    mavenCentral()
-}
-
-dependencies {
-    compileOnly 'org.projectlombok:lombok:1.16.10'
-    compile 'org.apache.tomee:tomee-embedded:7.0.2-SNAPSHOT'
-}
-
-// customize exclusions depending your app
-
-// first the not used dependencies like JSF, JAXWS, JMS ones
-def excludedDependenciesGroups = [
-        // gradle is buggy with poms, scope provided and optional I think
-        'com.google.code.findbugs',
-        'com.google.guava',
-        'javax.annotation',
-        'javax.ws.rs',
-        'net.sf.ehcache',
-        'org.apache.httpcomponents',
-        'org.ow2.asm',
-        // tomee jaxws, jms, etc...
-        'commons-codec',
-        'com.sun.xml.messaging.saaj',
-        'joda-time',
-        'junit',
-        'net.shibboleth.utilities',
-        'org.apache.activemq',
-        'org.apache.activemq.protobuf',
-        'org.apache.myfaces.core',
-        'org.apache.neethi',
-        'org.apache.santuario',
-        'org.apache.ws.xmlschema',
-        'org.apache.wss4j',
-        'org.bouncycastle',
-        'org.cryptacular',
-        'org.fusesource.hawtbuf',
-        'org.jasypt',
-        'org.jvnet.mimepull',
-        'org.opensaml',
-        'wsdl4j',
-        'xml-resolver'
-]
-
-// then cxf+tomee specific dependencies so we need to be more precise than the group
-// to not exclude everything
-def excludedDependenciesArtifacts = [
-        'cxf-rt-bindings-soap',
-        'cxf-rt-bindings-xml',
-        'cxf-rt-databinding-jaxb',
-        'cxf-rt-frontend-jaxws',
-        'cxf-rt-frontend-simple',
-        'cxf-rt-security-saml',
-        'cxf-rt-ws-addr',
-        'cxf-rt-wsdl',
-        'cxf-rt-ws-policy',
-        'cxf-rt-ws-security',
-        'openejb-cxf',
-        'openejb-webservices',
-        'tomee-webservices',
-        'geronimo-connector',
-        'geronimo-javamail_1.4_mail'
-]
-shadowJar {
-    classifier = 'bundle'
-
-    // merge SPI descriptors
-    mergeServiceFiles()
-    append 'META-INF/cxf/bus-extensions.txt'
-    transform(OpenWebBeansPropertiesTransformer.class)
-
-    // switch off JSF + JMS + JAXWS
-    exclude 'META-INF/faces-config.xml'
-    dependencies {
-        exclude(dependency {
-            excludedDependenciesGroups.contains(it.moduleGroup) ||
-                    excludedDependenciesArtifacts.contains(it.moduleName)
-        })
-    }
-
-    // ensure we define the expected Main (if you wrap tomee main use your own class)
-    manifest {
-        attributes 'Main-Class': 'org.apache.tomee.embedded.FatApp'
-    }
-}
-----
-
-Then run:
-
-[source]
-----
-gradle clean build shadowJar
-----
-
-and you'll get `build/libs/demo-gradle-tomee-embedded-shade-1.0-SNAPSHOT-bundle.jar` ready to run with:
-
-[source]
-----
-java -jar build/libs/demo-gradle-tomee-embedded-shade-1.0-SNAPSHOT-bundle.jar --as-war --simple-log=true
-----
-
-== Fat Wars
-
-Fat Wars are executable wars. Note they can be fancy for demos but they have the drawback to put the server in web resources
-at packaging time (to ensure the war is actually an executable jar) so adding a filter preventing these files to be read
-can be needed if you don't already use a web technology doing it (a servlet bound to /*).
-
-Here how to do a fat war:
-
-[source,xml]
-----
-<properties>
-  <!-- can be uber (for all), jaxrs, jaxws for lighter ones -->
-  <tomee.flavor>uber</tomee.flavor>
-</properties>
-
-<dependencies>
-  <!-- ...your dependencies as usual... -->
-  <dependency>
-    <groupId>org.apache.tomee</groupId>
-    <artifactId>tomee-embedded</artifactId>
-    <classifier>${tomee.flavor}</classifier>
-    <version>7.0.0</version>
-    <scope>provided</scope>
-  </dependency>
-</dependencies>
-
-<build>
-  <plugins>
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-war-plugin</artifactId>
-      <version>2.6</version>
-      <configuration>
-        <failOnMissingWebXml>false</failOnMissingWebXml>
-        <archive>
-          <manifest>
-            <mainClass>org.apache.tomee.embedded.Main</mainClass>
-          </manifest>
-        </archive>
-        <dependentWarExcludes />
-        <overlays>
-          <overlay>
-            <groupId>org.apache.tomee</groupId>
-            <artifactId>tomee-embedded</artifactId>
-            <classifier>${tomee.flavor}</classifier>
-            <type>jar</type>
-            <excludes />
-          </overlay>
-        </overlays>
-      </configuration>
-    </plugin>
-  </plugins>
-</build>
-----
-
-Then just build the war:
-
-[source,bash]
-----
-mvn clean package
-----
-
-And you can run it:
-
-[source,bash]
-----
-java -jar myapp-1.0-SNAPSHOT.war
-----

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/advanced/tomee-embedded/index.adoc
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/advanced/tomee-embedded/index.adoc b/src/main/jbake/content/advanced/tomee-embedded/index.adoc
deleted file mode 100755
index 8664ade..0000000
--- a/src/main/jbake/content/advanced/tomee-embedded/index.adoc
+++ /dev/null
@@ -1,223 +0,0 @@
-= TomEE Embedded
-:jbake-date: 2016-03-16
-:jbake-type: page
-:jbake-status: published
-:jbake-tomeepdf:
-
-TomEE Embedded is based on Tomcat embedded and starts a real TomEE in the launching JVM. It is also
-able to deploy the classpath as a webapp and to use either `META-INF/resources` or a folder as web resources.
-
-Here is a basic programmatic usage based on `org.apache.tomee.embedded.Container` class:
-
-[source,java]
-----
-try (final Container container = new Container(new Configuration()).deployClasspathAsWebApp()) {
-    System.out.println("Started on http://localhost:" + container.getConfiguration().getHttpPort());
-
-    // do something or wait until the end of the application
-}
-----
-
-All EE features are then accessible directly in the same JVM.
-
-== TomEE Embedded Configuration
-
-The default configuration allows to start tomee without issue but you can desire to customize some of them.
-
-[.table.table-bordered,options="header"]
-|===
-| Name | Default | Description
-|httpPort | 8080| http port
-|stopPort | 8005| shutdown port
-|host |localhost| host
-|dir|-|where to create a file hierarchy for tomee (conf, temp, ...)
-|serverXml|-|which server.xml to use
-|keepServerXmlAsThis|false|don't adjust ports/host from the configuration and keep the ones in server.xml
-|properties|-|container properties
-|quickSession | true|use Random instead of SecureRandom (for dev)
-|skipHttp|false|don't use the http connector
-|httpsPort | 8443|https potr
-|ssl|false| activate https
-|withEjbRemote|false|use EJBd
-|keystoreFile|-|https keystore location
-|keystorePass|-|https keystore password
-|keystoreType |JKS|https keystore type
-|clientAuth|-|https client auth
-|keyAlias|-|https alias
-|sslProtocol|-|SSL protocol for https connector
-|webXml|-|default web.xml to use
-|loginConfig|-|which LoginConfig to use, relies on `org.apache.tomee.embedded.LoginConfigBuilder` to create it
-|securityConstraints|-|add some security constraints, use `org.apache.tomee.embedded.SecurityConstaintBuilder` to build them
-|realm|-|which realm to use (useful to switch to `JAASRealm` for instance) without modifying the application
-|deployOpenEjbApp|false|should internal openejb application be delpoyed
-|users|-|a map of user/password
-|roles|-|a map of role/users
-|tempDir|${java.io.tmpdir}/tomee-embedded_${timestamp}|tomcat needs a docBase, in case you don't provide one one will be created there
-|webResourceCached |true|should web resources be cached by tomcat (set false in frontend dev)
-|configuration-location|-|location (classpath or file) to a .properties to configure the server
-[pre-task|-|Runnable or org.apache.tomee.embedded.LifecycleTask implementations to execute before the container starts
-|classes-filter|-|implementation of a custom xbean Filter to ignore not desired classes during scanning
-|basic|-|set /* under BASIC authentication for the realm "Security", authentication role being "*"
-|===
-
-Note: passing to `Container` constructor a `Configuration` it will start the container automatically but using `setup(Configuration)`
-to initialize the configuration you will need to call `start()`.
-
-You can also pass through the properties `connector.xxx` and `connector.attributes.xxx` to customize connector(s)
-configuration directly.
-
-== Standalone applications or TomEE Embedded provided main(String[])
-
-Deploying an application in a server is very nice cause the application is generally small and it allows to update the
-container without touching the application (typically insanely important in case of security issues for instance).
-
-However sometimes you don't have the choice so TomEE Embedded provides a built-in `main(String[])`. Here are its options:
-
-NOTE: this is still a TomEE so all system properties work (for instance to create a resource).
-
-[.table.table-bordered,options="header"]
-|===
-|Name|Default|Description
-|--path|-|location of application(s) to deploy
-|--context|-|Context name for applications (same order than paths)
-|-p or --port|8080|http port
-|-s or --shutdown|8005|shutdown port
-|-d or --directory|./.apache-tomee|tomee work directory
-|-c or --as-war|-|deploy classpath as a war
-|-b or --doc-base|-|where web resources are for classpath deployment
-|--renaming|-|for fat war only, is renaming of the context supported
-|--serverxml|-|the server.xml location
-|--tomeexml|-|the server.xml location
-|--property|-|a list of container properties (values follow the format x=y)
-|===
-
-Note that since 7.0.0 TomEE provides 3 flavors (qualifier) of tomee-embedded as fat jars:
-
-- uber (where we put all request features by users, this is likely the most complete and the biggest)
-- jaxrs: webprofile minus JSF
-- jaxws: webprofile plus JAX-WS
-
-These different uber jars are interesting in mainly 2 cases:
-
-- you do a war shade (it avoids to list a bunch of dependencies but still get a customized version)
-- you run your application using `--path` option
-
-NOTE: if you already do a custom shade/fatjar this is not really impacting since you can depend on `tomee-embedded` and exclude/include what you want.
-
-== FatApp a shortcut main
-
-`FatApp` main (same package as tomee embedded `Main`) just wraps the default main ensuring:
-
-- ̀`--as-war` is used
-- ̀`--single-classloader` is used
-- `--configuration-location=tomee-embedded.properties` is set if `tomee-embedded.properties` is found in the classpath
-
-== configuration-location
-
-`--configuration-location` option allows to simplify the configuration of tomee embedded through properties.
-
-Here are the recognized entries (they match the configuration, see org.apache.tomee.embedded.Configuration for the detail):
-
-|===
-|Name|
-|http|
-|https|
-|stop|
-|host|
-|dir|
-|serverXml|
-|keepServerXmlAsThis|
-|quickSession|
-|skipHttp|
-|ssl|
-|http2|
-|webResourceCached|
-|withEjbRemote|
-|deployOpenEjbApp|
-|keystoreFile|
-|keystorePass|
-|keystoreType|
-|clientAuth|
-|keyAlias|
-|sslProtocol|
-|webXml|
-|tempDir|
-|classesFilter|
-|conf|
-|properties.x (set container properties x with the associated value)|
-|users.x (for default in memory realm add the user x with its password - the value)|
-|roles.x (for default in memory realm add the role x with its comma separated users - the value)|
-|connector.x (set the property x on the connector)|
-|realm=fullyqualifiedname,realm.prop=xxx (define a custom realm with its configuration)|
-|login=,login.prop=xxx (define a org.apache.tomee.embedded.LoginConfigBuilder == define a LoginConfig)|
-|securityConstraint=,securityConstraint.prop=xxx (define a org.apache.tomee.embedded.SecurityConstaintBuilder == define webapp security)|
-|configurationCustomizer.alias=,configurationCustomizer.alias.class=class,configurationCustomizer.alias.prop=xxx (define a ConfigurationCustomizer)|
-|===
-
-Here is a sample to add BASIC security on `/api/*`:
-
-[source]
-----
-# security configuration
-securityConstraint =
-securityConstraint.authConstraint = true
-securityConstraint.authRole = **
-securityConstraint.collection = api:/api/*
-
-login =
-login.realmName = app
-login.authMethod = BASIC
-
-realm = org.apache.catalina.realm.JAASRealm
-realm.appName = app
-
-properties.java.security.auth.login.config = configuration/login.jaas
-----
-
-And here a configuration to exclude jackson packages from scanning and use log4j2 as main logger (needs it as dependency):
-
-[source]
-----
-properties.openejb.log.factory = log4j2
-properties.openejb.container.additional.include = com.fasterxml.jackson,org.apache.logging.log4j
-----
-
-== Application Runner
-
-SInce TomEE 7.0.2, TomEE provide a light ApplicationComposer integration for TomEE Embedded (all features are not yet supported but the main ones are):
-`org.apache.tomee.embedded.TomEEEmbeddedApplicationRunner`. It relies on the definition of an `@Application`:
-
-[source,java]
-----
-@Application
-@Classes(context = "app")
-@ContainerProperties(@ContainerProperties.Property(name = "t", value = "set"))
-@TomEEEmbeddedApplicationRunner.LifecycleTasks(MyTask.class) // can start a ftp/sftp/elasticsearch/mongo/... server before tomee
-@TomEEEmbeddedApplicationRunner.Configurers(SetMyProperty.class)
-public class TheApp {
-    @RandomPort("http")
-    private int port;
-
-    @RandomPort("http")
-    private URL base;
-
-    @org.apache.openejb.testing.Configuration
-    public Properties add() {
-        return new PropertiesBuilder().p("programmatic", "property").build();
-    }
-
-    @PostConstruct
-    public void appStarted() {
-        // ...
-    }
-}
-----
-
-Then just start it with:
-
-[source,java]
-----
-TomEEEmbeddedApplicationRunner.run(TheApp.class, "some arg1", "other arg");
-----
-
-TIP: `@Classes(values)` and `@Jars` are supported too which can avoid a huge scanning if you run with a lot of not CDI dependencies which would boost the startup of your application.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/articles.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/articles.mdtext b/src/main/jbake/content/articles.mdtext
new file mode 100644
index 0000000..1756271
--- /dev/null
+++ b/src/main/jbake/content/articles.mdtext
@@ -0,0 +1,39 @@
+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
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/azure.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/azure.mdtext b/src/main/jbake/content/azure.mdtext
new file mode 100644
index 0000000..d65e025
--- /dev/null
+++ b/src/main/jbake/content/azure.mdtext
@@ -0,0 +1,5 @@
+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

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/commercial-support.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/commercial-support.mdtext b/src/main/jbake/content/commercial-support.mdtext
new file mode 100755
index 0000000..82e4df6
--- /dev/null
+++ b/src/main/jbake/content/commercial-support.mdtext
@@ -0,0 +1,24 @@
+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

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/comparison.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/comparison.mdtext b/src/main/jbake/content/comparison.mdtext
new file mode 100644
index 0000000..4f417b3
--- /dev/null
+++ b/src/main/jbake/content/comparison.mdtext
@@ -0,0 +1,219 @@
+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
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/concepts.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/concepts.mdtext b/src/main/jbake/content/concepts.mdtext
new file mode 100644
index 0000000..dba6d33
--- /dev/null
+++ b/src/main/jbake/content/concepts.mdtext
@@ -0,0 +1,75 @@
+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.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/contribute.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/contribute.mdtext b/src/main/jbake/content/contribute.mdtext
new file mode 100644
index 0000000..f6f3495
--- /dev/null
+++ b/src/main/jbake/content/contribute.mdtext
@@ -0,0 +1,199 @@
+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>

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/april2008.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/april2008.mdtext b/src/main/jbake/content/dev/april2008.mdtext
new file mode 100644
index 0000000..74bdffa
--- /dev/null
+++ b/src/main/jbake/content/dev/april2008.mdtext
@@ -0,0 +1,31 @@
+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.
+
+
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/april2009.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/april2009.mdtext b/src/main/jbake/content/dev/april2009.mdtext
new file mode 100644
index 0000000..b2b3d26
--- /dev/null
+++ b/src/main/jbake/content/dev/april2009.mdtext
@@ -0,0 +1,32 @@
+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
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/arquillian-test-porting-initiative.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/arquillian-test-porting-initiative.mdtext b/src/main/jbake/content/dev/arquillian-test-porting-initiative.mdtext
new file mode 100644
index 0000000..ed3e44b
--- /dev/null
+++ b/src/main/jbake/content/dev/arquillian-test-porting-initiative.mdtext
@@ -0,0 +1,76 @@
+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
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/asf.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/asf.mdtext b/src/main/jbake/content/dev/asf.mdtext
new file mode 100644
index 0000000..f8fab48
--- /dev/null
+++ b/src/main/jbake/content/dev/asf.mdtext
@@ -0,0 +1,24 @@
+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)

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/august2007.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/august2007.mdtext b/src/main/jbake/content/dev/august2007.mdtext
new file mode 100644
index 0000000..fa8753e
--- /dev/null
+++ b/src/main/jbake/content/dev/august2007.mdtext
@@ -0,0 +1,18 @@
+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.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/building-from-source.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/building-from-source.mdtext b/src/main/jbake/content/dev/building-from-source.mdtext
new file mode 100644
index 0000000..b6c28f4
--- /dev/null
+++ b/src/main/jbake/content/dev/building-from-source.mdtext
@@ -0,0 +1,44 @@
+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
+