From eb4f835477b7692f605c072e1319d88bcd4e92f2 Mon Sep 17 00:00:00 2001 From: Andy Taylor Date: Fri, 28 Nov 2014 11:46:12 +0000 Subject: [PATCH 1/2] 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. --- .../org/apache/activemq/cli/commands/Run.java | 24 +- .../components/ExternalComponent.java | 25 ++ activemq-dto/pom.xml | 7 +- .../java/org/apache/activemq/dto/AppDTO.java | 34 +++ .../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 ++++ .../component/WebServerComponent.java | 112 +++++++++ .../activemq/test/WebServerComponentTest.java | 125 ++++++++++ .../webapps/WebServerComponentTest.txt | 1 + activemq-website/pom.xml | 96 +++++++ .../main/resources/images/activemq-logo.png | Bin 0 -> 6819 bytes .../src/main/resources/index.html | 64 +++++ .../styles/impact/css/pygmentize.css | 127 ++++++++++ .../main/resources/styles/impact/css/site.css | 235 ++++++++++++++++++ distribution/activemq/pom.xml | 25 +- .../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 +- .../config/shared-store/bootstrap.xml | 7 +- docs/user-manual/pom.xml | 60 ++--- pom.xml | 21 ++ readme.txt | 0 27 files changed, 1099 insertions(+), 141 deletions(-) create mode 100644 activemq-bootstrap/src/main/java/org/apache/activemq/components/ExternalComponent.java create mode 100644 activemq-dto/src/main/java/org/apache/activemq/dto/AppDTO.java create mode 100644 activemq-dto/src/main/java/org/apache/activemq/dto/ComponentDTO.java create mode 100644 activemq-dto/src/main/java/org/apache/activemq/dto/WebServerDTO.java create mode 100644 activemq-web/pom.xml create mode 100644 activemq-web/src/main/java/org/apache/activemq/component/WebServerComponent.java create mode 100644 activemq-web/src/test/java/org/apache/activemq/test/WebServerComponentTest.java create mode 100644 activemq-web/src/test/resources/webapps/WebServerComponentTest.txt create mode 100644 activemq-website/pom.xml create mode 100644 activemq-website/src/main/resources/images/activemq-logo.png create mode 100644 activemq-website/src/main/resources/index.html create mode 100644 activemq-website/src/main/resources/styles/impact/css/pygmentize.css create mode 100644 activemq-website/src/main/resources/styles/impact/css/site.css delete mode 100644 readme.txt 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 adf5b6e84c..8bab07e57e 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 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) 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 0000000000..ae5d387ebd --- /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; +} diff --git a/activemq-dto/pom.xml b/activemq-dto/pom.xml index 98d9bb7ab0..f57a571126 100644 --- a/activemq-dto/pom.xml +++ b/activemq-dto/pom.xml @@ -17,6 +17,11 @@ + + org.apache.activemq + activemq-commons + ${project.version} + com.fasterxml.jackson.core jackson-databind @@ -144,4 +149,4 @@ - \ No newline at end of file + 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 0000000000..5d1e043057 --- /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; +} 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 6b0f3991a9..70e6767cbd 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 components = new ArrayList<>(); + } \ No newline at end of file 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 0000000000..8fd9868e3d --- /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; +} 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 0000000000..5875ac4f75 --- /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 apps; + + public WebServerDTO() + { + componentClassName = "org.apache.activemq.component.WebServerComponent"; + } +} diff --git a/activemq-journal/pom.xml b/activemq-journal/pom.xml index 1941313d74..7e61714008 100644 --- a/activemq-journal/pom.xml +++ b/activemq-journal/pom.xml @@ -51,42 +51,4 @@ test - - - - release - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9 - - org.jboss.apiviz.APIviz - - org.jboss.apiviz - apiviz - 1.3.2.GA - - true - 128m - 512m - false - true - org.apache.activemq.core:org.apache.activemq.utils - - - - javadocs - - jar - - - - - - - - - diff --git a/activemq-selector/pom.xml b/activemq-selector/pom.xml index 8a07b1746a..6089f9e799 100644 --- a/activemq-selector/pom.xml +++ b/activemq-selector/pom.xml @@ -32,43 +32,6 @@ - - - release - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9 - - org.jboss.apiviz.APIviz - - org.jboss.apiviz - apiviz - 1.3.2.GA - - true - 128m - 512m - false - true - org.apache.activemq.core:org.apache.activemq.utils - - - - javadocs - - jar - - - - - - - - - diff --git a/activemq-web/pom.xml b/activemq-web/pom.xml new file mode 100644 index 0000000000..8370fe8788 --- /dev/null +++ b/activemq-web/pom.xml @@ -0,0 +1,47 @@ + + 4.0.0 + + + org.apache.activemq + activemq-pom + 6.0.0-SNAPSHOT + + + activemq-web + jar + ActiveMQ6 Web + + + ${project.basedir}/.. + + + + + org.apache.activemq + activemq-dto + ${project.version} + + + org.apache.activemq + activemq-bootstrap + ${project.version} + + + org.eclipse.jetty.aggregate + jetty-all-server + + + junit + junit + test + + + org.jboss.logmanager + jboss-logmanager + test + + + + + 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 0000000000..95f58b4ace --- /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); + } +} 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 0000000000..c170635bca --- /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 + { + 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(); + } + } +} 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 0000000000..bd41cba781 --- /dev/null +++ b/activemq-web/src/test/resources/webapps/WebServerComponentTest.txt @@ -0,0 +1 @@ +12345 \ No newline at end of file diff --git a/activemq-website/pom.xml b/activemq-website/pom.xml new file mode 100644 index 0000000000..5340ffecb9 --- /dev/null +++ b/activemq-website/pom.xml @@ -0,0 +1,96 @@ + + 4.0.0 + + + org.apache.activemq + activemq-pom + 6.0.0-SNAPSHOT + + + activemq-website + jar + ActiveMQ6 Web + + + + org.apache.activemq + activemq-core-client + ${project.version} + + + org.apache.activemq + activemq-jms-client + ${project.version} + + + org.apache.activemq + activemq-server + ${project.version} + + + org.apache.activemq + activemq-jms-server + ${project.version} + + + org.apache.activemq + activemq-journal + ${project.version} + + + org.apache.activemq + activemq-selector + ${project.version} + + + + + ${project.basedir}/.. + + + + + + maven-javadoc-plugin + 2.10.1 + + + javadoc-jar + package + + jar + + + org.jboss.apiviz.APIviz + + org.jboss.apiviz + apiviz + 1.3.2.GA + + true + 128m + 512m + false + + true + + + + org.apache.activemq:activemq-core-client + org.apache.activemq:activemq-jms-client + org.apache.activemq:activemq-server + org.apache.activemq:activemq-jms-server + org.apache.activemq:activemq-journal + org.apache.activemq:activemq-selector + + false + true + org.apache.activemq.core:org.apache.activemq.utils + + + + + + + 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 0000000000000000000000000000000000000000..d514448b55a5f5f97c9de1900144f3c1572d4e71 GIT binary patch literal 6819 zcmcgxXEYp8w;c?|XfueYF?u(8i|9n}UG&~X7ov<_qIbd|MDM+3ltd6E+8`JbC3-{; z^76g!=llQeT6gce?%n6Cv-Vx<{gwv^cdGhPh_{`+w9lWRdpqm z4cTRVsTG~+@AC8W%X5nAGm(v{CG~Lywb8lB$;lNl*)8Gu&0)Fuv8hE-X$>J+(b3WG zf>P>zvnqX)Lqb9-JrZ+YM!$89_V@SCcMMN;3C*$z$$k+WYweqE;_v9_n5pmk#^7bF zzDI(NM}~%%nVH#}=dNMu_Q^61adP&$y1I$d4snt;G2)i$>gvG~W?_P+2)JpWfPtKx zTnLA50GFd<4vzOf4|0uvuPfH*0U%UUG@%U@xlYbQuc&nKD0sw?$|Cv}{*TU}pZBqIv znfNLAIN12PczMDMTs#~A{DN=+VK~271bv+6q<*! zj<5(T4`g2A+2}f^?MkNwF7b(h8Z0~^FM7Yhx&pf8ypMdMFe}@5sP+kBgj?=^1p#cM z&SCEMl3bKat73>dEqPC`Fw5Yf(BI?;igFd2mAR3ScV&f{Nx7DMT6lyFEndJtK60Oq zo8WDN6ZbIrwAl%j6qo6jeNH1JbVYF?@SV5D%VLN>oWR_|l0Ylal*@GEV*cf4ywPlXp6t%sGkw}5QK#YW{=E;XAU@TfHHu5q>Vm_2TJ^AUBimHa7tL0iiN{8 z=u8;F9izCEgaHI-^g{i58Pl@3SA-Du8n1$H&bf9~n9vFDAl3#2;9!uPH4r|v9WYLG znT+wIk(1==&wk=?1V9~~XX}BcY(A;7V=t438lK~|7?p{kg%E!Kas+eN1zn-^Pbx^f z;No#gkdzd!R^E^^#q{*M^pMZS|65Z%e;d9m~~aK4T6-N5Y&Zu8Kde zIfV^269uRIQ7-N8f@89ud@Yrt@?}KV$61Xtm;A!;!~n{_HcCQOVxkUmDSgQf?59Cp zG}pr$yV;)j00_dLTvcd)6cqGqb$J5JafJhbX`8F7Fhx`e8)|{J1ed*vK1nVMVK=-; z`HofV3$NIofU64CGGX4P932MZVz1a_u0t|F$!3KIN@*4s0LD92ZHbf)wSow{CN9J( z>H+rTV+LR29yJS;&aXTHGXk<4k?iI|xR?7)@jf8qCRvJaxGV%RZ2-BJkL2KJ_;(wY z;wh>!6RRwP_Mf(-lF;O>7Ffia>=rAat%-L@2$M0hc90YMOnpN#CjVR3lC*^n>p@Qj zXzHn8DJ@ggxM6lzJ_8x?3CVNJt?bX(;gV?{8D}Yar)wB` zB_mz@nl-v548~gCP=RpQ!yvAoK_{>eR-lrwzhF?%=!#D7|`b$PcJ80AsTIr4_`RpaKnrjyM=&qs*)>@wLJ+p;0xmY3p#6~U>a{Rz$v)sBFoRo^&`vXf4PF@yH z47)!vfH=Ms)7uNKHNMKF0(*U<$H7sM^LI^sp<~2hA)u#|S6%7i^P8c4Ui4a_cvL{G zDi4Cy{$&AjY7|Dfl{!Uc1RI8eFUr5+Sn;&=3LrF~QI%?OQl`b_TZ9ToKSP6s`Rs21XQYn)Ql?OG??Bl5^gxh~c@C zx%|uot*x~N@A3NjH>K~6v$?n@{8DsC#@U=>le*c z4s%yB^!fpP|8n3pkfKNujB@4`Gf=B9tmFa74a7%mTfaKynb4Gx-^IugRKc8duc&!U1tb+IE;!(Rlw>LUbxTnhqK#%<>yzf}HADjdI~RVeY1z>Y?ug0s=6 zBHZb*PVJ|VZ%^%fPQajRO`QrNpPS9czsoNNoXKrrjEGL6+p z&jX*4Qo;b$j3(G2L6lP86NejQjouEND9@M^$_YEktU$5JZ#&n=@(`{`e|k7-&1%(f zYC5=0A|g0UqN=W$rHQk<{ehFsMG4+wG;DRTFg0W0UipX>2Z*1|vtR{)3sXBH3f zY3XSRa~{l?i;>06SD>Mv%P>357Xi>B1gc2+I9)}Svva2~b`vmoMN<5A9nt8y9?-vbxk3@V)@dMVz z4j1X#d<_WUg2=RBjyNo|2Uy5?9wL>21BY=eWVB`t)3Fp$8)A>OLi8hT`YCOqc>~><>zH+0XrQq#h>?*0@*I>3e&I!X5<&R zyUQm=eYoq_@!e8Vl**17YrR)uU|a+SFQUi4ks>S$M|U7CmaHoe*4@NodBTidlu9`| z@TCPqAH}jQYIS3}h9p_#3ixF_(zuH2-ORksR`zk*02EP@_waDdm||5Pu*sILotv^?A6Eq#g9 zMA*P6C6Kfk0;3x3q5$km+y4B!9SZVz@*cutq2F_fP%i3TB6yniWzZKH;lRYEIksCl zMXL1Kt+e6TlK7uHxciobktSo}7KEr98qgVCj%Jmf-A5q@P*lzbdElTq0wcH&U*~Dz zv83#j#4fIK`&;(f_SRVmIMETZS%|+Xm$r?|m*V{5tAuLlQFev?R!j1S?an`60u@o_ zhK4^k>QZ6d=f}eBaLMPkx6-HQN@S6f%yRjmqu-a@V90MT=H~H$tbf1ABqcK*6YMq0 zSS4bPlv8rygQSliiXLI?_j|dSRT?s7G>)Rkng{q2WV`a`ADX^=f=kjjMgnr{o!8pR z^z3%1-UZF$glgE-}PHE?*G&OLtFUV8OK z{NvDd=lf?JuM;(8Q|L(^!&C;Gk1rGa2qHoulp|aZ3cWWjG;;ii;#BEJs|gX#)QA_4 z#%bg#vS!2ADEK`N%V+uA;-SD{?7HjMx^~qqPgFIDP(%N*ilQ={JV&d4)cW9mSg4wkF*oZ z#9hTwCwCNKWpivB3cf8L@gdf@oV*x4Omfy&KJ71L6%2lin-0eZMbD!);u>f;~|*g#Ww07q;)o50hIps)AgLP;I_*uyK`)MoikB+LYrreo2tHyW9^_?S<@`kPKM zr-ic#&bu0#h?zqNHOXWYDftimhpfudnIYV6U6B0ygxOz73*ugKC zb#9&~zf}^h3UvomfoikkyQe%yY*LMR!}&vGTBlT+XV0pBGta%H@p>X;5-qztfQF3C zGS700LJ=rIqNW4*w*Esv?Ab=yDNfz}Qn*I-ww<=M@a?uBaKpv>zWFxuS}NQv(WbjL zz3f)AZv*||U~G&?Rf$`MKgIX-o5wS;KtT$EBTBCsI3;4GKIl{ksp?mQmVtGWz^|@TOwsSNPqe zRDbp_d&$BtyMND5!tdaNf6Hf8iticNzyAU?&;;^$M}1_a@;A)$xk)!M@V@yR$aovY zI;kc$G)qT2DDf-o;n#?JVsT(fHBL|j!Qs=JbBRx<*^JJx56O1dm!n_;uy<`*?Zm6| z2K{U{mf7o(#|Z`l0urEQc3OYh3%6u{JO#Ec%iP^PF1cSHV;{U;-jHjwS%HlK zrv*Nhqmn1n$$ub5Sw5m>p{Mf-g7Gyws>;2S84cHuPeQMMIl&mhuSt$XqI{?bFMj4Y zJ=E>Ak;nf?#{IzC5mK4?3!=5ssV&i(%^ZGy=0Kj00)O5|>wx}T_K1wq*{e1Q1`Csx> zXNJkKhT`#k_&b^$@M9wjnBzyF$}#m~rGn}>5y{U3CS7g~4=%bg-A-JN1E(s#m%bjS zR`5=jov9LmoYNs3ia};mWIz=FRU5F6I{8yd!~ruEA~+d?X13;=Dkffd<3PgtRW>G5 zhT*B$3FZ|n1!XN>yn@GAC?$rqOTvrzHBZ|tp}Q5rcwZ&dg^d{MznzbXU_zjo@TL@Z zNw7K*xKyQ3r+Pw^giJ)Qu(o<-tBQfx3o zv1wnL0Lz1-`O(10-1FL;MR3ON9A{j8d2c2thHc-6jp7iZfdibQ!ZJ%eaY#vZ50|n- zEq%M75WQt$j(^rCgtKbSA0y9O9lEqr^HY^8W>&LrMuhM)Uyir@=)0~t7r!= z#hrQYs$Al>$T&iwZwM8w0Fs&okx#X06$J1oQEf+r$~;5wqR{;s*O$W7Sz04VsQi-L z;5sG3QdcbdSaya~1szfKhPFH8^2k(B+%^^}72xw?hUE4I!xyR%BYuDSdU`u;C*&q4 z)ElZ>J3~!Nb!+ZI4O9>^j$_#B%cg#8Z!T|51;ZX}vXwxXJ`M6={3v(8)i)3fJ;7P6 z)0MbW_Q_AG*%;6a(UNC+r?&aC`9-)F)F zOzoQTuX7PflfzyJ7Oh`9_^N&`MrO!kk`>zteI#e=_pRgi%YzskTG^xK^`)Bm8ed8J zRCmjSNdQrF6VVHBik=bX&SyaW+RAppzizi(T|-3!A)-#g zjz?2hj-qwH8`guT6nUh56JlLx<8?N>Jlv-0(MWa;mKo`IRYtM-4x5=?<6SBOgGU3V z0yKZ#DHSfj07q=Wd^vSb+JBNr1LMpVBwc!xGN{!7c-F+k-vZfjoRF4(A1zu{4i^BNdVVxSB?+TyO_t4G8d!jhjzR^1#VE7pO4wowZ4XdV0)z`Z5 zOY@TgeC_9&vrAe~YFX!QNzU&mc?Yb1I8IIrW6atc7y##dEsmDr;tl%KArI$O`s1JUcXq`QoL z-t(jOTgN4N?vd{BB8)=EqRYFO-ucAi6+%j=st~fh+)U=h%Cr-}rL zv@GLTb$7GfeV7uq+H-Uy(lJU)I-jOKdyd6cJ_D9vi#otkE6`X92$o$whJ$-K036mY zyC~>YEc}nJ)iOA*)hyDNblq1Ti*1Q?tIejdtawd4>y0R=^PEQc+njtR%1l1W_#UU) zBHecQ@%2!gR8r=*pJLq!fI24kX4fyJC%mex(lnj@@Xld;V78v-Mnja>U1H-D_4a(( zykh%QKc^x7zNY{l5F>=$CH-bG7SrRfH}6_|N4F#-Ci&a;VnVc4!!yKCTq?e_=Ag%? zGQ&irZ6S5n>6-XUL0M}}%9qGmMzh3EiIPUK6>^pqO`5JItTw_{$QEHh#D#0NFNdST z=CO!O(gA-KxPphwDp6ti?Bp@#E%Qr2=`dBhrbBBZb@TT7zQqr{htBMbE5NuTzfGf; z{b0$!rmYOnk825|-&WUTiz^%PmHMU$?xUYc!sM}uAp=Xchf~_T=p{cq_g1(+t?IQ$ z%uF$h?888|P%f_e-QoRpE}QjF_v+@($pMCYgUIGjuNSsE4c9u zcT416nRc+3T)>UFXyrY{1EDKFf80+|GJdcjj}=9S$qkttzuU7tVe%0C)9qDoh$`+Z zj^7J@e1wWOP92q{;Hwzuhd*1vrS2ukd<(QnxNI#!s$a)hwsxNM?PX?F^35DPUcB0E z3NYSKM@wH*L_iu2DZ z)hXDxQslKW5<#Ec0@eNH%G@-B_j^%jQw^Iz;KJ^;f}@WiUagL*AjcPv>{B;@#K1^) zp)!J&4aQ5sE7yVM2g`m_1%Ck>CJ8`5l%;y^lee`g=njo$c3J`TSFREWQ6ERJw) zpeVFvr5XBy6dR5wM(Z%fb%6>7KJpWg2bi4% z*#~?9y}Eq*R3enDm~2F@H*T3*CX~Nlp~ByGEmqS{`R zy3Hw|Af=0=$L*Zc)7YGwYb9=ae0k1Yo^gRaem+qXEiui(OV(yxj{k3 zI5?aYi9T}H7+a#iQZwSpJC8VIJzrP*V`}~gjipg>kkMO($F6F^JFX@&Gsq#usVT)} zOt9{0JVQD>xKzwy@_b+lBp+$5)N6%ngX6Zxk36!iX1KL=EWJ>A7i`gd7;ZG9-TpH+ z%vx~6|1dMhm;ftLd$6|~bp43Gz{!|(d)4`w=4MMfKVz)#KG!`Kw!WLTr3`N)9X1;- zF{fH?BG*jZ59-j#dgoo!mah+z?C?99&$Y?OC9UV9b9=UuYliE8=o^?Cg%N)l{?GUO bU;Ox+&sl}@E?WQk2LM$iEyV_TYsCKm5px!0 literal 0 HcmV?d00001 diff --git a/activemq-website/src/main/resources/index.html b/activemq-website/src/main/resources/index.html new file mode 100644 index 0000000000..edb547a856 --- /dev/null +++ b/activemq-website/src/main/resources/index.html @@ -0,0 +1,64 @@ + + + + + + + + + + + ActiveMQ + + + +
+
+ +
+

