Merge #29 on WebServer integration

This commit is contained in:
Clebert Suconic 2014-12-02 11:56:02 -05:00
commit 4e8edab4f6
27 changed files with 1125 additions and 141 deletions

View File

@ -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)

View File

@ -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;
}

View File

@ -17,6 +17,11 @@
</properties>
<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>
@ -144,4 +149,4 @@
</profile>
</profiles>
</project>
</project>

View File

@ -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;
}

View File

@ -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<>();
}

View File

@ -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;
}

View File

@ -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";
}
}

View File

@ -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>

View File

@ -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>

47
activemq-web/pom.xml Normal file
View File

@ -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>

View File

@ -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);
}
}

View File

@ -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();
}
}
}

View File

@ -0,0 +1 @@
12345

96
activemq-website/pom.xml Normal file
View File

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -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>

View File

@ -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;
}

View File

@ -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;
}

View File

@ -107,6 +107,11 @@
<artifactId>jnp-client</artifactId>
<version>${project.version}</version>
</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>
@ -155,7 +160,30 @@
<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>
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-war</artifactId>
<type>war</type>
</dependency>
<!-- javadoc -->
<dependency>
<groupId>org.apache.activemq</groupId>

View File

@ -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,30 @@
</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>
<dependencySet>
<includes>
<include>org.jolokia:jolokia-war:war</include>
</includes>
<outputDirectory>web</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<!-- schema -->
@ -94,15 +109,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 +128,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>

View File

@ -18,12 +18,17 @@
<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">
<app url="jolokia" war="jolokia-war-1.2.3.war"/>
</web>
</broker>

View File

@ -18,12 +18,17 @@
<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">
<app url="jolokia" war="jolokia-war-1.2.3.war"/>
</web>
</broker>

View File

@ -18,12 +18,17 @@
<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">
<app url="jolokia" war="jolokia-war-1.2.3.war"/>
</web>
</broker>

View File

@ -18,12 +18,17 @@
<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">
<app url="jolokia" war="jolokia-war-1.2.3.war"/>
</web>
</broker>

View File

@ -84,11 +84,38 @@
</pluginRepositories>
<profiles>
<!-- mvn compile -Phtml -->
<profile>
<id>html</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jboss.maven.plugins</groupId>
<artifactId>maven-jdocbook-plugin</artifactId>
<version>2.3.5</version>
<extensions>true</extensions>
<configuration>
<formats>
<format>
<formatName>html</formatName>
<stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
<finalName>index.html</finalName>
</format>
</formats>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- mvn compile -->
<profile>
<id>all</id>
<activation>
<activeByDefault>true</activeByDefault>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
@ -121,33 +148,6 @@
</build>
</profile>
<!-- mvn compile -Phtml -->
<profile>
<id>html</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jboss.maven.plugins</groupId>
<artifactId>maven-jdocbook-plugin</artifactId>
<version>2.2.1</version>
<extensions>true</extensions>
<configuration>
<formats>
<format>
<formatName>html</formatName>
<stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
<finalName>index.html</finalName>
</format>
</formats>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- mvn compile -Phtml-single -->
<profile>
<id>html-single</id>
@ -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>

27
pom.xml
View File

@ -358,6 +358,23 @@
<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>
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-war</artifactId>
<type>war</type>
<version>1.2.3</version>
</dependency>
<!-- needed to compile the tests -->
<dependency>
<groupId>junit</groupId>
@ -471,6 +488,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 +515,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 +542,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 +571,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 +611,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 +646,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>

View File