activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clebertsuco...@apache.org
Subject [1/3] activemq-6 git commit: ACTIVEMQ6-35 - expose web server configuration
Date Tue, 02 Dec 2014 16:57:18 GMT
Repository: activemq-6
Updated Branches:
  refs/heads/master 592e47f28 -> 4e8edab4f


ACTIVEMQ6-35 - expose web server configuration

https://issues.apache.org/jira/browse/ACTIVEMQ6-35

Added configuration to allow a web server (or any external component) to be deployed. Added a default Jetty configuration and implementation.


Project: http://git-wip-us.apache.org/repos/asf/activemq-6/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-6/commit/eb4f8354
Tree: http://git-wip-us.apache.org/repos/asf/activemq-6/tree/eb4f8354
Diff: http://git-wip-us.apache.org/repos/asf/activemq-6/diff/eb4f8354

Branch: refs/heads/master
Commit: eb4f835477b7692f605c072e1319d88bcd4e92f2
Parents: b37321b
Author: Andy Taylor <andytaylor@apache.org>
Authored: Fri Nov 28 11:46:12 2014 +0000
Committer: Andy Taylor <andytaylor@apache.org>
Committed: Tue Dec 2 16:52:08 2014 +0000

----------------------------------------------------------------------
 .../org/apache/activemq/cli/commands/Run.java   |  24 +-
 .../activemq/components/ExternalComponent.java  |  25 ++
 activemq-dto/pom.xml                            |   7 +-
 .../java/org/apache/activemq/dto/AppDTO.java    |  34 +++
 .../java/org/apache/activemq/dto/BrokerDTO.java |   8 +
 .../org/apache/activemq/dto/ComponentDTO.java   |  30 +++
 .../org/apache/activemq/dto/WebServerDTO.java   |  43 ++++
 activemq-journal/pom.xml                        |  38 ---
 activemq-selector/pom.xml                       |  37 ---
 activemq-web/pom.xml                            |  47 ++++
 .../activemq/component/WebServerComponent.java  | 112 +++++++++
 .../activemq/test/WebServerComponentTest.java   | 125 ++++++++++
 .../webapps/WebServerComponentTest.txt          |   1 +
 activemq-website/pom.xml                        |  96 ++++++++
 .../src/main/resources/images/activemq-logo.png | Bin 0 -> 6819 bytes
 activemq-website/src/main/resources/index.html  |  64 +++++
 .../resources/styles/impact/css/pygmentize.css  | 127 ++++++++++
 .../main/resources/styles/impact/css/site.css   | 235 +++++++++++++++++++
 distribution/activemq/pom.xml                   |  25 +-
 distribution/activemq/src/main/assembly/dep.xml |  53 +++--
 .../resources/config/clustered/bootstrap.xml    |   7 +-
 .../config/non-clustered/bootstrap.xml          |   7 +-
 .../resources/config/replicated/bootstrap.xml   |   7 +-
 .../resources/config/shared-store/bootstrap.xml |   7 +-
 docs/user-manual/pom.xml                        |  36 +--
 pom.xml                                         |  21 ++
 readme.txt                                      |   0
 27 files changed, 1087 insertions(+), 129 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
index adf5b6e..8bab07e 100644
--- a/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/cli/commands/Run.java
@@ -20,9 +20,12 @@ import io.airlift.command.Arguments;
 import io.airlift.command.Command;
 
 import org.apache.activemq.cli.ActiveMQ;
+import org.apache.activemq.components.ExternalComponent;
 import org.apache.activemq.core.config.Configuration;
+import org.apache.activemq.core.server.ActiveMQComponent;
 import org.apache.activemq.core.server.impl.ActiveMQServerImpl;
 import org.apache.activemq.dto.BrokerDTO;
+import org.apache.activemq.dto.ComponentDTO;
 import org.apache.activemq.factory.BrokerFactory;
 import org.apache.activemq.factory.CoreFactory;
 import org.apache.activemq.factory.JmsFactory;
@@ -38,6 +41,7 @@ import javax.management.MBeanServer;
 
 import java.io.File;
 import java.lang.management.ManagementFactory;
+import java.util.ArrayList;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -49,6 +53,7 @@ public class Run implements Action
    String configuration;
    private StandaloneNamingServer namingServer;
    private JMSServerManager jmsServerManager;
+   private ArrayList<ActiveMQComponent> components = new ArrayList<>();
 
    @Override
    public Object execute(ActionContext context) throws Exception
@@ -56,9 +61,11 @@ public class Run implements Action
 
       ActiveMQ.printBanner();
 
+      String activemqHome = System.getProperty("activemq.home").replace("\\", "/");
+
       if (configuration == null)
       {
-         configuration = "xml:" + System.getProperty("activemq.home").replace("\\", "/") + "/config/non-clustered/bootstrap.xml";
+         configuration = "xml:" + activemqHome + "/config/non-clustered/bootstrap.xml";
       }
 
       System.out.println("Loading configuration file: " + configuration);
@@ -104,6 +111,20 @@ public class Run implements Action
 
       jmsServerManager.start();
 
+      if (broker.web != null)
+      {
+         broker.components.add(broker.web);
+      }
+
+      for (ComponentDTO componentDTO : broker.components)
+      {
+         Class clazz = this.getClass().getClassLoader().loadClass(componentDTO.componentClassName);
+         ExternalComponent component = (ExternalComponent)clazz.newInstance();
+         component.configure(componentDTO, activemqHome);
+         component.start();
+         components.add(component);
+      }
+
       return null;
    }
 