ActiveMQ 6.0

+ ActiveMQ's next generation of messaging + +
+
+
+
+ + + 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 0000000000..d9b19d9cfd --- /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; +} 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 0000000000..27d1a799e5 --- /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 diff --git a/distribution/activemq/pom.xml b/distribution/activemq/pom.xml index 9355c3d562..8d60c60655 100644 --- a/distribution/activemq/pom.xml +++ b/distribution/activemq/pom.xml @@ -107,6 +107,11 @@ jnp-client ${project.version} + + org.apache.activemq + activemq-web + ${project.version} + org.apache.activemq activemq-core-client @@ -155,7 +160,25 @@ org.apache.activemq activemq-client - + + org.apache.activemq + activemq-website + 6.0.0-SNAPSHOT + + + org.apache.activemq + activemq-website + 6.0.0-SNAPSHOT + javadoc + + + org.eclipse.jetty.aggregate + jetty-all-server + + + org.apache.geronimo.specs + geronimo-servlet_3.0_spec + org.apache.activemq diff --git a/distribution/activemq/src/main/assembly/dep.xml b/distribution/activemq/src/main/assembly/dep.xml index e3323d22dc..1a60ed2550 100644 --- a/distribution/activemq/src/main/assembly/dep.xml +++ b/distribution/activemq/src/main/assembly/dep.xml @@ -45,9 +45,11 @@ com.google.guava:guava javax.inject:javax.inject com.fasterxml.jackson.core:jackson-* + org.eclipse.jetty.aggregate:jetty-all-server + org.apache.geronimo.specs:geronimo-servlet_3.0_spec - *:javadoc + org.apache.activemq:activemq-website lib false @@ -65,17 +67,23 @@ - - - - org.apache.activemq:activemq-core-client:*:javadoc - org.apache.activemq:activemq-server:*:javadoc - org.apache.activemq:activemq-jms-server:*:javadoc - org.apache.activemq:activemq-jms-client:*:javadoc - - docs/api/${artifact.artifactId} - true - + + + org.apache.activemq:activemq-website + + + org.apache.activemq:activemq-website:jar:javadoc + + web + true + + + + org.apache.activemq:activemq-website:jar:javadoc + + web/api + true + @@ -94,15 +102,15 @@ src/main/resources / keep - - bin/* - config/** - licenses/* - + + **/target/** + **/**/*.iml + **/**/*.dat + ../../examples - examples + web/examples keep **/target/** @@ -113,13 +121,8 @@ - ../../docs/user-manual/target/docbook/publish/en - docs/user-manual - keep - - - ../../docs/quickstart-guide/target/docbook/publish/en - docs/quickstart-guide + ../../docs/user-manual/target/docbook/publish/en/html/ + web/user-manual keep diff --git a/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml b/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml index 974d7b6dd4..698da46b1b 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 @@ - - + + + + + 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 d539a5e0a4..dbec7065ff 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 @@ - - + + + + + diff --git a/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml b/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml index e94e5f7af6..1bf29ed63f 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 @@ - - + + + + + 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 0da0da1a3e..0da0234fff 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 @@ - - + + + + + diff --git a/docs/user-manual/pom.xml b/docs/user-manual/pom.xml index 54ccfbf582..cf693f28a2 100644 --- a/docs/user-manual/pom.xml +++ b/docs/user-manual/pom.xml @@ -84,11 +84,38 @@ + + + + html + + true + + + + + org.jboss.maven.plugins + maven-jdocbook-plugin + 2.3.5 + true + + + + html + classpath:/xslt/org/jboss/xhtml.xsl + index.html + + + + + + + all - true + false @@ -121,33 +148,6 @@ - - - html - - false - - - - - org.jboss.maven.plugins - maven-jdocbook-plugin - 2.2.1 - true - - - - html - classpath:/xslt/org/jboss/xhtml.xsl - index.html - - - - - - - - html-single @@ -159,7 +159,7 @@ org.jboss.maven.plugins maven-jdocbook-plugin - 2.2.1 + 2.3.5 true @@ -177,7 +177,7 @@ org.jboss.maven.plugins maven-jdocbook-plugin - 2.2.1 + 2.3.5 true diff --git a/pom.xml b/pom.xml index b49a9a4e5f..c9281c047d 100644 --- a/pom.xml +++ b/pom.xml @@ -358,6 +358,17 @@ tjws ${resteasy.version} + + + org.eclipse.jetty.aggregate + jetty-all-server + 7.6.9.v20130131 + + + org.apache.geronimo.specs + geronimo-servlet_3.0_spec + 1.0 + junit @@ -471,6 +482,8 @@ activemq-dto + activemq-web + activemq-website activemq-bootstrap activemq-commons activemq-selector @@ -496,6 +509,8 @@ maven-release activemq-dto + activemq-web + activemq-website activemq-bootstrap activemq-commons activemq-selector @@ -521,6 +536,8 @@ release activemq-dto + activemq-web + activemq-website activemq-bootstrap activemq-commons activemq-selector @@ -548,6 +565,8 @@ hudson-tests activemq-dto + activemq-web + activemq-website activemq-bootstrap activemq-commons activemq-selector @@ -586,6 +605,7 @@ jenkins-fast-tests activemq-dto + activemq-web activemq-bootstrap activemq-commons activemq-selector @@ -620,6 +640,7 @@ examples activemq-dto + activemq-web activemq-bootstrap activemq-commons activemq-selector diff --git a/readme.txt b/readme.txt deleted file mode 100644 index e69de29bb2..0000000000 From 79a970bc7af73efc83ef90300c006da80329c643 Mon Sep 17 00:00:00 2001 From: Andy Taylor Date: Tue, 2 Dec 2014 09:54:10 +0000 Subject: [PATCH 2/2] ACTIVEMQ6-15 - expose Jolokia in web server https://issues.apache.org/jira/browse/ACTIVEMQ6-15 The Jolokia War Agent is now bootstrapped with the server so mBeans are accessible via Rest API's --- distribution/activemq/pom.xml | 5 +++++ distribution/activemq/src/main/assembly/dep.xml | 7 +++++++ .../src/main/resources/config/clustered/bootstrap.xml | 4 +++- .../src/main/resources/config/non-clustered/bootstrap.xml | 4 +++- .../src/main/resources/config/replicated/bootstrap.xml | 4 +++- .../src/main/resources/config/shared-store/bootstrap.xml | 4 +++- pom.xml | 8 +++++++- 7 files changed, 31 insertions(+), 5 deletions(-) diff --git a/distribution/activemq/pom.xml b/distribution/activemq/pom.xml index 8d60c60655..c0e58459f3 100644 --- a/distribution/activemq/pom.xml +++ b/distribution/activemq/pom.xml @@ -179,6 +179,11 @@ org.apache.geronimo.specs geronimo-servlet_3.0_spec + + org.jolokia + jolokia-war + war + org.apache.activemq diff --git a/distribution/activemq/src/main/assembly/dep.xml b/distribution/activemq/src/main/assembly/dep.xml index 1a60ed2550..a4c17ac0a5 100644 --- a/distribution/activemq/src/main/assembly/dep.xml +++ b/distribution/activemq/src/main/assembly/dep.xml @@ -84,6 +84,13 @@ web/api true + + + org.jolokia:jolokia-war:war + + web + false + diff --git a/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml b/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml index 698da46b1b..76f88d1fda 100644 --- a/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml +++ b/distribution/activemq/src/main/resources/config/clustered/bootstrap.xml @@ -26,7 +26,9 @@ - + + + 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 dbec7065ff..a88b77718e 100644 --- a/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml +++ b/distribution/activemq/src/main/resources/config/non-clustered/bootstrap.xml @@ -26,7 +26,9 @@ - + + + diff --git a/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml b/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml index 1bf29ed63f..6fd5686ae1 100644 --- a/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml +++ b/distribution/activemq/src/main/resources/config/replicated/bootstrap.xml @@ -26,7 +26,9 @@ - + + + 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 0da0234fff..344157b8d6 100644 --- a/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml +++ b/distribution/activemq/src/main/resources/config/shared-store/bootstrap.xml @@ -26,7 +26,9 @@ - + + + diff --git a/pom.xml b/pom.xml index c9281c047d..580ce49bf0 100644 --- a/pom.xml +++ b/pom.xml @@ -368,7 +368,13 @@ org.apache.geronimo.specs geronimo-servlet_3.0_spec 1.0 - + + + org.jolokia + jolokia-war + war + 1.2.3 + junit