ARTEMIS-1270 Management Console - Hawtio Solution

applying Artemis skin
This commit is contained in:
Michael Andre Pearce 2017-07-25 03:01:40 +01:00 committed by Clebert Suconic
parent fa7b247dc4
commit 12942a609f
30 changed files with 656 additions and 70 deletions

3
.gitignore vendored
View File

@ -28,3 +28,6 @@ artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.h
# gitbook output
docs/user-manual/en/_book
docs/hacking-guide/en/_book
# overlay outpit
**/overlays/**/*

View File

@ -28,7 +28,7 @@ ARTEMIS_INSTANCE_URI='${artemis.instance.uri}'
# Java Opts
JAVA_ARGS="${java-opts} -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx2G"
JAVA_ARGS="${java-opts} -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx2G -Dhawtio.realm=activemq -Dhawtio.role=${role} -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal"
#
# There might be options that you only want to enable on specifc commands, like setting a JMX port

View File

@ -28,7 +28,7 @@ rem Cluster Properties: Used to pass arguments to ActiveMQ Artemis which can be
rem set ARTEMIS_CLUSTER_PROPS=-Dactivemq.remoting.default.port=61617 -Dactivemq.remoting.amqp.port=5673 -Dactivemq.remoting.stomp.port=61614 -Dactivemq.remoting.hornetq.port=5446
rem Java Opts
set JAVA_ARGS=${java-opts} -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M -Xbootclasspath/a:%ARTEMIS_HOME%\lib\${logmanager} -Djava.security.auth.login.config=%ARTEMIS_INSTANCE%\etc\login.config -Dartemis.instance=%ARTEMIS_INSTANCE%
set JAVA_ARGS=${java-opts} -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M -Xbootclasspath/a:%ARTEMIS_HOME%\lib\${logmanager} -Djava.security.auth.login.config=%ARTEMIS_INSTANCE%\etc\login.config -Dhawtio.realm=activemq -Dhawtio.role=${role} -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dartemis.instance=%ARTEMIS_INSTANCE%
rem There might be options that you only want to enable on specifc commands, like setting a JMX port
rem See https://issues.apache.org/jira/browse/ARTEMIS-318

View File

@ -3,5 +3,5 @@
<app url="jolokia" war="jolokia.war"/>
<app url="activemq-branding" war="activemq-branding.war"/>
<app url="artemis-plugin" war="artemis-plugin.war"/>
<app url="hawtio" war="hawtio.war"/>
<app url="console" war="console.war"/>
</web>

View File

@ -172,9 +172,9 @@
<!-- Management Console Dependencies -->
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-no-slf4j</artifactId>
<version>1.5.2</version>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-console</artifactId>
<version>${project.version} </version>
<type>war</type>
</dependency>
<dependency>

View File

@ -146,11 +146,11 @@
<!-- Management Console Dependencies -->
<dependencySet>
<includes>
<include>io.hawt:hawtio-no-slf4j:war</include>
<include>org.apache.activemq:artemis-console:war</include>
</includes>
<outputDirectory>web</outputDirectory>
<unpack>false</unpack>
<outputFileNameMapping>hawtio.war</outputFileNameMapping>
<outputFileNameMapping>console.war</outputFileNameMapping>
</dependencySet>
<dependencySet>
<includes>

View File