@@ -133,6 +154,7 @@ public class Run implements Action
                {
                   try
                   {
+                     //TODO stop components
                      jmsServerManager.stop();
                   }
                   catch (Exception e)

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-bootstrap/src/main/java/org/apache/activemq/components/ExternalComponent.java
----------------------------------------------------------------------
diff --git a/activemq-bootstrap/src/main/java/org/apache/activemq/components/ExternalComponent.java b/activemq-bootstrap/src/main/java/org/apache/activemq/components/ExternalComponent.java
new file mode 100644
index 0000000..ae5d387
--- /dev/null
+++ b/activemq-bootstrap/src/main/java/org/apache/activemq/components/ExternalComponent.java
@@ -0,0 +1,25 @@
+/**
+ * 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.activemq.components;
+
+import org.apache.activemq.core.server.ActiveMQComponent;
+import org.apache.activemq.dto.ComponentDTO;
+
+public interface ExternalComponent extends ActiveMQComponent
+{
+   void configure(ComponentDTO config, String activemqHome) throws Exception;
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-dto/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-dto/pom.xml b/activemq-dto/pom.xml
index 98d9bb7..f57a571 100644
--- a/activemq-dto/pom.xml
+++ b/activemq-dto/pom.xml
@@ -18,6 +18,11 @@
 
    <dependencies>
       <dependency>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>activemq-commons</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+      <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
         <version>${jackson-databind.version}</version>
@@ -144,4 +149,4 @@
      </profile>
    </profiles>
 
-</project>
\ No newline at end of file
+</project>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-dto/src/main/java/org/apache/activemq/dto/AppDTO.java
----------------------------------------------------------------------
diff --git a/activemq-dto/src/main/java/org/apache/activemq/dto/AppDTO.java b/activemq-dto/src/main/java/org/apache/activemq/dto/AppDTO.java
new file mode 100644
index 0000000..5d1e043
--- /dev/null
+++ b/activemq-dto/src/main/java/org/apache/activemq/dto/AppDTO.java
@@ -0,0 +1,34 @@
+/**
+ * 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.activemq.dto;
+
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement(name = "app")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class AppDTO
+{
+   @XmlAttribute
+   public String url;
+
+   @XmlAttribute
+   public String war;
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-dto/src/main/java/org/apache/activemq/dto/BrokerDTO.java
----------------------------------------------------------------------
diff --git a/activemq-dto/src/main/java/org/apache/activemq/dto/BrokerDTO.java b/activemq-dto/src/main/java/org/apache/activemq/dto/BrokerDTO.java
index 6b0f399..70e6767 100644
--- a/activemq-dto/src/main/java/org/apache/activemq/dto/BrokerDTO.java
+++ b/activemq-dto/src/main/java/org/apache/activemq/dto/BrokerDTO.java
@@ -22,6 +22,8 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElementRef;
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.ArrayList;
+import java.util.List;
 
 @XmlRootElement(name = "broker")
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -41,4 +43,10 @@ public class BrokerDTO
    @XmlElementRef
    public NamingDTO naming;
 
+   @XmlElementRef(required = false)
+   public WebServerDTO web;
+
+   @XmlElementRef
+   public List<ComponentDTO> components = new ArrayList<>();
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-dto/src/main/java/org/apache/activemq/dto/ComponentDTO.java
----------------------------------------------------------------------
diff --git a/activemq-dto/src/main/java/org/apache/activemq/dto/ComponentDTO.java b/activemq-dto/src/main/java/org/apache/activemq/dto/ComponentDTO.java
new file mode 100644
index 0000000..8fd9868
--- /dev/null
+++ b/activemq-dto/src/main/java/org/apache/activemq/dto/ComponentDTO.java
@@ -0,0 +1,30 @@
+/**
+ * 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.activemq.dto;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement(name = "component")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class ComponentDTO
+{
+   @XmlAttribute
+   public String componentClassName;
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-dto/src/main/java/org/apache/activemq/dto/WebServerDTO.java
----------------------------------------------------------------------
diff --git a/activemq-dto/src/main/java/org/apache/activemq/dto/WebServerDTO.java b/activemq-dto/src/main/java/org/apache/activemq/dto/WebServerDTO.java
new file mode 100644
index 0000000..5875ac4
--- /dev/null
+++ b/activemq-dto/src/main/java/org/apache/activemq/dto/WebServerDTO.java
@@ -0,0 +1,43 @@
+/**
+ * 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.activemq.dto;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement(name = "web")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class WebServerDTO extends ComponentDTO
+{
+   @XmlAttribute
+   public String bind;
+
+   @XmlAttribute(required = true)
+   public String path;
+
+   @XmlElementRef
+   public List<AppDTO> apps;
+
+   public WebServerDTO()
+   {
+      componentClassName = "org.apache.activemq.component.WebServerComponent";
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-journal/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-journal/pom.xml b/activemq-journal/pom.xml
index 1941313..7e61714 100644
--- a/activemq-journal/pom.xml
+++ b/activemq-journal/pom.xml
@@ -51,42 +51,4 @@
          <scope>test</scope>
       </dependency>
    </dependencies>
-
-   <profiles>
-      <profile>
-         <id>release</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-javadoc-plugin</artifactId>
-                  <version>2.9</version>
-                  <configuration>
-                     <doclet>org.jboss.apiviz.APIviz</doclet>
-                     <docletArtifact>
-                        <groupId>org.jboss.apiviz</groupId>
-                        <artifactId>apiviz</artifactId>
-                        <version>1.3.2.GA</version>
-                     </docletArtifact>
-                     <useStandardDocletOptions>true</useStandardDocletOptions>
-                     <minmemory>128m</minmemory>
-                     <maxmemory>512m</maxmemory>
-                     <quiet>false</quiet>
-                     <aggregate>true</aggregate>
-                     <excludePackageNames>org.apache.activemq.core:org.apache.activemq.utils</excludePackageNames>
-                  </configuration>
-                  <executions>
-                     <execution>
-                        <id>javadocs</id>
-                        <goals>
-                           <goal>jar</goal>
-                        </goals>
-                     </execution>
-                  </executions>
-               </plugin>
-            </plugins>
-         </build>
-      </profile>
-   </profiles>
-
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-selector/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-selector/pom.xml b/activemq-selector/pom.xml
index 8a07b17..6089f9e 100644
--- a/activemq-selector/pom.xml
+++ b/activemq-selector/pom.xml
@@ -32,43 +32,6 @@
       </dependency>
    </dependencies>
 
-   <profiles>
-      <profile>
-         <id>release</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-javadoc-plugin</artifactId>
-                  <version>2.9</version>
-                  <configuration>
-                     <doclet>org.jboss.apiviz.APIviz</doclet>
-                     <docletArtifact>
-                        <groupId>org.jboss.apiviz</groupId>
-                        <artifactId>apiviz</artifactId>
-                        <version>1.3.2.GA</version>
-                     </docletArtifact>
-                     <useStandardDocletOptions>true</useStandardDocletOptions>
-                     <minmemory>128m</minmemory>
-                     <maxmemory>512m</maxmemory>
-                     <quiet>false</quiet>
-                     <aggregate>true</aggregate>
-                     <excludePackageNames>org.apache.activemq.core:org.apache.activemq.utils</excludePackageNames>
-                  </configuration>
-                  <executions>
-                     <execution>
-                        <id>javadocs</id>
-                        <goals>
-                           <goal>jar</goal>
-                        </goals>
-                     </execution>
-                  </executions>
-               </plugin>
-            </plugins>
-         </build>
-      </profile>
-   </profiles>
-
    <build>
       <resources>
          <resource>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-web/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-web/pom.xml b/activemq-web/pom.xml
new file mode 100644
index 0000000..8370fe8
--- /dev/null
+++ b/activemq-web/pom.xml
@@ -0,0 +1,47 @@
+<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/maven-v4_0_0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+
+   <parent>
+      <groupId>org.apache.activemq</groupId>
+      <artifactId>activemq-pom</artifactId>
+      <version>6.0.0-SNAPSHOT</version>
+   </parent>
+
+   <artifactId>activemq-web</artifactId>
+   <packaging>jar</packaging>
+   <name>ActiveMQ6 Web</name>
+
+   <properties>
+     <activemq.basedir>${project.basedir}/..</activemq.basedir>
+   </properties>
+
+   <dependencies>
+      <dependency>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>activemq-dto</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>activemq-bootstrap</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+      <dependency>
+         <groupId>org.eclipse.jetty.aggregate</groupId>
+         <artifactId>jetty-all-server</artifactId>
+      </dependency>
+      <dependency>
+         <groupId>junit</groupId>
+         <artifactId>junit</artifactId>
+         <scope>test</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.jboss.logmanager</groupId>
+         <artifactId>jboss-logmanager</artifactId>
+         <scope>test</scope>
+      </dependency>
+   </dependencies>
+
+
+</project>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-web/src/main/java/org/apache/activemq/component/WebServerComponent.java
----------------------------------------------------------------------
diff --git a/activemq-web/src/main/java/org/apache/activemq/component/WebServerComponent.java b/activemq-web/src/main/java/org/apache/activemq/component/WebServerComponent.java
new file mode 100644
index 0000000..95f58b4
--- /dev/null
+++ b/activemq-web/src/main/java/org/apache/activemq/component/WebServerComponent.java
@@ -0,0 +1,112 @@
+/**
+ * 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.activemq.component;
+
+import org.apache.activemq.components.ExternalComponent;
+import org.apache.activemq.dto.AppDTO;
+import org.apache.activemq.dto.ComponentDTO;
+import org.apache.activemq.dto.WebServerDTO;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+import org.eclipse.jetty.webapp.WebAppContext;
+
+import java.net.URI;
+
+public class WebServerComponent implements ExternalComponent
+{
+
+   private Server server;
+   private HandlerList handlers;
+   private WebServerDTO webServerConfig;
+
+   @Override
+   public void configure(ComponentDTO config, String activemqHome) throws Exception
+   {
+      webServerConfig = (WebServerDTO)config;
+      String path = webServerConfig.path.startsWith("/") ? webServerConfig.path : "/" + webServerConfig.path;
+      URI uri = new URI(webServerConfig.bind);
+      server = new Server();
+      org.eclipse.jetty.server.nio.SelectChannelConnector connector = new SelectChannelConnector();
+      connector.setPort(uri.getPort());
+      connector.setHost(uri.getHost());
+
+      server.setConnectors(new Connector[]{connector});
+
+      handlers = new HandlerList();
+
+      if (webServerConfig.apps != null)
+      {
+         for (AppDTO app : webServerConfig.apps)
+         {
+            deployWar(app.url, app.war, activemqHome, path);
+         }
+      }
+
+      WebAppContext handler = new WebAppContext();
+      handler.setContextPath("/");
+      handler.setResourceBase(activemqHome + path);
+      handler.setLogUrlOnStart(true);
+
+      ResourceHandler resourceHandler = new ResourceHandler();
+      resourceHandler.setResourceBase(activemqHome + path);
+      resourceHandler.setDirectoriesListed(true);
+      resourceHandler.setWelcomeFiles(new String[]{"index.html"});
+
+      DefaultHandler defaultHandler = new DefaultHandler();
+      defaultHandler.setServeIcon(false);
+
+      handlers.addHandler(resourceHandler);
+      handlers.addHandler(defaultHandler);
+      server.setHandler(handlers);
+   }
+
+   public void start() throws Exception
+   {
+      server.start();
+
+      System.out.println("Server started at " + webServerConfig.bind);
+   }
+
+   public void stop() throws Exception
+   {
+      server.stop();
+   }
+
+   public boolean isStarted()
+   {
+      return false;
+   }
+
+   private void deployWar(String url, String warURL, String activeMQHome, String path)
+   {
+      WebAppContext webapp = new WebAppContext();
+      if (url.startsWith("/"))
+      {
+         webapp.setContextPath(url);
+      }
+      else
+      {
+         webapp.setContextPath("/" + url);
+      }
+      webapp.setWar(activeMQHome + path + "/" + warURL);
+      handlers.addHandler(webapp);
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-web/src/test/java/org/apache/activemq/test/WebServerComponentTest.java
----------------------------------------------------------------------
diff --git a/activemq-web/src/test/java/org/apache/activemq/test/WebServerComponentTest.java b/activemq-web/src/test/java/org/apache/activemq/test/WebServerComponentTest.java
new file mode 100644
index 0000000..c170635
--- /dev/null
+++ b/activemq-web/src/test/java/org/apache/activemq/test/WebServerComponentTest.java
@@ -0,0 +1,125 @@
+/**
+ * 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.activemq.test;
+
+import io.netty.bootstrap.Bootstrap;
+import io.netty.channel.Channel;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.nio.NioSocketChannel;
+import io.netty.handler.codec.http.DefaultFullHttpRequest;
+import io.netty.handler.codec.http.HttpClientCodec;
+import io.netty.handler.codec.http.HttpContent;
+import io.netty.handler.codec.http.HttpHeaders;
+import io.netty.handler.codec.http.HttpMethod;
+import io.netty.handler.codec.http.HttpObject;
+import io.netty.handler.codec.http.HttpRequest;
+import io.netty.handler.codec.http.HttpVersion;
+import io.netty.util.CharsetUtil;
+import org.apache.activemq.component.WebServerComponent;
+import org.apache.activemq.dto.WebServerDTO;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class WebServerComponentTest extends Assert
+{
+   static final String URL = System.getProperty("url", "http://localhost:8161/WebServerComponentTest.txt");
+   private Bootstrap bootstrap;
+   private EventLoopGroup group;
+
+   @Before
+   public void setupNetty() throws URISyntaxException
+   {
+      // Configure the client.
+      group = new NioEventLoopGroup();
+      bootstrap = new Bootstrap();
+   }
+   @Test
+   public void simpleServer() throws Exception
+   {
+      WebServerDTO webServerDTO = new WebServerDTO();
+      webServerDTO.bind = "http://localhost:8161";
+      webServerDTO.path = "webapps";
+      WebServerComponent webServerComponent = new WebServerComponent();
+      webServerComponent.configure(webServerDTO, "./src/test/resources/");
+      webServerComponent.start();
+      // Make the connection attempt.
+      CountDownLatch latch = new CountDownLatch(1);
+      final ClientHandler clientHandler = new ClientHandler(latch);
+      bootstrap.group(group).channel(NioSocketChannel.class).handler(new ChannelInitializer()
+      {
+         @Override
+         protected void initChannel(Channel ch) throws Exception
+         {
+            ch.pipeline().addLast(new HttpClientCodec());
+            ch.pipeline().addLast(clientHandler);
+         }
+      });
+      Channel ch = bootstrap.connect("localhost", 8161).sync().channel();
+
+      URI uri = new URI(URL);
+      // Prepare the HTTP request.
+      HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri.getRawPath());
+      request.headers().set(HttpHeaders.Names.HOST, "localhost");
+
+
+      // Send the HTTP request.
+      ch.writeAndFlush(request);
+      assertTrue(latch.await(5, TimeUnit.SECONDS));
+      assertEquals(clientHandler.body, "12345");
+      // Wait for the server to close the connection.
+      ch.close();
+      webServerComponent.stop();
+   }
+
+   class ClientHandler extends SimpleChannelInboundHandler<HttpObject>
+   {
+      private CountDownLatch latch;
+      private String body;
+
+      public ClientHandler(CountDownLatch latch)
+      {
+         this.latch = latch;
+      }
+
+      @Override
+      public void channelRead0(ChannelHandlerContext ctx, HttpObject msg)
+      {
+         if (msg instanceof HttpContent)
+         {
+            HttpContent content = (HttpContent) msg;
+            body = content.content().toString(CharsetUtil.UTF_8);
+            latch.countDown();
+         }
+      }
+
+      public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)
+      {
+         cause.printStackTrace();
+         ctx.close();
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-web/src/test/resources/webapps/WebServerComponentTest.txt
----------------------------------------------------------------------
diff --git a/activemq-web/src/test/resources/webapps/WebServerComponentTest.txt b/activemq-web/src/test/resources/webapps/WebServerComponentTest.txt
new file mode 100644
index 0000000..bd41cba
--- /dev/null
+++ b/activemq-web/src/test/resources/webapps/WebServerComponentTest.txt
@@ -0,0 +1 @@
+12345
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-website/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-website/pom.xml b/activemq-website/pom.xml
new file mode 100644
index 0000000..5340ffe
--- /dev/null
+++ b/activemq-website/pom.xml
@@ -0,0 +1,96 @@
+<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/maven-v4_0_0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+
+   <parent>
+      <groupId>org.apache.activemq</groupId>
+      <artifactId>activemq-pom</artifactId>
+      <version>6.0.0-SNAPSHOT</version>
+   </parent>
+
+   <artifactId>activemq-website</artifactId>
+   <packaging>jar</packaging>
+   <name>ActiveMQ6 Web</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-core-client</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-jms-client</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-server</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-jms-server</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-journal</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-selector</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+   <properties>
+     <activemq.basedir>${project.basedir}/..</activemq.basedir>
+   </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.10.1</version>
+                <executions>
+                    <execution>
+                        <id>javadoc-jar</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <doclet>org.jboss.apiviz.APIviz</doclet>
+                            <docletArtifact>
+                                <groupId>org.jboss.apiviz</groupId>
+                                <artifactId>apiviz</artifactId>
+                                <version>1.3.2.GA</version>
+                            </docletArtifact>
+                            <useStandardDocletOptions>true</useStandardDocletOptions>
+                            <minmemory>128m</minmemory>
+                            <maxmemory>512m</maxmemory>
+                            <quiet>false</quiet>
+                            <!-- switch on dependency-driven aggregation -->
+                            <includeDependencySources>true</includeDependencySources>
+
+                            <dependencySourceIncludes>
+                               <!-- include ONLY dependencies I control -->
+                               <dependencySourceInclude>org.apache.activemq:activemq-core-client</dependencySourceInclude>
+                               <dependencySourceInclude>org.apache.activemq:activemq-jms-client</dependencySourceInclude>
+                               <dependencySourceInclude>org.apache.activemq:activemq-server</dependencySourceInclude>
+                               <dependencySourceInclude>org.apache.activemq:activemq-jms-server</dependencySourceInclude>
+                               <dependencySourceInclude>org.apache.activemq:activemq-journal</dependencySourceInclude>
+                               <dependencySourceInclude>org.apache.activemq:activemq-selector</dependencySourceInclude>
+                            </dependencySourceIncludes>
+                            <quiet>false</quiet>
+                            <aggregate>true</aggregate>
+                            <excludePackageNames>org.apache.activemq.core:org.apache.activemq.utils</excludePackageNames>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-website/src/main/resources/images/activemq-logo.png
----------------------------------------------------------------------
diff --git a/activemq-website/src/main/resources/images/activemq-logo.png b/activemq-website/src/main/resources/images/activemq-logo.png
new file mode 100644
index 0000000..d514448
Binary files /dev/null and b/activemq-website/src/main/resources/images/activemq-logo.png differ

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-website/src/main/resources/index.html
----------------------------------------------------------------------
diff --git a/activemq-website/src/main/resources/index.html b/activemq-website/src/main/resources/index.html
new file mode 100644
index 0000000..edb547a
--- /dev/null
+++ b/activemq-website/src/main/resources/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
+<!--
+  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.
+  Architecture
+-->
+<html lang="en">
+<head>
+    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
+    <meta content="ActiveMQ's next generation of messaging" name="description"/>
+    <meta content="messaging,stomp,jms,activemq" name="keywords"/>
+    <meta content="ActiveMQ" name="author"/>
+    <link type="text/css" rel="stylesheet" href="styles/impact/css/pygmentize.css"/>
+    <link type="text/css" rel="stylesheet" href="styles/impact/css/site.css"/>
+    <title>ActiveMQ</title>
+</head>
+<body>
+<div id="navigation">
+    <div class="wrapper">
+        <ul>
+            <li><a href="index.html">ActiveMQ 6.0</a></li>
+            <li><a href="community/developers.html">Developers</a></li>
+            <li><a href="community/index.html">Community</a></li>
+            <li><a href="download.html">Download</a></li>
+        </ul>        <div></div>
+    </div>
+</div>
+<div id="overview">
+    <div class="wrapper">
+        <div class="logo">
+            <img src="images/activemq-logo.png" alt="ActiveMQ logo"/>
+        </div>
+        <div class="message">
+            <h1>ActiveMQ 6.0</h1>
+            ActiveMQ's next generation of messaging
+
+            <div></div>
+        </div>
+    </div>
+</div>
+<div id="content">
+    <div class="wrapper">
+        <ul>
+            <li><a target="_blank" href="api/index.html">API</a></li>
+            <li><a target="_blank" href="user-manual/index.html">User Manual</a></li>
+            <li><a href="">Examples (to follow)</a></li>
+        </ul>
+        <div></div>
+    </div>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-website/src/main/resources/styles/impact/css/pygmentize.css
----------------------------------------------------------------------
diff --git a/activemq-website/src/main/resources/styles/impact/css/pygmentize.css b/activemq-website/src/main/resources/styles/impact/css/pygmentize.css
new file mode 100644
index 0000000..d9b19d9
--- /dev/null
+++ b/activemq-website/src/main/resources/styles/impact/css/pygmentize.css
@@ -0,0 +1,127 @@
+/**
+ * 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.
+ */
+
+.syntax .hll { background-color: #ffffcc }
+.syntax  { background: #f0f0f0; }
+.syntax .c { color: #60a0b0; font-style: italic } /* Comment */
+.syntax .err { border: 1px solid #FF0000 } /* Error */
+.syntax .k { color: #007020; font-weight: bold } /* Keyword */
+.syntax .o { color: #666666 } /* Operator */
+.syntax .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.syntax .cp { color: #007020 } /* Comment.Preproc */
+.syntax .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.syntax .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.syntax .gd { color: #A00000 } /* Generic.Deleted */
+.syntax .ge { font-style: italic } /* Generic.Emph */
+.syntax .gr { color: #FF0000 } /* Generic.Error */
+.syntax .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.syntax .gi { color: #00A000 } /* Generic.Inserted */
+.syntax .go { color: #808080 } /* Generic.Output */
+.syntax .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.syntax .gs { font-weight: bold } /* Generic.Strong */
+.syntax .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.syntax .gt { color: #0040D0 } /* Generic.Traceback */
+.syntax .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.syntax .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.syntax .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.syntax .kp { color: #007020 } /* Keyword.Pseudo */
+.syntax .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.syntax .kt { color: #902000 } /* Keyword.Type */
+.syntax .m { color: #40a070 } /* Literal.Number */
+.syntax .s { color: #4070a0 } /* Literal.String */
+.syntax .na { color: #4070a0 } /* Name.Attribute */
+.syntax .nb { color: #007020 } /* Name.Builtin */
+.syntax .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.syntax .no { color: #60add5 } /* Name.Constant */
+.syntax .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.syntax .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.syntax .ne { color: #007020 } /* Name.Exception */
+.syntax .nf { color: #06287e } /* Name.Function */
+.syntax .nl { color: #002070; font-weight: bold } /* Name.Label */
+.syntax .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.syntax .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.syntax .nv { color: #bb60d5 } /* Name.Variable */
+.syntax .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.syntax .w { color: #bbbbbb } /* Text.Whitespace */
+.syntax .mf { color: #40a070 } /* Literal.Number.Float */
+.syntax .mh { color: #40a070 } /* Literal.Number.Hex */
+.syntax .mi { color: #40a070 } /* Literal.Number.Integer */
+.syntax .mo { color: #40a070 } /* Literal.Number.Oct */
+.syntax .sb { color: #4070a0 } /* Literal.String.Backtick */
+.syntax .sc { color: #4070a0 } /* Literal.String.Char */
+.syntax .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.syntax .s2 { color: #4070a0 } /* Literal.String.Double */
+.syntax .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.syntax .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.syntax .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.syntax .sx { color: #c65d09 } /* Literal.String.Other */
+.syntax .sr { color: #235388 } /* Literal.String.Regex */
+.syntax .s1 { color: #4070a0 } /* Literal.String.Single */
+.syntax .ss { color: #517918 } /* Literal.String.Symbol */
+.syntax .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.syntax .vc { color: #bb60d5 } /* Name.Variable.Class */
+.syntax .vg { color: #bb60d5 } /* Name.Variable.Global */
+.syntax .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.syntax .il { color: #40a070 } /* Literal.Number.Integer.Long */
+
+
+/* don't highlight errors */
+.syntax .err {
+  border: none;
+}
+
+.syntax {
+  font-size: .9em;
+  font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
+  background-color: #F8F8FF; 
+  
+  overflow:auto;
+  -moz-background-clip:border;
+  -moz-background-inline-policy:continuous;
+  -moz-background-origin:padding;
+  margin: 1em 0 1em 0;
+  border:1px solid #DDDDDD;
+  
+  border-top-left-radius: 8px; -webkit-border-top-left-radius: 8px; -moz-border-radius-topleft: 8px;  
+  border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px; -moz-border-radius-topright: 8px;
+  border-style: solid;  border-width: 1px; border-color: #dedede !important; 
+  padding: 1em;
+}
+.syntax .linenodiv  {
+  background-color:#ECECEC;
+  border-right:1px solid #DDDDDD;
+  color:#AAAAAA;
+  padding: .5em;
+  text-align:right;
+}
+.syntax .highlight  {
+}
+.syntax pre {
+  margin:0;
+  padding:0;
+  border: none;
+}
+
+pre.syntax {
+  padding: .5em;
+  background-color: #F8F8FF; overflow:auto;
+}
+
+.syntax code {
+  font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
+  font-size: 10pt;
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/activemq-website/src/main/resources/styles/impact/css/site.css
----------------------------------------------------------------------
diff --git a/activemq-website/src/main/resources/styles/impact/css/site.css b/activemq-website/src/main/resources/styles/impact/css/site.css
new file mode 100644
index 0000000..27d1a79
--- /dev/null
+++ b/activemq-website/src/main/resources/styles/impact/css/site.css
@@ -0,0 +1,235 @@
+/**
+ * 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.
+ */
+
+body, html {
+    font-family:Georgia, Arial, sans-serif; 
+    color: #666666;
+}
+body, html, table, tr, td, tbody {
+    padding:0;
+    margin:0;
+    vertical-align: top;
+}
+body {
+    padding-top: 20px;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    font-family: 'Graublau Web', Helvetica, sans-serif;
+    overflow: visible;
+    color: #993333;
+}
+
+h2 {
+  border-top: 4px solid #E0E0E0 !important;
+  margin-top: 1.5em !important;
+  padding-top: 0.5em !important;
+}
+
+p { margin-bottom:0px; }
+
+a {
+	color: #700;
+	font-weight:bold;
+	text-decoration: none;
+}
+
+a:hover { 
+	color: #ff3333; 
+	text-decoration: underline;
+	}
+
+img {
+	border: none;
+/*
+	padding-right:2em
+*/
+}
+
+.wrapper { min-width: 762px; width: 762px; margin: 0 auto; }
+
+#navigation { width: 100%; float: left;
+    font-family: Helvetica,Verdana,Arial,sans-serif; 
+    background: black; 
+	text-align:center; 
+	padding: 8px 0 8px 0;
+    color: #b55; 
+	font-size: 10pt; 
+	font-weight: bold;
+  position: absolute;  
+    top: 0px;
+}
+#navigation a { color: white; }
+#navigation ul { display: block; margin:0; padding:0; }
+#navigation li { list-style-type: none; display: inline; margin:0 5px 0 5px;}
+
+#overview { width: 100%; padding-top:20px}
+#overview div.message { 
+    font-size: 11pt; 
+    margin-top: -20px;
+    padding-left: 120px;
+    width: 350px;
+}
+#overview div.message h1{ margin-bottom: 5px; display:none; }
+#overview div.message p{ margin-top: 0px; padding-bottom:14px; }
+
+#spot { width: 100%; float: left; 
+    margin-top: 15px;
+    background:transparent url(../images/spot-banner.gif) repeat-x scroll 0 0;
+    height: 277px;
+}
+#spot div.title {
+    text-align:center; height:25px;
+    text-align:center; padding-top: 2px;
+    color: white; font-size: 10pt; font-weight: bold; 
+    font-family: HelveticaNeue,"Helvetica Neue",Helvetica,Arial,Verdana,sans-serif; 
+}
+#spot div.content table {
+    width: 100%; text-align:center; 
+    color: black; font-size: 10pt; 
+}
+
+#spot a:hover {text-decoration: none; }
+
+#spot div.spot-balloon {
+  background:transparent url( ../../../images/spot-get-involved.gif ) no-repeat;
+  background-position:center;
+  height: 121px;
+  text-align:left;
+  padding-top: 25px;
+  padding-left: 35px;
+}
+
+#spot div.spot-balloon li {
+/*
+  list-style: none;
+*/
+  list-style: disc;
+}
+
+/*
+#spot div.spot-balloon {
+  height: 120px;
+  text-align:left;
+  padding-top: 20px;
+  padding-left: 15px;
+}
+*/
+
+#content { width: 100%; float: left; padding-bottom: 20px; }
+#content .wrapper { min-width: 700px; width: 700px; margin: 0 auto; padding-top: 1em}
+#content div.left {
+  float:left;
+  width:200px;
+  text-align:right;
+  font-size: 18pt;
+  clear:both;
+}
+#content h1 {
+  font-size: 18pt;
+}
+#content div.right {
+  float:right;
+  width:450px;
+  text-align:left;
+}
+
+#blog { width: 100%; float: left; }
+#blog .wrapper { min-width: 600px; width: 600px; margin: 0 auto; }
+#blog h1 {
+  font-family: HelveticaNeue,"Helvetica Neue",Helvetica,Arial,Verdana,sans-serif; 
+  font-size: 18pt; color: #993333;
+}
+#blog h2 {
+  border-bottom: thin dashed #DDD;
+  font-size: 16pt;
+  margin-bottom: 5px;
+}
+#blog div.post p {
+  padding-left: 10px;
+}
+#blog div.post .details {
+  padding-top: 5px;
+  color: #ccc;
+  font-size: 10pt;
+  font-family: HelveticaNeue,"Helvetica Neue",Helvetica,Arial,Verdana,sans-serif; 
+}
+
+#content .post h2 {
+  margin-bottom:5px;
+}
+#content .post .details {
+  color: #ccc;
+  font-size: 10pt;
+  font-family: HelveticaNeue,"Helvetica Neue",Helvetica,Arial,Verdana,sans-serif; 
+  margin-top:0px;
+}
+
+code {	
+  font-size: .9em;
+  font-family: 'Droid Sans Mono', 'Courier New', monospace !important;
+}
+pre {
+  background-color: #F8F8FF; 
+  
+  overflow:auto;
+  -moz-background-clip:border;
+  -moz-background-inline-policy:continuous;
+  -moz-background-origin:padding;
+  margin: 1em 0 1em 0;
+  border:1px solid #DDDDDD;
+  
+  border-top-left-radius: 8px; -webkit-border-top-left-radius: 8px; -moz-border-radius-topleft: 8px;  
+  border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px; -moz-border-radius-topright: 8px;
+  border-style: solid;  border-width: 1px; border-color: #dedede !important; 
+  padding: 1em;
+}
+pre code {	
+	font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
+	font-weight:normal;
+	font-style:normal;
+}
+div.compare { width: 700px; }
+div.compare div.compare-left { float:left; width:340px; padding:5px; margin-top: 15px; }
+div.compare div.compare-right { float:right; width:340px; padding:5px; margin-top: 15px; }
+div.compare div h3 {
+  margin-left: 15px;
+  padding: 5px 15px;
+  display: inline;
+  font-size: .8em;
+  color: #666;
+
+  border-top: 1px solid #ccc; -moz-border-top-colors: #ccc white white #e5e5e5;
+  border-left: 1px solid #ccc; -moz-border-left-colors: #ccc white white #e5e5e5;
+  border-right: 1px solid #ccc;-moz-border-right-colors: #ccc white white #e5e5e5;
+  border-top-left-radius: 8px; -webkit-border-top-left-radius: 8px;  -moz-border-radius-topleft: 8px;
+  border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px; -moz-border-radius-topright: 8px; 
+}
+div.compare div div {
+  margin: 5px 0px 0px 0px;
+}
+
+.clear {
+  clear:both;
+}
+
+.wide div.compare div.compare-left { float:none; width:700px; }
+.wide div.compare div.compare-right { float:none; width:700px; }
+
+.hide {
+  display:none;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/distribution/activemq/pom.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/pom.xml b/distribution/activemq/pom.xml
index 9355c3d..8d60c60 100644
--- a/distribution/activemq/pom.xml
+++ b/distribution/activemq/pom.xml
@@ -109,6 +109,11 @@
      </dependency>
       <dependency>
          <groupId>org.apache.activemq</groupId>
+         <artifactId>activemq-web</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.activemq</groupId>
          <artifactId>activemq-core-client</artifactId>
          <version>${project.version}</version>
       </dependency>
@@ -155,7 +160,25 @@
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
        </dependency>
-
+       <dependency>
+          <groupId>org.apache.activemq</groupId>
+          <artifactId>activemq-website</artifactId>
+          <version>6.0.0-SNAPSHOT</version>
+       </dependency>
+       <dependency>
+           <groupId>org.apache.activemq</groupId>
+           <artifactId>activemq-website</artifactId>
+           <version>6.0.0-SNAPSHOT</version>
+           <classifier>javadoc</classifier>
+       </dependency>
+       <dependency>
+          <groupId>org.eclipse.jetty.aggregate</groupId>
+          <artifactId>jetty-all-server</artifactId>
+       </dependency>
+       <dependency>
+          <groupId>org.apache.geronimo.specs</groupId>
+          <artifactId>geronimo-servlet_3.0_spec</artifactId>
+       </dependency>
        <!-- javadoc -->
        <dependency>
            <groupId>org.apache.activemq</groupId>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/distribution/activemq/src/main/assembly/dep.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/assembly/dep.xml b/distribution/activemq/src/main/assembly/dep.xml
index e3323d2..1a60ed2 100644
--- a/distribution/activemq/src/main/assembly/dep.xml
+++ b/distribution/activemq/src/main/assembly/dep.xml
@@ -45,9 +45,11 @@
             <include>com.google.guava:guava</include>
             <include>javax.inject:javax.inject</include>
             <include>com.fasterxml.jackson.core:jackson-*</include>
+            <include>org.eclipse.jetty.aggregate:jetty-all-server</include>
+            <include>org.apache.geronimo.specs:geronimo-servlet_3.0_spec</include>
          </includes>
          <excludes>
-           <exclude>*:javadoc</exclude>
+           <exclude>org.apache.activemq:activemq-website</exclude>
          </excludes>
          <outputDirectory>lib</outputDirectory>
          <unpack>false</unpack>
@@ -65,17 +67,23 @@
             </includes>
          </unpackOptions>
       </dependencySet>
-      <!-- javadoc -->
-      <dependencySet>
-        <includes>
-          <include>org.apache.activemq:activemq-core-client:*:javadoc</include>
-          <include>org.apache.activemq:activemq-server:*:javadoc</include>
-          <include>org.apache.activemq:activemq-jms-server:*:javadoc</include>
-          <include>org.apache.activemq:activemq-jms-client:*:javadoc</include>
-        </includes>
-        <outputDirectory>docs/api/${artifact.artifactId}</outputDirectory>
-        <unpack>true</unpack>
-      </dependencySet>
+       <dependencySet>
+           <includes>
+               <include>org.apache.activemq:activemq-website</include>
+           </includes>
+           <excludes>
+               <exclude>org.apache.activemq:activemq-website:jar:javadoc</exclude>
+           </excludes>
+           <outputDirectory>web</outputDirectory>
+           <unpack>true</unpack>
+       </dependencySet>
+       <dependencySet>
+           <includes>
+               <include>org.apache.activemq:activemq-website:jar:javadoc</include>
+           </includes>
+           <outputDirectory>web/api</outputDirectory>
+           <unpack>true</unpack>
+       </dependencySet>
    </dependencySets>
    <fileSets>
      <!-- schema -->
@@ -94,15 +102,15 @@
        <directory>src/main/resources</directory>
        <outputDirectory>/</outputDirectory>
        <lineEnding>keep</lineEnding>
-       <includes>
-         <include>bin/*</include>
-         <include>config/**</include>
-         <include>licenses/*</include>
-       </includes>
+        <excludes>
+           <exclude>**/target/**</exclude>
+           <exclude>**/**/*.iml</exclude>
+           <exclude>**/**/*.dat</exclude>
+        </excludes>
      </fileSet>
      <fileSet>
        <directory>../../examples</directory>
-       <outputDirectory>examples</outputDirectory>
+       <outputDirectory>web/examples</outputDirectory>
        <lineEnding>keep</lineEnding>
        <excludes>
          <exclude>**/target/**</exclude>
@@ -113,13 +121,8 @@
      <!-- docs -->
      <!--todo, this is crap, there must be better jdocbook assembly integration-->
       <fileSet>
-         <directory>../../docs/user-manual/target/docbook/publish/en</directory>
-         <outputDirectory>docs/user-manual</outputDirectory>
-         <lineEnding>keep</lineEnding>
-      </fileSet>
-      <fileSet>
-         <directory>../../docs/quickstart-guide/target/docbook/publish/en</directory>
-         <outputDirectory>docs/quickstart-guide</outputDirectory>
+         <directory>../../docs/user-manual/target/docbook/publish/en/html/</directory>
+         <outputDirectory>web/user-manual</outputDirectory>
          <lineEnding>keep</lineEnding>
       </fileSet>
       <fileSet>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml b/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml
index 974d7b6..698da46 100644
--- a/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml
+++ b/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml
@@ -18,12 +18,15 @@
 
 <broker xmlns="http://activemq.org/schema">
 
-   <core configuration="file:${activemq.home}/config/clustered/activemq-configuration.xml"></core>
-   <jms configuration="file:${activemq.home}/config/clustered/activemq-jms.xml"></jms>
+   <core configuration="file:${activemq.home}/config/clustered/activemq-configuration.xml"/>
+
+   <jms configuration="file:${activemq.home}/config/clustered/activemq-jms.xml"/>
 
    <basic-security/>
 
    <naming bindAddress="localhost" port="1099" rmiBindAddress="localhost" rmiPort="1098"/>
 
+   <web bind="http://localhost:8161" path="web"/>
+
 </broker>
 

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml b/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml
index d539a5e..dbec706 100644
--- a/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml
+++ b/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml
@@ -18,12 +18,15 @@
 
 <broker xmlns="http://activemq.org/schema">
 
-   <core configuration="file:${activemq.home}/config/non-clustered/activemq-configuration.xml"></core>
-   <jms configuration="file:${activemq.home}/config/non-clustered/activemq-jms.xml"></jms>
+   <core configuration="file:${activemq.home}/config/non-clustered/activemq-configuration.xml"/>
+
+   <jms configuration="file:${activemq.home}/config/non-clustered/activemq-jms.xml"/>
 
    <basic-security/>
 
    <naming bindAddress="localhost" port="1099" rmiBindAddress="localhost" rmiPort="1098"/>
 
+   <web bind="http://localhost:8161" path="web"/>
+
 </broker>
 

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml b/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml
index e94e5f7..1bf29ed 100644
--- a/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml
+++ b/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml
@@ -18,12 +18,15 @@
 
 <broker xmlns="http://activemq.org/schema">
 
-   <core configuration="file:${activemq.home}/config/replicated/activemq-configuration.xml"></core>
-   <jms configuration="file:${activemq.home}/config/replicated/activemq-jms.xml"></jms>
+   <core configuration="file:${activemq.home}/config/replicated/activemq-configuration.xml"/>
+
+   <jms configuration="file:${activemq.home}/config/replicated/activemq-jms.xml"/>
 
    <basic-security/>
 
    <naming bindAddress="localhost" port="1099" rmiBindAddress="localhost" rmiPort="1098"/>
 
+   <web bind="http://localhost:8161" path="web"/>
+
 </broker>
 

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml
----------------------------------------------------------------------
diff --git a/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml b/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml
index 0da0da1..0da0234 100644
--- a/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml
+++ b/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml
@@ -18,12 +18,15 @@
 
 <broker xmlns="http://activemq.org/schema">
 
-   <core configuration="file:${activemq.home}/config/shared-store/activemq-configuration.xml"></core>
-   <jms configuration="file:${activemq.home}/config/shared-store/activemq-jms.xml"></jms>
+   <core configuration="file:${activemq.home}/config/shared-store/activemq-configuration.xml"/>
+
+   <jms configuration="file:${activemq.home}/config/shared-store/activemq-jms.xml"/>
 
    <basic-security/>
 
    <naming bindAddress="localhost" port="1099" rmiBindAddress="localhost" rmiPort="1098"/>
 
+   <web bind="http://localhost:8161" path="web"/>
+
 </broker>
 

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/docs/user-manual/pom.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/pom.xml b/docs/user-manual/pom.xml
index 54ccfbf..cf693f2 100644
--- a/docs/user-manual/pom.xml
+++ b/docs/user-manual/pom.xml
@@ -84,9 +84,10 @@
     </pluginRepositories>
 
     <profiles>
-        <!-- mvn compile -->
+
+        <!-- mvn compile -Phtml -->
         <profile>
-            <id>all</id>
+            <id>html</id>
             <activation>
                 <activeByDefault>true</activeByDefault>
             </activation>
@@ -100,30 +101,19 @@
                         <configuration>
                             <formats>
                                 <format>
-                                    <formatName>pdf</formatName>
-                                    <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
-                                    <finalName>${docname}.pdf</finalName>
-                                </format>
-                                <format>
                                     <formatName>html</formatName>
                                     <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
                                     <finalName>index.html</finalName>
                                 </format>
-                                <format>
-                                    <formatName>html_single</formatName>
-                                    <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
-                                    <finalName>index.html</finalName>
-                                </format>
                             </formats>
                         </configuration>
                     </plugin>
                 </plugins>
             </build>
         </profile>
-
-        <!-- mvn compile -Phtml -->
+        <!-- mvn compile -->
         <profile>
-            <id>html</id>
+            <id>all</id>
             <activation>
                 <activeByDefault>false</activeByDefault>
             </activation>
@@ -132,15 +122,25 @@
                     <plugin>
                         <groupId>org.jboss.maven.plugins</groupId>
                         <artifactId>maven-jdocbook-plugin</artifactId>
-                        <version>2.2.1</version>
+                        <version>2.3.5</version>
                         <extensions>true</extensions>
                         <configuration>
                             <formats>
                                 <format>
+                                    <formatName>pdf</formatName>
+                                    <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+                                    <finalName>${docname}.pdf</finalName>
+                                </format>
+                                <format>
                                     <formatName>html</formatName>
                                     <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
                                     <finalName>index.html</finalName>
                                 </format>
+                                <format>
+                                    <formatName>html_single</formatName>
+                                    <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+                                    <finalName>index.html</finalName>
+                                </format>
                             </formats>
                         </configuration>
                     </plugin>
@@ -159,7 +159,7 @@
                     <plugin>
                         <groupId>org.jboss.maven.plugins</groupId>
                         <artifactId>maven-jdocbook-plugin</artifactId>
-                        <version>2.2.1</version>
+                        <version>2.3.5</version>
                         <extensions>true</extensions>
                     </plugin>
                 </plugins>
@@ -177,7 +177,7 @@
                     <plugin>
                         <groupId>org.jboss.maven.plugins</groupId>
                         <artifactId>maven-jdocbook-plugin</artifactId>
-                        <version>2.2.1</version>
+                        <version>2.3.5</version>
                         <extensions>true</extensions>
                         <configuration>
                             <formats>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b49a9a4..c9281c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -358,6 +358,17 @@
             <artifactId>tjws</artifactId>
             <version>${resteasy.version}</version>
          </dependency>
+         <!-- needed for jetty web support-->
+         <dependency>
+            <groupId>org.eclipse.jetty.aggregate</groupId>
+            <artifactId>jetty-all-server</artifactId>
+            <version>7.6.9.v20130131</version>
+        </dependency>
+        <dependency>
+           <groupId>org.apache.geronimo.specs</groupId>
+           <artifactId>geronimo-servlet_3.0_spec</artifactId>
+           <version>1.0</version>
+      </dependency>
          <!-- needed to compile the tests -->
          <dependency>
             <groupId>junit</groupId>
@@ -471,6 +482,8 @@
          </activation>
          <modules>
             <module>activemq-dto</module>
+            <module>activemq-web</module>
+            <module>activemq-website</module>
             <module>activemq-bootstrap</module>
             <module>activemq-commons</module>
             <module>activemq-selector</module>
@@ -496,6 +509,8 @@
          <id>maven-release</id>
          <modules>
             <module>activemq-dto</module>
+            <module>activemq-web</module>
+            <module>activemq-website</module>
             <module>activemq-bootstrap</module>
             <module>activemq-commons</module>
             <module>activemq-selector</module>
@@ -521,6 +536,8 @@
          <id>release</id>
          <modules>
             <module>activemq-dto</module>
+            <module>activemq-web</module>
+            <module>activemq-website</module>
             <module>activemq-bootstrap</module>
             <module>activemq-commons</module>
             <module>activemq-selector</module>
@@ -548,6 +565,8 @@
          <id>hudson-tests</id>
          <modules>
             <module>activemq-dto</module>
+            <module>activemq-web</module>
+            <module>activemq-website</module>
             <module>activemq-bootstrap</module>
             <module>activemq-commons</module>
             <module>activemq-selector</module>
@@ -586,6 +605,7 @@
          <id>jenkins-fast-tests</id>
          <modules>
             <module>activemq-dto</module>
+            <module>activemq-web</module>
             <module>activemq-bootstrap</module>
             <module>activemq-commons</module>
             <module>activemq-selector</module>
@@ -620,6 +640,7 @@
          <id>examples</id>
          <modules>
             <module>activemq-dto</module>
+            <module>activemq-web</module>
             <module>activemq-bootstrap</module>
             <module>activemq-commons</module>
             <module>activemq-selector</module>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/eb4f8354/readme.txt
----------------------------------------------------------------------
diff --git a/readme.txt b/readme.txt
deleted file mode 100644
index e69de29..0000000


Mime
View raw message