@ -243,3 +243,193 @@ Notice from author (Robert Harder, rob@iharder.net):
See: http://iharder.sourceforge.net/current/java/base64/
==============================================================================
Apache ActiveMQ Artemis Subcomponents:
The Apache ActiveMQ Artemis project contains subcomponents with separate copyright
notices and license terms. Your use of the source code for the these
subcomponents is subject to the terms and conditions of the following
licenses.
==============================================================================
Subcomponent: Apache ActiveMQ Artemis Management Console
The next section covers the Apache ActiveMQ Artemis Management Console war.
The management console is based on HAWTIO, which itself is ASL V2.
This subcomponent is bundled by default but is optional.
It bundles the below declared packages not covered by ASL V2.
==============================================================================
For Angular:
==============================================================================
This product bundles Angular from data tables, which is available under a
"MIT" license. For details, see
https://angular.io/license
==============================================================================
For ColReorder:
==============================================================================
This product bundles ColReorder, which is available under a
"MIT" license. For details, see
https://github.com/DataTables/Dist-DataTables-ColReorder/blob/master/License.txt
==============================================================================
For Dagre:
==============================================================================
This product bundles Dagre, which is available under a
"MIT" license. For details, see
https://github.com/cpettitt/dagre/blob/master/LICENSE
==============================================================================
For Dangle:
==============================================================================
This product bundles Dangle, which is available under a
"MIT" license. For details, see
https://github.com/fullscale/dangle/blob/master/LICENSE.txt
==============================================================================
For Elastic:
==============================================================================
This product bundles Dangle, which is available under a
"MIT" license. For details, see
https://github.com/fullscale/elastic.js/blob/master/LICENSE-MIT
==============================================================================
For html5shiv:
==============================================================================
This product bundles html5shiv, which is available under a
"MIT" license and "GPL v2". For details, see
https://github.com/aFarkas/html5shiv/blob/master/MIT%20and%20GPL2%20licenses.md
==============================================================================
For jQuery:
==============================================================================
This product bundles jQuery, which is available under a
"MIT" license. For details, see
https://jquery.org/license/
==============================================================================
For JSONSchema.js:
==============================================================================
This product bundles JSONSchema.js, which is available under a
"MIT" license. For details, see
https://github.com/tdegrunt/jsonschema/blob/master/LICENSE
==============================================================================
For jsUri:
==============================================================================
This product bundles jsUri, which is available under a
"MIT" license. For details, see
https://github.com/derek-watson/jsUri/blob/master/LICENSE
==============================================================================
For KeyTable:
==============================================================================
This product bundles KeyTable, which is available under a
"MIT" license. For details, see
https://github.com/DataTables/KeyTable/blob/master/License.txt
==============================================================================
For Marked:
==============================================================================
This product bundles Marked, which is available under a
"MIT" license. For details, see
https://github.com/chjj/marked
==============================================================================
For PrefixFree:
==============================================================================
This product bundles PrefixFree, which is available under a
"MIT" license. For details, see
https://github.com/LeaVerou/prefixfree/blob/gh-pages/LICENSE
==============================================================================
For Sugar:
==============================================================================
This product bundles Sugar, which is available under a
"MIT" license. For details, see
https://github.com/andrewplummer/Sugar/blob/master/LICENSE
==============================================================================
For Angular-Toastr:
==============================================================================
This product bundles Angular-Toastr, which is available under a
"MIT" license. For details, see
https://github.com/Foxandxss/angular-toastr/blob/master/LICENSE
==============================================================================
For Bootstrap:
==============================================================================
This product bundles Bootstrap, which is available under a
"MIT" license. For details, see
https://github.com/twbs/bootstrap/blob/master/LICENSE
==============================================================================
For URI.js:
==============================================================================
This product bundles URI.js, which is available under a
"MIT" license. For details, see
https://github.com/medialize/URI.js/blob/gh-pages/LICENSE.txt
==============================================================================
For ZeroClipboard:
==============================================================================
This product bundles ZeroClipboard, which is available under a
"MIT" license. For details, see
https://github.com/zeroclipboard/zeroclipboard/blob/master/LICENSE
==============================================================================
For ZeroClipboard:
==============================================================================
This product bundles ZeroClipboard, which is available under a
"MIT" license. For details, see
https://github.com/zeroclipboard/zeroclipboard/blob/master/LICENSE
==============================================================================
For CodeMirror:
==============================================================================
This product bundles CodeMirror, which is available under a
"MIT" license. For details, see
https://github.com/codemirror/CodeMirror/blob/master/LICENSE
==============================================================================
For CodeMirror:
==============================================================================
This product bundles CodeMirror, which is available under a
"MIT" license. For details, see
https://github.com/codemirror/CodeMirror/blob/master/LICENSE
==============================================================================
For D3:
==============================================================================
This product bundles D3, which is available under a
"BSD 3-clause" license. For details, see
https://github.com/d3/d3/blob/master/LICENSE
==============================================================================
For Font-Awesome:
==============================================================================
This product bundles Font-Awesome code, which is available under a
"MIT" license.
This product bundles Font-Awesome fonts, which is available under a
"SIL OFL 1.1" license.
For details, see
http://fontawesome.io/license/
==============================================================================
For JS-Logger:
==============================================================================
This product bundles JS-Logger, which is available under a
"MIT" license. For details, see
https://github.com/jonnyreeves/js-logger/blob/master/MIT-LICENSE.txt
==============================================================================
For Underscore:
==============================================================================
This product bundles Underscore, which is available under a
"MIT" license. For details, see
https://github.com/jashkenas/underscore/blob/master/LICENSE

View File

@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-hawtio-pom</artifactId>
<version>2.2.0-SNAPSHOT</version>
<version>2.3.0-SNAPSHOT</version>
</parent>
<artifactId>activemq-branding</artifactId>
@ -51,10 +51,10 @@
<!-- this lets this plugin deploy nicely into karaf, these get used
for the ImportPackage directive for maven-bundle-plugin -->
<fuse.osgi.import>
<osgi.import>
javax.servlet,
*;resolution:=optional
</fuse.osgi.import>
</osgi.import>
<webapp-dir>${project.artifactId}-${project.version}</webapp-dir>
<webapp-outdir>${basedir}/target/${webapp-dir}</webapp-outdir>
@ -208,10 +208,10 @@
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Export-Package>${fuse.osgi.export}</Export-Package>
<Import-Package>${fuse.osgi.import}</Import-Package>
<DynamicImport-Package>${fuse.osgi.dynamic}</DynamicImport-Package>
<Private-Package>${fuse.osgi.private.pkg}</Private-Package>
<Export-Package>${osgi.export}</Export-Package>
<Import-Package>${osgi.import}</Import-Package>
<DynamicImport-Package>${osgi.dynamic}</DynamicImport-Package>
<Private-Package>${osgi.private.pkg}</Private-Package>
<Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>

View File

@ -17,8 +17,8 @@
/* fonts */
@import url("../../../hawtio/app/themes/fonts/Open-Sans/stylesheet.css");
@import url("../../../hawtio/app/themes/fonts/Droid-Sans-Mono/stylesheet.css");
@import url("../../../console/app/themes/fonts/Open-Sans/stylesheet.css");
@import url("../../../console/app/themes/fonts/Droid-Sans-Mono/stylesheet.css");
* {
font-family: OpenSans;
@ -1421,7 +1421,7 @@ h1, h2, h3, h4, h5, h6 {
}
a {
color: #6C2D58;
color: #B21054;
text-decoration: none;
}
@ -1476,8 +1476,8 @@ a:hover {
#main-nav > .main-nav-upper {
filter: none;
border-top: 3px solid #6C2D58;
background: #B2577A !important;
border-top: 3px solid #B21054;
background: #FFFFFF !important;
border-bottom: none;
height: 44px !important;
min-height: 44px !important;
@ -1535,11 +1535,11 @@ a:hover {
.prefs > .row-fluid > .tabbable > .nav.nav-tabs > li.active a {
border: none;
border-bottom: 1px solid #6C2D58 !important;
border-bottom: 1px solid #B21054 !important;
}
#main-nav > .navbar-inner.main-nav-upper > .container > .pull-left > .brand {
color: #fff;
color: #333333;
text-shadow: none;
}
@ -1640,10 +1640,12 @@ a:hover {
border: none;
height: 44px;
max-height: 44px;
color: #333333;
}
#main-nav .navbar-inner.main-nav-upper .nav > li:hover a {
color: #ffffff;
text-shadow: none;
}
#main-nav .navbar-inner.main-nav-upper .nav li a i:before {
@ -1687,6 +1689,7 @@ a:hover {
#main-nav .navbar-inner.main-nav-upper .nav li.active a {
border-top: none;
color: #ffffff
}
.navbar .nav > li > .dropdown-menu:before {
@ -1738,7 +1741,7 @@ a:hover {
#main.container-fluid div .nav li.overflow a:hover {
background-image: none;
background-color: #6C2D58;
background-color: #B21054;
color: #4d5258
}
@ -1756,18 +1759,18 @@ div#main div ul.nav li a:hover[disabled] {
border-radius: 0;
background-color: inherit;
background-image: none;
color: #6C2D58;
color: #B21054;
box-shadow: none;
border-bottom: 1px solid #6C2D58;
border-bottom: 1px solid #B21054;
}
#main.container-fluid div .nav li.active a:hover {
border-radius: 0;
background-color: inherit;
background-image: none;
color: #6C2D58;
color: #B21054;
box-shadow: none;
border-bottom: 1px solid #6C2D58;
border-bottom: 1px solid #B21054;
padding-top: 6px;
padding-bottom: 5px;
}
@ -2145,19 +2148,19 @@ li.dropdown.open > a.dropdown-toggle {
.ngRow.selected {
color: #ffffff !important;
background-color: #6C2D58 !important;
background-color: #B21054 !important;
border-bottom: 1px solid #d4d4d4;
}
.ngRow.selected .ngCell {
color: #ffffff !important;
background-color: #6C2D58 !important;
background-color: #B21054 !important;
border-bottom: 1px solid #d4d4d4;
}
.ngRow.selected .ngCellText a {
color: #ffffff !important;
background-color: #6C2D58 !important;
background-color: #B21054 !important;
}
.dropdown-menu > .divider:hover {
@ -2179,8 +2182,8 @@ li.dropdown.open > a.dropdown-toggle {
}
li.dropdown.open > a.dropdown-toggle {
color: #6C2D58;
border-bottom: 1px solid #6C2D58;
color: #B21054;
border-bottom: 1px solid #B21054;
}
.main-nav-upper .container .pull-right .nav.nav-tabs .dropdown .caret:before {

View File

@ -30,10 +30,10 @@
}
#main-nav > .navbar-inner.main-nav-upper > .container > .pull-left > .brand > strong {
font-weight: normal;
font-size: 18px;
font-weight: bold;
font-size: 17px;
position: relative;
top: 2px;
top: 6px;
left: 0;
}

View File

@ -1,5 +1,5 @@
![ActiveMQ Artemis logo](../activemq-branding/plugin/img/activemq-artemis-logo.png)
![ActiveMQ Artemis logo](../activemq-branding/plugin/img/activemq.png)
Apache ActiveMQ Artemis
=======================
@ -11,5 +11,6 @@ Management Console
Links
-----
[Artemis User Guide](http://activemq.apache.org/artemis/docs/2.1.0/index.html)
[Java Docs](http://activemq.apache.org/artemis/docs/javadocs/javadoc-2.1.0/index.html)
[Artemis User Guide](./help)
[Java Docs](../api/index.html)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@ -30,7 +30,7 @@ var activemqBranding = (function (self) {
Themes.definitions['activemq'] = {
label: 'activemq',
file: self.context + 'plugin/css/activemq.css',
loginBg: self.context + 'plugin/img/apache-login-background.jpg'
loginBg: self.context + 'plugin/img/login-screen-background.jpg'
};
var localStorage = Core.getLocalStorage();
if (!('theme' in localStorage)) {
@ -39,7 +39,7 @@ var activemqBranding = (function (self) {
Themes.brandings['activemq'] = {
label: 'activemq',
setFunc: function(branding) {
branding.appName = 'Management Console';
branding.appName = 'MANAGEMENT CONSOLE';
branding.appLogo = self.context + 'plugin/img/activemq.png';
branding.logoOnly = false;
branding.fullscreenLogin = true;

View File

@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<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>artemis-hawtio-pom</artifactId>
<version>2.3.0-SNAPSHOT</version>
</parent>
<artifactId>artemis-console</artifactId>
<name>ActiveMQ Artemis Console</name>
<!-- hawtio plugins are almost always war files -->
<packaging>war</packaging>
<properties>
<activemq.basedir>${project.basedir}/../..</activemq.basedir>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-web</artifactId>
<version>${hawtio.version}</version>
<!--
NOTE this WAR dependency type which enables this WAR to
inherit all the plugins and content from the core hawtio-base WAR
-->
<type>war</type>
</dependency>
<!-- lets mark dependencies from the WAR as provided to avoid jetty:run adding duplicates -->
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-core</artifactId>
<version>${hawtio.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-git</artifactId>
<version>${hawtio.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${war-plugin-version}</version>
<configuration>
<useCache>true</useCache>
<packagingExcludes>**/lib/slf4j*.jar</packagingExcludes>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>**/*.md</include>
<!-- include any other file types you want to filter -->
</includes>
</resource>
</webResources>
<overlays>
<overlay>
<groupId>io.hawt</groupId>
<artifactId>hawtio-web</artifactId>
<excludes>
<exclude>bower_components/bootstrap/docs/build/**/*</exclude>
<exclude>bower_components/bootstrap/docs/examples/**/*</exclude>
<exclude>bower_components/bootstrap/docs/templates/**/*</exclude>
<exclude>bower_components/bootstrap/docs/assets/img/examples/**/*</exclude>
<exclude>bower_components/bootstrap/docs/assets/img/example-sites/**/*</exclude>
<exclude>bower_components/bootstrap/js/tests/**/*</exclude>
<exclude>bower_components/bootstrap/docs/**/*.html</exclude>
<exclude>bower_components/Font-Awesome/src/**/*</exclude>
<exclude>bower_components/d3/src/**/*</exclude>
<exclude>bower_components/d3/test/**/*</exclude>
<exclude>bower_components/elastic.js/src/**/*</exclude>
<exclude>bower_components/elastic.js/tests/**/*</exclude>
<exclude>bower_components/elastic.js/examples/**/*</exclude>
<exclude>bower_components/jquery/src/**/*</exclude>
<exclude>bower_components/jquery/test/**/*</exclude>
<exclude>bower_components/js-logger/src/**/*</exclude>
<excluse>WEB-INF/lib/slf4j-api*.jar</excluse>
<excluse>lib/camelModel.js</excluse>
<exclude>app/activemq/**/*</exclude>
<exclude>app/api/**/*</exclude>
<exclude>app/apm/**/*</exclude>
<exclude>app/camel/**/*</exclude>
<exclude>app/camin/**/*</exclude>
<exclude>app/datatable/**/*</exclude>
<exclude>app/dozer/**/*</exclude>
<exclude>app/elasticsearch/**/*</exclude>
<exclude>app/fabric/**/*</exclude>
<exclude>app/fabric-deploy/**/*</exclude>
<exclude>app/fabric-requirements/**/*</exclude>
<exclude>app/forcegraph/**/*</exclude>
<exclude>app/git/**/*</exclude>
<exclude>app/health/**/*</exclude>
<exclude>app/ide/**/*</exclude>
<exclude>app/infinispan/**/*</exclude>
<exclude>app/jboss/**/*</exclude>
<exclude>app/jclouds/**/*</exclude>
<exclude>app/junit/**/*</exclude>
<exclude>app/maven/**/*</exclude>
<exclude>app/openejb/**/*</exclude>
<exclude>app/quartz/**/*</exclude>
<exclude>app/site/**/*</exclude>
<exclude>app/springbatch/**/*</exclude>
<exclude>app/springBoot/**/*</exclude>
<exclude>app/tomcat/**/*</exclude>
<exclude>app/wiki-drop/**/*</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
<executions>
<execution>
<id>prepare-war</id>
<phase>prepare-package</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<file>${project.build.directory}/${project.build.finalName}/index.html</file>
<replacements>
<replacement>
<token>&lt;title&gt;.*&lt;/title&gt;</token>
<value>&lt;title&gt;${project.name}&lt;/title&gt;</value>
</replacement>
</replacements>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/overlays</directory>
<includes>
<include>**/*.*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,53 @@
<h3 class="about-header">About Apache ActiveMQ Artemis</h3>
<div id="content">
<div class="wrapper">
<p>Apache ActiveMQ Artemis is an open source project to build a multi-protocol, embeddable, very high performance, clustered, asynchronous messaging system.</p>
<p>Apache ActiveMQ Artemis has a proven non blocking architecture. It delivers outstanding performance. </p>
<p>A full guide on features and usage can be found in the <a href="#/help">User Manual</a></p>
<p/>{{branding.appName}} is powered by <img class='no-shadow' ng-src='img/logo-16px.png'><a href="http://hawt.io/">hawtio</a><p/>
<h2 id = "Features">Features</h2>
<ul>
<li>AMQP protocol support</li>
<li>OpenWire support for ActiveMQ 5 clients</li>
<li>MQTT support</li>
<li>STOMP protocol support</li>
<li>HornetQ Core protocol support for HornetQ 2.4,2.5 clients</li>
<li>JMS 2.0 and 1.1 support</li>
<li>High availability with shared store and non shared store (replication)</li>
<li>Flexible Clustering</li>
<li>High performance journal for message persistence</li>
<li>Queue memory limitation</li>
<li>SSL support</li>
<li>Management over JMX, JMS and core protocol</li>
<li>Large message support</li>
<li>Topic hierarchies</li>
<li>Producer flow control</li>
<li>Consumer flow control</li>
<li>Diverts</li>
<li>Last value queue</li>
<li>Message Groups</li>
<li>OSGi support</li>
</ul>
<h2 id = "Links">Links</h2>
<ul>
<li><a target="_blank" href="#/help">User Manual</a></li>
<li><a href="https://activemq.apache.org/artemis/download.html">Download</a></li>
<li><a href="https://activemq.apache.org/artemis/migration.html">Migration</a></li>
<li><a href="https://activemq.apache.org/artemis/community.html">Community</a></li>
</ul>
</div>
</div>
<h4>Versions</h4>
**artemis** version: ${project.version}
**hawtio** version: {{hawtioVersion}}
**jolokia** version: {{jolokiaVersion}}
<div ng-show="serverVendor">
<strong>server</strong> version: {{serverVendor}} {{serverProduct}} {{serverVersion}}
</div>

View File

@ -0,0 +1,38 @@
<!--
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
-->
<style>
#scroll-box {
background:#e6e6e6;
width:100%;
height: 100%;
padding:0px;
overflow-y: scroll;
overflow-x: scroll
}
#help-content
{
position:absolute; left: 0; right: 0; bottom: 0; top: 90px;
}
</style>
<div ng-controller="Core.HelpController">
<div id="help-content">
<iframe id=scroll-box src="../user-manual/index.html" scrolling="yes" height="100%" width="100%" />
</div>
</div>

View File

@ -0,0 +1,104 @@
<!--
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
-->
<div ng-controller="JVM.ConnectController">
<div class="row-fluid connect-column-container" hawtio-auto-columns=".connect-column">
<div class="connect-column">
<div class="alert alert-info">
<p>
This page allows you to connect to remote processes which <strong>already have a <a
href="http://jolokia.org/">jolokia agent</a> running inside them</strong>. You will need to know the
host name, port and path of the jolokia agent to be able to connect.
</p>
<p>
If the process you wish to connect to does not have a jolokia agent inside, please refer to the <a
href="http://jolokia.org/agent.html">jolokia documentation</a> for how to add a JVM, servlet or OSGi
based agent inside it.
</p>
<p ng-show="hasLocalMBean()">
Use the <strong><a href="#/jvm/local">Local Tab</a></strong> to connect to processes locally on this machine (which will install a jolokia agent automatically if required).
</p>
<p ng-show="!hasLocalMBean()">
The <strong>Local Tab</strong> is not currently enabled because either the server side <strong>hawtio-local-jvm-mbean plugin</strong> is not installed or this
JVM cannot find the <strong>com.sun.tools.attach.VirtualMachine</strong> API usually found in the <strong>tool.jar</strong>.
Please see the <a href="http://hawt.io/faq/index.html">FAQ entry</a> for more details.
</p>
</div>
</div>
<div class="connect-column">
<dl>
<dt>Saved Connections</dt>
<dd>
<form class="form-horizontal no-bottom-margin">
<fieldset>
<div class="control-group">
<label class="control-label">Connections: </label>
<div class="controls">
<select ng-model="lastConnection"
ng-options="value.name as key for (key, value) in connectionConfigs">
<option value=""
ng-hide="lastConnection">New connection...</option>
</select>
<button class="btn btn-success"
title="Connect to this server"
ng-disabled="!lastConnection"
ng-click="gotoServer()"><i class="icon-share"></i></button>
<button class="btn btn-danger"
title="Delete this connection"
ng-disabled="!lastConnection"
ng-click="deleteConnection()"><i class="icon-remove-sign"></i></button>
<button class="btn btn-primary"
title="Create a new connection"
ng-disabled="!lastConnection"
ng-click="newConnection()"><i class="icon-plus"></i></button>
</div>
</div>
</fieldset>
</form>
</dd>
</dl>
<dl>
<dt>Connection Settings</dt>
<dd>
<div simple-form name="connectForm" data="formConfig" entity="currentConfig" onSubmit="gotoServer()"></div>
<div class="centered">
<button class="btn btn-primary"
ng-disabled="!forms.connectForm.$valid"
hawtio-submit="connectForm"
title="Saves the connection and opens a new browser window connecting to the given JVM process via its Jolokia servlet URL">Connect to remote server</button>
<button class="btn"
title="Save this configuration but don't open a new tab"
ng-disabled="!forms.connectForm.$valid"
ng-click="save()">Save</button>
</div>
</dd>
</dl>
</div>
</div>
</div>

View File

@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-hawtio-pom</artifactId>
<version>2.2.0-SNAPSHOT</version>
<version>2.3.0-SNAPSHOT</version>
</parent>
<artifactId>artemis-plugin</artifactId>
@ -50,10 +50,10 @@
<!-- this lets this plugin deploy nicely into karaf, these get used
for the ImportPackage directive for maven-bundle-plugin -->
<fuse.osgi.import>
<osgi.import>
javax.servlet,
*;resolution:=optional
</fuse.osgi.import>
</osgi.import>
<webapp-dir>${project.artifactId}-${project.version}</webapp-dir>
<webapp-outdir>${basedir}/target/${webapp-dir}</webapp-outdir>
@ -212,10 +212,10 @@
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Export-Package>${fuse.osgi.export}</Export-Package>
<Import-Package>${fuse.osgi.import}</Import-Package>
<DynamicImport-Package>${fuse.osgi.dynamic}</DynamicImport-Package>
<Private-Package>${fuse.osgi.private.pkg}</Private-Package>
<Export-Package>${osgi.export}</Export-Package>
<Import-Package>${osgi.import}</Import-Package>
<DynamicImport-Package>${osgi.dynamic}</DynamicImport-Package>
<Private-Package>${osgi.private.pkg}</Private-Package>
<Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>

View File

@ -23,11 +23,11 @@
<parent>
<groupId>org.apache.activemq</groupId>
<artifactId>artemis-pom</artifactId>
<version>2.2.0-SNAPSHOT</version>
<version>2.3.0-SNAPSHOT</version>
</parent>
<artifactId>artemis-hawtio-pom</artifactId>
<name>ActiveMQ Artemis HawtIO</name>
<name>ActiveMQ Artemis Cons</name>
<!-- hawtio plugins are almost always war files -->
<packaging>pom</packaging>
@ -39,7 +39,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<hawtio.version>1.5.2</hawtio.version>
<hawtio.version>1.5.0</hawtio.version>
<jline.version>3.2.0</jline.version>
<jolokia-version>1.3.6</jolokia-version>
<junit-version>4.11</junit-version>
@ -57,7 +57,7 @@
<slf4j-api-version>1.6.6</slf4j-api-version>
<slf4j-version>1.7.21</slf4j-version>
<war-plugin-version>2.1.1</war-plugin-version>
<war-plugin-version>2.6</war-plugin-version>
</properties>
<dependencyManagement>
@ -99,6 +99,7 @@
<modules>
<module>activemq-branding</module>
<module>artemis-plugin</module>
<module>artemis-console</module>
</modules>
</project>

View File

@ -22,15 +22,6 @@
elementFormDefault="qualified"
version="1.0">
<xsd:element name="imports">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="import" maxOccurs="unbounded" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="type"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="core" type="configurationType"/>
<xsd:complexType name="configurationType">

View File

@ -58,7 +58,7 @@ import org.junit.Test;
public class FileConfigurationTest extends ConfigurationImplTest {
private final String fullConfigurationName = "configurationImport.xml";
private final String fullConfigurationName = "ConfigurationTest-full-config.xml";
@Override
@Test

View File

@ -56,6 +56,6 @@ public interface ActiveMQWebLogger extends BasicLogger {
void tmpFileNotDeleted(File tmpdir);
@LogMessage(level = Logger.Level.INFO)
@Message(id = 241004, value = "Artemis Hawtio available at {0}", format = Message.Format.MESSAGE_FORMAT)
void hawtioAvailable(String bind);
@Message(id = 241004, value = "Artemis Console available at {0}", format = Message.Format.MESSAGE_FORMAT)
void consoleAvailable(String bind);
}

View File

@ -55,7 +55,7 @@ public class WebServerComponent implements ExternalComponent {
private WebServerDTO webServerConfig;
private URI uri;
private String jolokiaUrl;
private String hawtioUrl;
private String consoleUrl;
private List<WebAppContext> webContexts;
private ServerConnector connector;
@ -106,8 +106,8 @@ public class WebServerComponent implements ExternalComponent {
if (app.war.startsWith("jolokia")) {
jolokiaUrl = webServerConfig.bind + "/" + app.url;
}
if (app.war.startsWith("hawtio")) {
hawtioUrl = webServerConfig.bind + "/" + app.url;
if (app.war.startsWith("console")) {
consoleUrl = webServerConfig.bind + "/" + app.url;
}
}
}
@ -140,8 +140,8 @@ public class WebServerComponent implements ExternalComponent {
if (jolokiaUrl != null) {
ActiveMQWebLogger.LOGGER.jolokiaAvailable(jolokiaUrl);
}
if (hawtioUrl != null) {
ActiveMQWebLogger.LOGGER.hawtioAvailable(hawtioUrl);
if (consoleUrl != null) {
ActiveMQWebLogger.LOGGER.consoleAvailable(consoleUrl);
}
}

View File

@ -160,6 +160,8 @@
</configuration>
</execution>
</executions>
<configuration>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>

View File

@ -51,6 +51,7 @@
<div id="content">
<div class="wrapper">
<ul>
<li><a target="_blank" href="console">Management Console</a></li>
<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 target="_blank" href="hacking-guide/index.html">Hacking Guide</a></li>

View File

@ -1539,6 +1539,9 @@
<exclude>**/package.json</exclude>
<exclude>**/npm-shrinkwrap.json</exclude>
<!-- Build time overlay folder -->
<exclude>**/overlays/**</exclude>
<!-- things from cmake on the native build -->
<exclude>**/CMakeFiles/</exclude>
<exclude>**/Makefile</exclude>