diff --git a/artemis-bom/pom.xml b/artemis-bom/pom.xml index a913efb4561..2c2ce7f9e28 100644 --- a/artemis-bom/pom.xml +++ b/artemis-bom/pom.xml @@ -179,9 +179,9 @@ org.apache.activemq - artemis-plugin + artemis-console-war war - ${project.version} + ${artemis-console-war-version} org.apache.activemq diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java index 9d9a21326b6..3c97c272c2b 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Create.java @@ -83,7 +83,7 @@ public class Create extends InstallAbstract { public static final String ETC_BOOTSTRAP_XML = "bootstrap.xml"; public static final String ETC_MANAGEMENT_XML = "management.xml"; public static final String ETC_BROKER_XML = "broker.xml"; - + public static final String ETC_OIDC_PROPERTIES = "hawtio-oidc.properties"; public static final String ETC_ARTEMIS_ROLES_PROPERTIES = "artemis-roles.properties"; public static final String ETC_ARTEMIS_USERS_PROPERTIES = "artemis-users.properties"; private static final String ETC_LOGIN_CONFIG = "login.config"; @@ -839,6 +839,7 @@ public Object run(ActionContext context) throws Exception { } writeEtc(ETC_BOOTSTRAP_XML, etcFolder, filters, false); writeEtc(ETC_MANAGEMENT_XML, etcFolder, filters, false); + writeEtc(ETC_OIDC_PROPERTIES, etcFolder, filters, false); if (relaxJolokia) { filters.put("${jolokia.options}", ""); diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Upgrade.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Upgrade.java index 8b0fbf9928d..dfa7498eb96 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Upgrade.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/Upgrade.java @@ -16,16 +16,20 @@ */ package org.apache.activemq.artemis.cli.commands; +import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.StandardCopyOption; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Stream; @@ -36,8 +40,12 @@ @Command(name = "upgrade", description = "Update a broker instance to the current artemis.home, keeping all the data and broker.xml. Warning: backup your instance before using this command and compare the files.") public class Upgrade extends InstallAbstract { - // these are the JVM argumnents we must keep between upgrades - private static final String[] KEEPING_JVM_ARGUMENTS = new String[]{"-Xmx", "-Djava.security.auth.login.config", "-Dhawtio.role="}; + // These are the JVM arguments we must keep between upgrades + private static final String[] KEEPING_JVM_ARGUMENTS = new String[]{"-Xmx", "-Djava.security.auth.login.config", "-Dhawtio.roles="}; + + // These are the renamed JVM arguments we must keep between upgrades + // The keys MUST be one of the current KEEPING_JVM_ARGUMENTS args above, the values then being its old variant to be renamed. + private static final Map KEEPING_JVM_ARGUMENTS_ALTERNATES = Map.of("-Dhawtio.roles=", "-Dhawtio.role="); // this is the prefix where we can find the JDK arguments in Windows script private static final String JDK_PREFIX_WINDOWS = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS="; @@ -143,28 +151,31 @@ public Object run(ActionContext context) throws Exception { final File serviceXml = new File(bin, Create.ARTEMIS_SERVICE_XML); final File serviceXmlBkp = new File(binBkp, Create.ARTEMIS_SERVICE_XML); + final Map keepPrefixAlternates = Map.of("-Dhawtio.roles=", "-Dhawtio.role="); + write(Create.BIN_ARTEMIS_SERVICE_XML, serviceXmlTmp, filters, false, false); - upgrade(context, serviceXmlTmp, serviceXml, serviceXmlBkp, + upgrade(context, serviceXmlTmp, serviceXml, serviceXmlBkp, keepPrefixAlternates, "", "-Xmx", "-Xmx", - "", "", "-Dhawtio.role="); + "", "", "-Dhawtio.roles="); final File artemisProfileCmdTmp = new File(tmp, Create.ETC_ARTEMIS_PROFILE_CMD); final File artemisProfileCmd = new File(etcFolder, Create.ETC_ARTEMIS_PROFILE_CMD); final File artemisProfileCmdBkp = new File(etcBkp, Create.ETC_ARTEMIS_PROFILE_CMD); write("etc/" + Create.ETC_ARTEMIS_PROFILE_CMD, artemisProfileCmdTmp, filters, false, false); - upgradeJDK(context, JDK_PREFIX_WINDOWS, "", KEEPING_JVM_ARGUMENTS, artemisProfileCmdTmp, artemisProfileCmd, artemisProfileCmdBkp, - "set ARTEMIS_INSTANCE=\"", "set ARTEMIS_DATA_DIR=", "set ARTEMIS_ETC_DIR=", "set ARTEMIS_OOME_DUMP=", "set ARTEMIS_INSTANCE_URI=", "set ARTEMIS_INSTANCE_ETC_URI="); + upgradeJDK(context, JDK_PREFIX_WINDOWS, "", KEEPING_JVM_ARGUMENTS_ALTERNATES, KEEPING_JVM_ARGUMENTS, artemisProfileCmdTmp, artemisProfileCmd, artemisProfileCmdBkp, + Collections.emptyMap(), "set ARTEMIS_INSTANCE=\"", "set ARTEMIS_DATA_DIR=", "set ARTEMIS_ETC_DIR=", "set ARTEMIS_OOME_DUMP=", "set ARTEMIS_INSTANCE_URI=", "set ARTEMIS_INSTANCE_ETC_URI="); File artemisUtilityProfileCmd = new File(etcFolder, Create.ETC_ARTEMIS_UTILITY_PROFILE_CMD); File artemisUtilityProfileCmdTmp = new File(tmp, Create.ETC_ARTEMIS_UTILITY_PROFILE_CMD); File artemisUtilityProfileCmdBkp = new File(etcBkp, Create.ETC_ARTEMIS_UTILITY_PROFILE_CMD); + if (artemisUtilityProfileCmd.exists()) { write("etc/" + Create.ETC_ARTEMIS_UTILITY_PROFILE_CMD, artemisUtilityProfileCmdTmp, filters, false, false); - upgradeJDK(context, JDK_PREFIX_WINDOWS, "", KEEPING_JVM_ARGUMENTS, artemisUtilityProfileCmdTmp, artemisUtilityProfileCmd, artemisUtilityProfileCmdBkp, - "set ARTEMIS_INSTANCE=\"", "set ARTEMIS_DATA_DIR=", "set ARTEMIS_ETC_DIR=", "set ARTEMIS_OOME_DUMP=", "set ARTEMIS_INSTANCE_URI=", "set ARTEMIS_INSTANCE_ETC_URI="); + upgradeJDK(context, JDK_PREFIX_WINDOWS, "", KEEPING_JVM_ARGUMENTS_ALTERNATES, KEEPING_JVM_ARGUMENTS, artemisUtilityProfileCmdTmp, artemisUtilityProfileCmd, artemisUtilityProfileCmdBkp, + Collections.emptyMap(), "set ARTEMIS_INSTANCE=\"", "set ARTEMIS_DATA_DIR=", "set ARTEMIS_ETC_DIR=", "set ARTEMIS_OOME_DUMP=", "set ARTEMIS_INSTANCE_URI=", "set ARTEMIS_INSTANCE_ETC_URI="); } else { if (data == null || data.equals("data")) { dataFolder = getDATA(context, dataFolder, artemisProfileCmd, "set ARTEMIS_DATA_DIR="); @@ -191,21 +202,24 @@ public Object run(ActionContext context) throws Exception { write(Create.BIN_ARTEMIS_SERVICE, artemisServiceTmp, filters, false, false); upgrade(context, artemisServiceTmp, artemisService, artemisServiceBkp); // we replace the whole thing + final Map keepPrefixAlternates = Map.of("HAWTIO_ROLES=", "HAWTIO_ROLE="); + File artemisProfile = new File(etcFolder, Create.ETC_ARTEMIS_PROFILE); File artemisProfileTmp = new File(tmp, Create.ETC_ARTEMIS_PROFILE); File artemisProfileBkp = new File(etcBkp, Create.ETC_ARTEMIS_PROFILE); write("etc/" + Create.ETC_ARTEMIS_PROFILE, artemisProfileTmp, filters, false, false); - upgradeJDK(context, JDK_PREFIX_LINUX, "\"", KEEPING_JVM_ARGUMENTS, artemisProfileTmp, artemisProfile, artemisProfileBkp, - "ARTEMIS_INSTANCE=", "ARTEMIS_DATA_DIR=", "ARTEMIS_ETC_DIR=", "ARTEMIS_OOME_DUMP=", "ARTEMIS_INSTANCE_URI=", "ARTEMIS_INSTANCE_ETC_URI=", "HAWTIO_ROLE="); + upgradeJDK(context, JDK_PREFIX_LINUX, "\"", KEEPING_JVM_ARGUMENTS_ALTERNATES, KEEPING_JVM_ARGUMENTS, artemisProfileTmp, artemisProfile, artemisProfileBkp, + keepPrefixAlternates, "ARTEMIS_INSTANCE=", "ARTEMIS_DATA_DIR=", "ARTEMIS_ETC_DIR=", "ARTEMIS_OOME_DUMP=", "ARTEMIS_INSTANCE_URI=", "ARTEMIS_INSTANCE_ETC_URI=", "HAWTIO_ROLES="); File artemisUtilityProfile = new File(etcFolder, Create.ETC_ARTEMIS_UTILITY_PROFILE); File artemisUtilityProfileTmp = new File(tmp, Create.ETC_ARTEMIS_UTILITY_PROFILE); File artemisUtilityProfileBkp = new File(etcBkp, Create.ETC_ARTEMIS_UTILITY_PROFILE); + if (artemisUtilityProfile.exists()) { write("etc/" + Create.ETC_ARTEMIS_UTILITY_PROFILE, artemisUtilityProfileTmp, filters, false, false); - upgradeJDK(context, JDK_PREFIX_LINUX, "\"", KEEPING_JVM_ARGUMENTS, artemisUtilityProfileTmp, artemisUtilityProfile, artemisUtilityProfileBkp, - "ARTEMIS_INSTANCE=", "ARTEMIS_DATA_DIR=", "ARTEMIS_ETC_DIR=", "ARTEMIS_OOME_DUMP=", "ARTEMIS_INSTANCE_URI=", "ARTEMIS_INSTANCE_ETC_URI="); + upgradeJDK(context, JDK_PREFIX_LINUX, "\"", KEEPING_JVM_ARGUMENTS_ALTERNATES, KEEPING_JVM_ARGUMENTS, artemisUtilityProfileTmp, artemisUtilityProfile, artemisUtilityProfileBkp, + keepPrefixAlternates, "ARTEMIS_INSTANCE=", "ARTEMIS_DATA_DIR=", "ARTEMIS_ETC_DIR=", "ARTEMIS_OOME_DUMP=", "ARTEMIS_INSTANCE_URI=", "ARTEMIS_INSTANCE_ETC_URI=", "HAWTIO_ROLES="); } else { if (data == null || data.equals("data")) { dataFolder = getDATA(context, dataFolder, artemisProfile, "ARTEMIS_DATA_DIR="); @@ -229,6 +243,20 @@ public Object run(ActionContext context) throws Exception { "^(.*) keepArgumentAlternates, String[] keepArguments, File tmpFile, File targetFile, File bkpFile, Map keepPrefixAlternates, String... keepingPrefixes) throws Exception { final HashMap replaceMatrix = new HashMap<>(); final HashMap currentArguments = new HashMap<>(); doUpgrade(context, tmpFile, targetFile, bkpFile, oldLine -> { if (oldLine.trim().startsWith(jdkPrefix)) { - JVMArgumentParser.parseOriginalArgs(jdkPrefix, endOfLine, oldLine, keepArguments, currentArguments); + JVMArgumentParser.parseOriginalArgs(jdkPrefix, endOfLine, oldLine, keepArgumentAlternates, keepArguments, currentArguments); return; } else { for (String prefix : keepingPrefixes) { if (oldLine.trim().startsWith(prefix)) { replaceMatrix.put(prefix, oldLine); + } else if (keepPrefixAlternates.containsKey(prefix)) { + String oldPrefix = keepPrefixAlternates.get(prefix); + if (oldLine.trim().startsWith(oldPrefix)) { + String renamedOldLine = oldLine.replaceFirst(oldPrefix, prefix); + replaceMatrix.put(prefix, renamedOldLine); + } } } } @@ -321,6 +354,10 @@ private void replaceLines(ActionContext context, File tmpFile, File targetFile, } private void upgrade(ActionContext context, File tmpFile, File targetFile, File bkpFile, String... keepingPrefixes) throws Exception { + upgrade(context, tmpFile, targetFile, bkpFile, Collections.emptyMap(), keepingPrefixes); + } + + private void upgrade(ActionContext context, File tmpFile, File targetFile, File bkpFile, Map keepPrefixAlternates, String... keepingPrefixes) throws Exception { HashMap replaceMatrix = new HashMap<>(); doUpgrade(context, tmpFile, targetFile, bkpFile, @@ -329,6 +366,12 @@ private void upgrade(ActionContext context, File tmpFile, File targetFile, File for (String prefix : keepingPrefixes) { if (oldLine.trim().startsWith(prefix)) { replaceMatrix.put(prefix, oldLine); + } else if (keepPrefixAlternates.containsKey(prefix)) { + String oldPrefix = keepPrefixAlternates.get(prefix); + if (oldLine.trim().startsWith(oldPrefix)) { + String renamedOldLine = oldLine.replaceFirst(oldPrefix, prefix); + replaceMatrix.put(prefix, renamedOldLine); + } } } } @@ -421,4 +464,31 @@ protected File findBackup(ActionContext context) throws IOException { } throw new RuntimeException("Too many backup folders in place already. Please remove some of the old-config-bkp.* folders"); } + + private void removeWars(ActionContext context, File bootstrapXml) throws Exception { + StringBuilder sb = new StringBuilder(); + boolean remove = false; + try (Stream lines = Files.lines(bootstrapXml.toPath())) { + Iterator linesIterator = lines.iterator(); + while (linesIterator.hasNext()) { + String line = linesIterator.next(); + if (line.matches("^(.*) originalArgs) { + public static void parseOriginalArgs(String prefix, String endOfLine, String originalLine, Map keepPrefixAlternates, String[] keepingPrefixes, Map originalArgs) { originalLine = originalLine.trim(); String line = originalLine.substring(prefix.length(), originalLine.length() - endOfLine.length()); String[] split = line.split(" "); @@ -29,6 +29,12 @@ public static void parseOriginalArgs(String prefix, String endOfLine, String ori for (String k : keepingPrefixes) { if (s.startsWith(k)) { originalArgs.put(k, s); + } else if (keepPrefixAlternates.containsKey(k)) { + String oldKey = keepPrefixAlternates.get(k); + if (s.startsWith(oldKey)) { + String renamed = s.replaceFirst(oldKey, k); + originalArgs.put(k, renamed); + } } } } diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis index 9d4aeba6e73..220850c348a 100755 --- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis @@ -44,7 +44,7 @@ if [ -z "$ARTEMIS_INSTANCE" ] ; then ARTEMIS_INSTANCE=`cd "$ARTEMIS_INSTANCE/.." && pwd` fi -HAWTIO_ROLE="NO_HAWTIO_ROLE" +HAWTIO_ROLES="NO_HAWTIO_ROLES" # Load Profile Data ARTEMIS_INSTANCE_ETC='${artemis.instance.etc}' @@ -112,7 +112,7 @@ fi exec "$JAVACMD" \ $LOGGING_ARGS \ $JAVA_ARGS \ - -Dhawtio.role="$HAWTIO_ROLE" \ + -Dhawtio.roles="$HAWTIO_ROLES" \ -Djava.security.auth.login.config="$ARTEMIS_INSTANCE_ETC/login.config" \ $ARTEMIS_CLUSTER_PROPS \ -classpath "$CLASSPATH" \ diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis-service.xml b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis-service.xml index f7390552c57..22eeac6db34 100644 --- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis-service.xml +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/bin/artemis-service.xml @@ -54,7 +54,7 @@ -Dhawtio.disableProxy=true -Dhawtio.realm=activemq -Dhawtio.offline="true" - -Dhawtio.role=${role} + -Dhawtio.roles=${role} -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%/jolokia-access.xml diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile index 4e1c28dc37e..aa64723973e 100644 --- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile @@ -31,9 +31,9 @@ ARTEMIS_INSTANCE_ETC_URI='${artemis.instance.etc.uri}' #ARTEMIS_CLUSTER_PROPS="-Dactivemq.remoting.default.port=61617 -Dactivemq.remoting.amqp.port=5673 -Dactivemq.remoting.stomp.port=61614 -Dactivemq.remoting.hornetq.port=5446" # Hawtio Properties -# HAWTIO_ROLE define the user role or roles required to be able to login to the console. Multiple roles to allow can +# HAWTIO_ROLES defines the user roles required to be able to login to the console. Multiple roles to allow can # be separated by a comma. Set to '*' or an empty value to disable role checking when Hawtio authenticates a user. -HAWTIO_ROLE='${role}' +HAWTIO_ROLES='${role}' # Java Opts if [ -z "$JAVA_ARGS" ]; then diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile.cmd b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile.cmd index 547666df371..c989e316716 100644 --- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile.cmd +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/artemis.profile.cmd @@ -33,7 +33,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 -IF "%JAVA_ARGS%"=="" (set JAVA_ARGS=${java-opts} -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512M -Xmx${java-memory} -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.role=${role} -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dhawtio.http.strictTransportSecurity=max-age=31536000;includeSubDomains;preload -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE% --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dlog4j2.disableJmx=true) +IF "%JAVA_ARGS%"=="" (set JAVA_ARGS=${java-opts} -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512M -Xmx${java-memory} -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.roles=${role} -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dhawtio.http.strictTransportSecurity=max-age=31536000;includeSubDomains;preload -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE% --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dlog4j2.disableJmx=true) rem Logs Safepoints JVM pauses: Uncomment to enable them rem In addition to the traditional GC logs you could enable some JVM flags to know any meaningful and "hidden" pause that could diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/bootstrap-web-settings.txt b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/bootstrap-web-settings.txt index a564e3431da..c3b39903154 100644 --- a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/bootstrap-web-settings.txt +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/bootstrap-web-settings.txt @@ -1,8 +1,6 @@ - - diff --git a/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/hawtio-oidc.properties b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/hawtio-oidc.properties new file mode 100644 index 00000000000..d43da808aea --- /dev/null +++ b/artemis-cli/src/main/resources/org/apache/activemq/artemis/cli/commands/etc/hawtio-oidc.properties @@ -0,0 +1,76 @@ +# +# 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. +# + +# OpenID Connect configuration requred at client side + +# URL of OpenID Connect Provider - the URL after which ".well-known/openid-configuration" can be appended for +# discovery purposes +# if this property is unavailable, OIDC is not enabled +# provider = https://login.microsoftonline.com/00000000-1111-2222-3333-444444444444/v2.0 +# OpenID client identifier +client_id = 00000000-1111-2222-3333-444444444444 +# response mode according to https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html +response_mode = fragment +# scope to request when performing OpenID authentication. MUST include "openid" and required permissions +scope = openid email profile +# redirect URI after OpenID authentication - must also be configured at provider side +redirect_uri = http://localhost:8080/hawtio +# challenge method according to https://datatracker.ietf.org/doc/html/rfc7636 +code_challenge_method = S256 +# prompt hint according to https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest +prompt = login + +# additional configuration for the server side + +# if true, .well-known/openid-configuration will be fetched at server side. This is required +# for proper JWT access token validation +oidc.cacheConfig = false + +# time in minutes to cache public keys from jwks_uri +jwks.cacheTime = 60 + +# a path for an array of roles found in JWT payload. Property placeholders can be used for parameterized parts +# of the path (like for Keycloak) - but only for properties from this particular file +# example for properly configured Entra ID token +oidc.rolesPath = roles +# example for Keycloak with use-resource-role-mappings=true +#oidc.rolesPath = resource_access.${client_id}.roles +# example for Keycloak with use-resource-role-mappings=false +#oidc.rolesPath = realm_access.roles + +# properties for role mapping. Each property with "roleMapping." prefix is used to map an original role +# from JWT token (found at ${oidc.rolesPath}) to a role used by the application +roleMapping.Hawtio.Admin = admin +roleMapping.Hawtio.Manager = manager +roleMapping.Hawtio.Viewer = viewer + +# timeout for connection establishment (milliseconds) +http.connectionTimeout = 5000 +# timeout for reading from established connection (milliseconds) +http.readTimeout = 10000 +# HTTP proxy to use when connecting to OpenID Connect provider +#http.proxyURL = http://127.0.0.1:3128 + +# TLS configuration (system properties can be used, e.g., "${catalina.home}/conf/hawtio.jks") + +ssl.protocol = TLSv1.3 +ssl.truststore = src/test/resources/hawtio.jks +ssl.truststorePassword = hawtio +ssl.keystore = src/test/resources/hawtio.jks +ssl.keystorePassword = hawtio +ssl.keyAlias = openid connect test provider +ssl.keyPassword = hawtio \ No newline at end of file diff --git a/artemis-cli/src/test/java/org/apache/activemq/artemis/util/JVMArgumentTest.java b/artemis-cli/src/test/java/org/apache/activemq/artemis/util/JVMArgumentTest.java index 747aacae0c4..48a5ffafd93 100644 --- a/artemis-cli/src/test/java/org/apache/activemq/artemis/util/JVMArgumentTest.java +++ b/artemis-cli/src/test/java/org/apache/activemq/artemis/util/JVMArgumentTest.java @@ -21,55 +21,83 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.lang.invoke.MethodHandles; +import java.util.Collections; import java.util.HashMap; +import java.util.Map; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class JVMArgumentTest { + private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + @Test public void testArgumentsWindows() { - String arguments = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS= -must-go -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms333M -Xmx77G -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE%)"; + doArgumentsWindowsTestImpl(true); + } + + @Test + public void testArgumentsWindowsWithArgRenameRequired() { + doArgumentsWindowsTestImpl(false); + } + + private void doArgumentsWindowsTestImpl(boolean useNewArgPropName) { + final String arguments; + if (useNewArgPropName) { + // Uses new args prop -Dhawtio.roles= + arguments = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS= -must-go -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms333M -Xmx77G -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.roles=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dhawtio.http.strictTransportSecurity=max-age=31536000;includeSubDomains;preload -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE% --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dlog4j2.disableJmx=true)"; + } else { + // Uses old args prop -Dhawtio.role= + arguments = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS= -must-go -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms333M -Xmx77G -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dhawtio.http.strictTransportSecurity=max-age=31536000;includeSubDomains;preload -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE% --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dlog4j2.disableJmx=true)"; + } String prefix = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS= "; - String[] fixedArguments = new String[]{"-Xmx", "-Xms"}; + String[] fixedArguments = new String[]{"-Xmx", "-Xms", "-Dhawtio.roles="}; + Map keepArgumentsAlternates = Map.of("-Dhawtio.roles=", "-Dhawtio.role="); HashMap usedArgs = new HashMap<>(); - JVMArgumentParser.parseOriginalArgs(prefix, "\"", arguments, fixedArguments, usedArgs); - assertEquals(2, usedArgs.size()); + JVMArgumentParser.parseOriginalArgs(prefix, "\"", arguments, keepArgumentsAlternates, fixedArguments, usedArgs); + assertEquals(3, usedArgs.size()); assertEquals("-Xmx77G", usedArgs.get("-Xmx")); assertEquals("-Xms333M", usedArgs.get("-Xms")); + assertEquals("-Dhawtio.roles=amq", usedArgs.get("-Dhawtio.roles=")); - String newLine = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS= -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512M -Xmx1G -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE%)"; + String newLine = "IF \"%JAVA_ARGS%\"==\"\" (set JAVA_ARGS= -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512M -Xmx1G -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.roles=replaceThisRole -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE%)"; String resultLine = JVMArgumentParser.parseNewLine(prefix, "\"", newLine, fixedArguments, usedArgs); - System.out.println("output::" + resultLine); + logger.info("output:: {}", resultLine); assertFalse(resultLine.contains("-must-go")); assertTrue(resultLine.contains("-Xmx77G")); assertTrue(resultLine.contains("-Xms333M")); + assertTrue(resultLine.contains("-Dhawtio.roles=amq")); assertFalse(resultLine.contains("-Xmx1G")); assertFalse(resultLine.contains("-Xmx512M")); + assertFalse(resultLine.contains("replaceThisRole")); + assertFalse(resultLine.contains("-Dhawtio.role=")); } @Test public void testArgumentsLinux() { - String arguments = " JAVA_ARGS=\"-must-go -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms333M -Xmx77G -Dhawtio.disableProxy=true -Dhawtio.realm=activemq -Dhawtio.offline=true -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=${ARTEMIS_INSTANCE_ETC_URI}jolokia-access.xml \""; + String arguments = " JAVA_ARGS=\"-must-go -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms333M -Xmx77G -Dhawtio.disableProxy=true -Dhawtio.realm=activemq -Dhawtio.offline=true -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dhawtio.http.strictTransportSecurity=max-age=31536000;includeSubDomains;preload -Djolokia.policyLocation=${ARTEMIS_INSTANCE_ETC_URI}jolokia-access.xml -Dlog4j2.disableJmx=true --add-opens java.base/jdk.internal.misc=ALL-UNNAMED \""; String prefix = "JAVA_ARGS="; String[] fixedArguments = new String[]{"-Xmx", "-Xms"}; HashMap usedArgs = new HashMap<>(); - JVMArgumentParser.parseOriginalArgs(prefix, "\"", arguments, fixedArguments, usedArgs); + JVMArgumentParser.parseOriginalArgs(prefix, "\"", arguments, Collections.emptyMap(), fixedArguments, usedArgs); assertEquals(2, usedArgs.size()); assertEquals("-Xmx77G", usedArgs.get("-Xmx")); assertEquals("-Xms333M", usedArgs.get("-Xms")); - String newLine = " JAVA_ARGS= -XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512M -Xmx1G -Djava.security.auth.login.config=%ARTEMIS_ETC_DIR%\\login.config -Dhawtio.disableProxy=true -Dhawtio.offline=true -Dhawtio.realm=activemq -Dhawtio.role=amq -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Djolokia.policyLocation=%ARTEMIS_INSTANCE_ETC_URI%\\jolokia-access.xml -Dartemis.instance=%ARTEMIS_INSTANCE%)"; + String newLine = " JAVA_ARGS=\"-XX:AutoBoxCacheMax=20000 -XX:+PrintClassHistogram -XX:+UseG1GC -XX:+UseStringDeduplication -Xms512M -Xmx1G -Dhawtio.disableProxy=true -Dhawtio.realm=activemq -Dhawtio.offline=true -Dhawtio.rolePrincipalClasses=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal -Dhawtio.http.strictTransportSecurity=max-age=31536000;includeSubDomains;preload -Djolokia.policyLocation=${ARTEMIS_INSTANCE_ETC_URI}jolokia-access.xml -Dlog4j2.disableJmx=true --add-opens java.base/jdk.internal.misc=ALL-UNNAMED \""; String resultLine = JVMArgumentParser.parseNewLine(prefix, "\"", newLine, fixedArguments, usedArgs); diff --git a/artemis-hawtio/artemis-console/pom.xml b/artemis-console/pom.xml similarity index 86% rename from artemis-hawtio/artemis-console/pom.xml rename to artemis-console/pom.xml index 3556df4bff6..205e7a0dc85 100644 --- a/artemis-hawtio/artemis-console/pom.xml +++ b/artemis-console/pom.xml @@ -21,8 +21,9 @@ org.apache.activemq - artemis-hawtio-pom + artemis-pom 2.37.0 + ../artemis-pom/pom.xml artemis-console @@ -30,31 +31,20 @@ war - - ${project.basedir}/../.. - - org.eclipse.jetty.toolchain - jetty-servlet-api + jetty-jakarta-servlet-api provided - io.hawt - hawtio-war - ${hawtio.version} + org.apache.activemq + artemis-console-war war - - io.hawt - hawtio-core - ${hawtio.version} - provided - com.google.guava guava @@ -78,7 +68,10 @@ true **/lib/slf4j*.jar, - **/lib/log4j*.jar + **/lib/log4j*.jar, + **/lib/jolokia-service-discovery*.jar, + **/lib/jolokia-service-history*.jar, + **/lib/jolokia-service-notif*.jar false @@ -87,19 +80,16 @@ src/main/webapp **/*.svg + hawtconfig.json - io.hawt - hawtio-war + org.apache.activemq + artemis-console-war - hawtconfig.json - img/icons/**/* - img/**/* - fonts/glyphicons** WEB-INF/lib/guava*.jar WEB-INF/lib/checker-qual-*.jar WEB-INF/lib/error_prone_annotations-*.jar diff --git a/artemis-console/src/main/webapp/hawtconfig.json b/artemis-console/src/main/webapp/hawtconfig.json new file mode 100644 index 00000000000..7dec8a0e55b --- /dev/null +++ b/artemis-console/src/main/webapp/hawtconfig.json @@ -0,0 +1,25 @@ +{ + "branding": { + "appName": "Artemis Console", + "showAppName": false, + "appLogoUrl": "img/activemq.png", + "companyLogoUrl": "img/activemq.png", + "css": "css/activemq.css", + "favicon": "img/favicon.png" + }, + "login": { + "description": "Login page for Artemis Console.", + "links": [ + { "url": "https://activemq.apache.org/components/artemis/documentation/", "text": "Documentation" }, + { "url": "https://activemq.apache.org/", "text": "Website" } + ] + }, + "about": { + "title": "ActiveMQ Artemis Management Console", + "productInfo": [{"name": "Artemis", "value": "${project.version}"}], + "additionalInfo": "", + "copyright": " ", + "imgSrc": "img/activemq.png" + }, + "disabledRoutes": [] +} \ No newline at end of file diff --git a/artemis-hawtio/artemis-console/src/main/webapp/img/img_avatar.svg b/artemis-console/src/main/webapp/img/img_avatar.svg similarity index 100% rename from artemis-hawtio/artemis-console/src/main/webapp/img/img_avatar.svg rename to artemis-console/src/main/webapp/img/img_avatar.svg diff --git a/artemis-distribution/pom.xml b/artemis-distribution/pom.xml index 163ea6d0e00..e2e4945cfc4 100644 --- a/artemis-distribution/pom.xml +++ b/artemis-distribution/pom.xml @@ -117,16 +117,6 @@ artemis-console war - - org.apache.activemq - activemq-branding - war - - - org.apache.activemq - artemis-plugin - war - org.apache.activemq diff --git a/artemis-distribution/src/main/assembly/dep.xml b/artemis-distribution/src/main/assembly/dep.xml index 2681c7d7b21..c3b7ed43a34 100644 --- a/artemis-distribution/src/main/assembly/dep.xml +++ b/artemis-distribution/src/main/assembly/dep.xml @@ -42,8 +42,6 @@ org.apache.activemq:artemis-console:war - org.apache.activemq:activemq-branding:war - org.apache.activemq:artemis-plugin:war lib false @@ -79,28 +77,6 @@ 0755 0644 - - - org.apache.activemq:activemq-branding:war - - web - false - activemq-branding.war - false - 0755 - 0644 - - - - org.apache.activemq:artemis-plugin:war - - web - false - artemis-plugin.war - false - 0755 - 0644 - diff --git a/artemis-distribution/src/main/resources/licenses/bin/LICENSE b/artemis-distribution/src/main/resources/licenses/bin/LICENSE index f40c8ec9103..9c2557b09d4 100644 --- a/artemis-distribution/src/main/resources/licenses/bin/LICENSE +++ b/artemis-distribution/src/main/resources/licenses/bin/LICENSE @@ -309,163 +309,19 @@ This subcomponent is bundled by default but is optional. It bundles the below declared packages not covered by ASL V2. ============================================================================== -For jquery: +For JSON-java ============================================================================== -This product bundles jquery, which is available under a "MIT" license. -For details, see licenses/LICENSE-jquery.txt +This product bundles the JSON Java API, which is available under a +public domain license. for details see licenses/LICENSE-JSON-java.txt ============================================================================== -For datatables: +For checker-qual ============================================================================== -This product bundles datatables, which is available under a "MIT" license. -For details, see licenses/LICENSE-datatables.txt +This product bundles the checker qual API which is available under +the MIT license, for details see licenses/LICENSE-checker-qual.txt ============================================================================== -For bootstrap: +For all the NPM dependencies ============================================================================== -This product bundles bootstrap, which is available under a "MIT" license. -For details, see licenses/LICENSE-bootstrap.txt - -============================================================================== -For patternfly: -============================================================================== -This product bundles patternfly, which is available under a "MIT" license. -For details, see licenses/LICENSE-patternfly.txt - -============================================================================== -For angular: -============================================================================== -This product bundles angular, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular.txt - -============================================================================== -For angular-animate: -============================================================================== -This product bundles angular-animate, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-animate.txt - -============================================================================== -For angular-sanitize: -============================================================================== -This product bundles angular-sanitize, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-sanitize.txt - -============================================================================== -For angular-route: -============================================================================== -This product bundles angular-route, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-route.txt - -============================================================================== -For angular-ui-bootstrap: -============================================================================== -This product bundles angular-ui-bootstrap, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-ui-bootstrap.txt - -============================================================================== -For angular-resizable: -============================================================================== -This product bundles angular-resizable, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-resizable.txt - -============================================================================== -For angular-drag-and-drop-lists: -============================================================================== -This product bundles angular-drag-and-drop-lists, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-drag-and-drop-lists.txt - -============================================================================== -For angular-datatables: -============================================================================== -This product bundles angular-datatables, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-datatables.txt - -============================================================================== -For angular-cookies: -============================================================================== -This product bundles angular-cookies, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-cookies.txt - -============================================================================== -For angular-patternfly: -============================================================================== -This product bundles angular-patternfly, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-patternfly.txt - -============================================================================== -For angular-idle: -============================================================================== -This product bundles angular-idle, which is available under a "MIT" license. -For details, see licenses/LICENSE-angular-idle.txt - -============================================================================== -For c3: -============================================================================== -This product bundles c3, which is available under a "MIT" license. -For details, see licenses/LICENSE-c3.txt - -============================================================================== -For d3: -============================================================================== -This product bundles d3, which is available under a "BSD 3-clause" license. -For details, see licenses/LICENSE-d3.txt - -============================================================================== -For lodash: -============================================================================== -This product bundles lodash, which is available under a "MIT" license. -For details, see licenses/LICENSE-lodash.txt - -============================================================================== -For urijs: -============================================================================== -This product bundles urijs, which is available under a "MIT" license. -For details, see licenses/LICENSE-urijs.txt - -============================================================================== -For js-logger: -============================================================================== -This product bundles js-logger, which is available under a "MIT" license. -For details, see licenses/LICENSE-js-logger.txt - -============================================================================== -For clipboard: -============================================================================== -This product bundles clipboard, which is available under a "MIT" license. -For details, see licenses/LICENSE-clipboard.txt - -============================================================================== -For marked: -============================================================================== -This product bundles marked, which is available under a "MIT" license. -For details, see licenses/LICENSE-marked.txt - -============================================================================== -For js-beautify: -============================================================================== -This product bundles js-beautify, which is available under a "MIT" license. -For details, see licenses/LICENSE-js-beautify.txt - -============================================================================== -For codemirror: -============================================================================== -This product bundles codemirror, which is available under a "MIT" license. -For details, see licenses/LICENSE-codemirror.txt - -============================================================================== -For graphlib: -============================================================================== -This product bundles graphlib, which is available under a "MIT" license. -For details, see licenses/LICENSE-graphlib.txt - -============================================================================== -For dagre: -============================================================================== -This product bundles dagre, which is available under a "MIT" license. -For details, see licenses/LICENSE-dagre.txt - -============================================================================== -For ng-infinite-scroll: -============================================================================== -This product bundles ng-infinite-scroll, which is available under a "MIT" license. -For details, see licenses/LICENSE-ng-infinite-scroll.txt +The licenses for dependencies sourced from NPM can be found in +licenses/NPMLicenses.txt diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-animate.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-animate.txt deleted file mode 100644 index 2c395eef1ba..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-animate.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Angular - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-cookies.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-cookies.txt deleted file mode 100644 index 2c395eef1ba..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-cookies.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Angular - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-datatables.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-datatables.txt deleted file mode 100644 index b5f6a2ed852..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-datatables.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) Louis Lin (l-lin.github.io) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-drag-and-drop-lists.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-drag-and-drop-lists.txt deleted file mode 100644 index 45299cb3c6a..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-drag-and-drop-lists.txt +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Marcel Juenemann -Copyright (c) 2014-2016 Google Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-idle.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-idle.txt deleted file mode 100644 index 1111ef11a6d..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-idle.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Mike Grabski - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-patternfly.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-patternfly.txt deleted file mode 100644 index 8d9091a9e25..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-patternfly.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Red Hat, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-resizable.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-resizable.txt deleted file mode 100644 index fa105ad2444..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-resizable.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Jacob - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-route.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-route.txt deleted file mode 100644 index bd42ae46739..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-route.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Components - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-sanitize.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-sanitize.txt deleted file mode 100644 index 2c395eef1ba..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-sanitize.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Angular - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-ui-bootstrap.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-ui-bootstrap.txt deleted file mode 100644 index cf7b84b3fb1..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular-ui-bootstrap.txt +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License - -Copyright (c) 2012-2017 the AngularUI Team, https://github.com/organizations/angular-ui/teams/291112 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular.txt deleted file mode 100644 index 94c18c7df45..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-angular.txt +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License - -Copyright (c) 2010-2021 Google LLC. http://angular.io/license - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-bootstrap.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-bootstrap.txt deleted file mode 100644 index 86f4b8ca04f..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-bootstrap.txt +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2018 Twitter, Inc. -Copyright (c) 2011-2018 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-c3.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-c3.txt deleted file mode 100644 index 29ce9cb0ad5..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-c3.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Masayuki Tanaka - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-clipboard.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-clipboard.txt deleted file mode 100644 index d9021534ac8..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-clipboard.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2015-present, Facebook, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-codemirror.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-codemirror.txt deleted file mode 100644 index ff7db4b99f5..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-codemirror.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (C) 2017 by Marijn Haverbeke and others - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-d3.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-d3.txt deleted file mode 100644 index 894ddc6549f..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-d3.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2010-2020 Mike Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-dagre.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-dagre.txt deleted file mode 100644 index 7d7dd942481..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-dagre.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012-2014 Chris Pettitt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-datatables.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-datatables.txt deleted file mode 100644 index 657d8a353d1..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-datatables.txt +++ /dev/null @@ -1,8 +0,0 @@ -MIT license -Copyright (C) 2008-2021, SpryMedia Ltd. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-graphlib.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-graphlib.txt deleted file mode 100644 index 7d7dd942481..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-graphlib.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012-2014 Chris Pettitt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-jquery.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-jquery.txt deleted file mode 100644 index f642c3f7a77..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-jquery.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright OpenJS Foundation and other contributors, https://openjsf.org/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-js-beautify.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-js-beautify.txt deleted file mode 100644 index 153d126beb4..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-js-beautify.txt +++ /dev/null @@ -1,9 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-js-logger.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-js-logger.txt deleted file mode 100644 index fb9a48ddc5f..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-js-logger.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2012 Jonny Reeves, http://jonnyreeves.co.uk/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-lodash.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-lodash.txt deleted file mode 100644 index 4773fd8e84c..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-lodash.txt +++ /dev/null @@ -1,49 +0,0 @@ -The MIT License - -Copyright JS Foundation and other contributors - -Based on Underscore.js, copyright Jeremy Ashkenas, -DocumentCloud and Investigative Reporters & Editors - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/lodash/lodash - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code displayed within the prose of the -documentation. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -Files located in the node_modules and vendor directories are externally -maintained libraries used by this software which have their own -licenses; we recommend you read them, as their terms may differ from the -terms above. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-marked.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-marked.txt deleted file mode 100644 index 4bd2d4a0849..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-marked.txt +++ /dev/null @@ -1,44 +0,0 @@ -# License information - -## Contribution License Agreement - -If you contribute code to this project, you are implicitly allowing your code -to be distributed under the MIT license. You are also implicitly verifying that -all code is your original work. `` - -## Marked - -Copyright (c) 2018+, MarkedJS (https://github.com/markedjs/) -Copyright (c) 2011-2018, Christopher Jeffrey (https://github.com/chjj/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -## Markdown - -Copyright © 2004, John Gruber -http://daringfireball.net/ -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -This software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-ng-infinite-scroll.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-ng-infinite-scroll.txt deleted file mode 100644 index 44ae2bfc404..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-ng-infinite-scroll.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2012 Michelle Tilley - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-patternfly.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-patternfly.txt deleted file mode 100644 index 8d9091a9e25..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-patternfly.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Red Hat, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-urijs.txt b/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-urijs.txt deleted file mode 100644 index 83fdc2ca6ec..00000000000 --- a/artemis-distribution/src/main/resources/licenses/bin/licenses/LICENSE-urijs.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 uupaa.js@gmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/artemis-hawtio/activemq-branding/pom.xml b/artemis-hawtio/activemq-branding/pom.xml deleted file mode 100644 index a8a3cd4520c..00000000000 --- a/artemis-hawtio/activemq-branding/pom.xml +++ /dev/null @@ -1,270 +0,0 @@ - - - - - 4.0.0 - - - org.apache.activemq - artemis-hawtio-pom - 2.37.0 - - - activemq-branding - ActiveMQ Artemis HawtIO Branding - - Artemis branding plugin module for the HawtIO web console - - - war - - - ${project.basedir}/../.. - - - - /activemq-branding - - - ${project.artifactId} - - - - - - - javax.servlet, - *;resolution:=optional - - - ${project.artifactId}-${project.version} - ${basedir}/target/${webapp-dir} - ${basedir}/src/main/webapp/lib - ${webapp-outdir}/app/app.js - - - - - - - - io.hawt - hawtio-plugin-mbean - - - org.slf4j - slf4j-log4j12 - - - - - - - org.eclipse.jetty.toolchain - jetty-servlet-api - provided - - - - - org.slf4j - slf4j-api - provided - - - - - - - - - - src/main/resources - true - - **/*.xml - - - - - - - - - - maven-antrun-plugin - - - - - generate-sources - generate-sources - - run - - - - Building plugin javascript file list - - - - - - - - - Files: ${plugin-scripts} - - - - - true - - - - - - - maven-resources-plugin - - - - copy-resources - generate-sources - - resources - - - - - - - - org.apache.felix - maven-bundle-plugin - - - bundle-manifest - process-classes - - manifest - - - - - ${webapp-outdir}/META-INF - - jar - bundle - war - - - ${plugin-context} - ${plugin-context} - - WEB-INF/lib - *;scope=compile|runtime - true - - ${osgi.export} - ${osgi.import} - ${osgi.dynamic} - ${osgi.private.pkg} - - .,WEB-INF/classes - - ${project.name} - ${project.groupId}.${project.artifactId} - HawtIO - ${project.version} - - - - - - - org.apache.maven.plugins - maven-war-plugin - - @{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@ - **/classes/OSGI-INF/** - false - - ${webapp-outdir}/META-INF/MANIFEST.MF - - - - true - src/main/resources - - **/*.* - - - log4j.properties - - - - true - src/main/webapp - - **/*.* - - - log4j.properties - - - - - - - - - - - diff --git a/artemis-hawtio/activemq-branding/src/main/java/org/apache/activemq/hawtio/branding/PluginContextListener.java b/artemis-hawtio/activemq-branding/src/main/java/org/apache/activemq/hawtio/branding/PluginContextListener.java deleted file mode 100644 index ec4c06249d1..00000000000 --- a/artemis-hawtio/activemq-branding/src/main/java/org/apache/activemq/hawtio/branding/PluginContextListener.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.hawtio.branding; - -import io.hawt.web.plugin.HawtioPlugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.lang.invoke.MethodHandles; - -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; - -/** - * The Plugin Context Listener used to load in the plugin - **/ -public class PluginContextListener implements ServletContextListener { - - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - HawtioPlugin plugin = null; - - @Override - public void contextInitialized(ServletContextEvent servletContextEvent) { - - ServletContext context = servletContextEvent.getServletContext(); - - plugin = new HawtioPlugin(); - plugin.setContext(context.getContextPath()); - plugin.setName(context.getInitParameter("plugin-name")); - plugin.setScripts(context.getInitParameter("plugin-scripts")); - plugin.setDomain(null); - - try { - plugin.init(); - } catch (Exception e) { - throw createServletException(e); - } - - logger.info("Initialized {} plugin", plugin.getName()); - } - - @Override - public void contextDestroyed(ServletContextEvent servletContextEvent) { - try { - plugin.destroy(); - } catch (Exception e) { - throw createServletException(e); - } - - logger.info("Destroyed {} plugin", plugin.getName()); - } - - protected RuntimeException createServletException(Exception e) { - return new RuntimeException(e); - } - -} diff --git a/artemis-hawtio/activemq-branding/src/main/resources/WEB-INF/web.xml b/artemis-hawtio/activemq-branding/src/main/resources/WEB-INF/web.xml deleted file mode 100644 index 3fd8b746be6..00000000000 --- a/artemis-hawtio/activemq-branding/src/main/resources/WEB-INF/web.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - ActiveMQ Artemis HawtIO branding plugin - activemq artemis hawt.io branding plugin - - - Plugin's path on the server - plugin-context - ${plugin-context} - - - - Plugin's path on the server - plugin-name - ${project.artifactId} - - - - Plugin's path on the server - plugin-domain - ${plugin-domain} - - - - Plugin's path on the server - plugin-scripts - ${plugin-scripts} - - - - Disable listing of directories and files - org.eclipse.jetty.servlet.Default.dirAllowed - false - - - - org.apache.activemq.hawtio.branding.PluginContextListener - - - - - diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/index.html b/artemis-hawtio/activemq-branding/src/main/webapp/index.html deleted file mode 100644 index a9d6e10fc7e..00000000000 --- a/artemis-hawtio/activemq-branding/src/main/webapp/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - hawtio-activemq-branding - - -

hawtio :: ActiveMQ Artemis Branding

- - diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/css/activemq.css b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/css/activemq.css deleted file mode 100644 index e9f8a8e0bda..00000000000 --- a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/css/activemq.css +++ /dev/null @@ -1,2520 +0,0 @@ -/* - * 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. - */ - -/* fonts */ - - -/* You can customise the styles of your application here. */ -@font-face { - font-family: 'PatternFlyIcons-webfont'; - src: url('../../../console/fonts/PatternFlyIcons-webfont.eot'), - url('../../../console/fonts/PatternFlyIcons-webfont.woff') format('woff'), - url('../../../console/fonts/PatternFlyIcons-webfont.ttf') format('truetype'), - url('../../../console/fonts/PatternFlyIcons-webfont.svg') format('svg'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'OpenSans'; - src: url('../../../console/fonts/OpenSans-Regular-webfont.eot'), - url('../../../console/fonts/OpenSans-Regular-webfont.woff') format('woff'), - url('../../../console/fonts/OpenSans-Regular-webfont.ttf') format('truetype'), - url('../../../console/fonts/OpenSans-Regular-webfont.svg') format('svg'); - font-weight: normal; - font-style: normal; -} - -/*Uses ActiveMQ colors in broker diagram*/ -svg text { - font-family: PatternFlyIcons-webfont; -} - -.pf-topology-svg g.ThisPrimaryBroker circle { - stroke: black; - fill: #c12766; -} - -.pf-topology-svg g.PrimaryBroker circle { - stroke: #801944; - fill: #c12766; -} - -.pf-topology-svg g.ThisBackupBroker circle { - stroke: black; - fill: #cf242a; -} - -.pf-topology-svg g.BackupBroker circle { - stroke: #82171b; - fill: #cf242a; -} - -.pf-topology-svg g.OtherBroker circle { - stroke: #82171b; -} - -.pf-topology-svg g.Address circle { - stroke: #2b326e; - fill: #3e489f; -} - -.pf-topology-svg g.Queue circle { - stroke: #50621d; - fill: #78932c; -} - -.pf-topology-svg g.InternalAddress circle { - stroke: #2b326e; -} - -.pf-topology-svg g.InternalQueue circle { - stroke: #50621d; -} - -/*Adds a border to top of page*/ -.pf-c-page__header { - border-top: 3px solid #B21054; -} - -/* Change the background image for Login page and About modal as well as text color etc*/ -.pf-c-login, .pf-c-about-modal-box__hero { - background-image: url("../img/login-screen-background.png"); - background-size: cover; - --pf-c-form__label--Color: white; -} - -.pf-c-login__main { - grid-area: main; - background-color: transparent; -} - -.pf-c-login__footer .pf-c-list a { - color: white; -} - -.pf-c-login__footer p { - font-size: 150%; -} - -.pf-c-login__main-body label { - color: white; -} - -.pf-c-login__main-header { - color: white; -} - -/*These change the color of the buttons*/ -.btn-link { - color: #B24E78; -} - -.pf-c-button.pf-m-primary { - background-color: #B24E78; -} - -.pf-c-button.pf-m-primary.pf-m-hover, .pf-c-button.pf-m-primary:hover { - background-color: #B24E78; - background-image: linear-gradient(to bottom,#B24E78 0,#B24E78 100%); - background: #B21054; - border-color: #B24E78; -} - -.pf-c-title.pf-m-3xl { - color: white; -} - -.btn-primary { - background-color: #B24E78; - background-image: linear-gradient(to bottom,#B24E78 0,#B24E78 100%); - background-repeat: repeat-x; - border-color: #B24E78; - color: #fff; -} -.btn-primary.active.focus, -.btn-primary.active:focus, -.btn-primary.active:hover, .btn-primary:active.focus, -.btn-primary:active:focus, -.btn-primary:active:hover, -.open .dropdown-toggle.btn-primary.focus, -.open .dropdown-toggle.btn-primary:focus, -.open .dropdown-toggle.btn-primary:hover { - background-color: #B24E78; - border-color: #B21054; -} - -/*These change the row ina table when hovered over*/ -.table-hover>tbody>tr:hover { - background-color: #B24E78; -} - -.table-hover>tbody>tr:hover td { - background-color: #B24E78; -} - -select>option:hover, -select>option:active { - background: #B24E78; - background-color: #B24E78; -} - -tbody>tr:hover { - background-color: #B24E78; -} - -/*This controls the color of the buttons when clicked, hovered or visited*/ -.btn-primary:hover, -.btn-primary.hover -.btn-primary:active, -.btn-primary.active, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:visited, -.btn-primary.visited{ - background-color: #B24E78; - background-image: linear-gradient(to bottom,#B24E78 0,#B24E78 100%); - background: #B21054; - border-color: #B24E78; -} - -/*This changes the color of the hover item in the JMX Tree*/ -.treeview-pf-hover .list-group-item:hover { - background-color: #B24E78!important; - border-color: #B24E78!important; -} - -/*This changes the color of the chosen selection in the JMX Tree*/ -.treeview-pf-select .list-group-item.node-selected { - background: #B24E78!important; - border-color: #B24E78!important; - color: #fff!important; -} - -/* This changes the color of the underline in the main left menuLeft hand menu tab underline*/ -.pf-c-nav__list .pf-m-current.pf-c-nav__link::after, .pf-c-nav__list .pf-m-current>.pf-c-nav__link::after { - background-color: #B24E78; -} - -.pf-c-nav__list .pf-c-nav__link.pf-m-hover::after, .pf-c-nav__list .pf-c-nav__link:hover::after { - background-color: #B24E78; -} - -.card-pf.card-pf-accented { - border-top-color: #B24E78; -} - -/*This changes the hover color in all the tables*/ -.table-hover tbody tr:hover td.focus { - background-color: #B24E78; -} - -/*This changes the color of the sort column header*/ -table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc { - color: #B24E78!important; - position: relative; -} - -/*This is the original css from HawtIO 1,leaving as is as somemay be used*/ -* { - font-family: "Open Sans"; -} - -body { - font-family: "Open Sans"; -} - -#log-panel-statements li { - font-family: DroidSansMonoRegular; -} - -#log-panel-statements li pre span { - font-family: DroidSansMonoRegular; -} - -div.log-stack-trace { - font-family: DroidSansMonoRegular; -} - -div.log-stack-trace p { - font-family: DroidSansMonoRegular; -} - -.log-stack-trace > dd > ul > li > .stack-line * { - font-family: DroidSansMonoRegular; -} - -pre.stack-line { - font-family: DroidSansMonoRegular; - font-size: 12px; -} - -div.stack-line { - font-family: DroidSansMonoRegular; - font-size: 12px; -} - -.log-table *:not('.icon*') { - font-family: DroidSansMonoRegular; -} - -.log-table > li > div > div { - font-family: DroidSansMonoRegular; -} - -fs-donut svg g text.units { - font-family: DroidSansMonoRegular; -} - -/* colors */ -#log-panel { - background: inherit; - background-color: none; - border: 1px solid #d4d4d4; - transition: bottom 1s ease-in-out; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - opacity: 0.8; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} - -#log-panel #log-panel-statements { - background: #252525; -} - -#log-panel-statements li pre { - color: white; - background-color: inherit; - border: none; -} - -#log-panel-statements li:hover { - background: #111111; -} - -#log-panel-statements li.DEBUG { - color: dodgerblue; -} - -#log-panel-statements li.INFO { - color: white; -} - -#log-panel-statements li.WARN { - color: yellow; -} - -#log-panel-statements li.ERROR { - color: red; -} - -#log-panel #close { - background: #131313; - border-top: 1px solid #222222; - box-shadow: 0 1px 13px rgba(0, 0, 0, 0.1) inset; - color: #eeeeee; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} - -#log-panel #copy { - background: inherit; - color: white; -} - -ul.dynatree-container { - background: inherit; -} -ul.dynatree-container li { - background: inherit; -} - -.axis line { - stroke: #000; -} - -.axis.top { - border-bottom: 1px solid #d4d4d4; -} - -.axis.bottom { - border-top: 1px solid #d4d4d4; -} - -.horizon { - border-bottom: solid 1px #eeeeee; -} - -.horizon:last-child { - border-bottom: none; -} - -.horizon + .horizon { - border-top: none; -} - -.horizon .title, -.horizon .value { - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} - -.line { - background: #000; - opacity: .2; -} - -.CodeMirror { - border: 1px solid #d4d4d4; -} - -i.expandable-indicator { - color: #666; -} - -span.dynatree-expander { - color: #728271; -} - -span.dynatree-icon { - color: #EECA7C; -} -span:not(.dynatree-has-children) .dynatree-icon:before { - color: gray; -} - -.table-hover tbody tr:hover td.details { - background-color: #ffffff; -} - -tr td.focus { - background-color: #d9edf7; -} - -.table-hover tbody tr:hover td.focus { - background-color: #d9edf7; -} - -.table-striped tbody tr:nth-child(odd) td.focus { - background-color: #d9edf7; -} -/* -.red { - color: red !important; -} - -.orange { - color: orange !important; -} - -.yellow { - color: yellow !important; -} - -.green { - color: green !important; -} - -.blue { - color: dodgerblue !important; -} -*/ - -.gridster ul#widgets .gs_w { - border: 1px solid #d4d4d4; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - background: #ffffff; - border-radius: 6px; -} -.gridster ul#widgets .gs_w.dragging { - box-shadow: 0 1px 13px rgba(0, 0, 0, 0.12); -} -.gridster ul#widgets .preview-holder { - border-radius: 6px; - border: 1px solid #d4d4d4; - box-shadow: 0 1px 13px rgba(0, 0, 0, 0.1) inset; -} - -.widget-title { - background-color: #FAFAFA; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#F2F2F2', GradientType=0); - border-bottom: 1px solid #d4d4d4; - color: #777777; - text-shadow: 0 1px 0 #FFFFFF; - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} - -.widget-title:hover { - color: #333333; - text-shadow: 0 1px 0 #FFFFFF; - border-bottom: 1px solid #d4d4d4; - background-image: -moz-linear-gradient(top, #fafafa, #f0f0f0); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fafafa), to(#f0f0f0)); - background-image: -webkit-linear-gradient(top, #fafafa, #f0f0f0); - background-image: -o-linear-gradient(top, #fafafa, #f0f0f0); - background-image: linear-gradient(to bottom, #fafafa, #f0f0f0); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fafafa', endColorstr='#f0f0f0', GradientType=0); -} - -.ep[ng-show=editing] { - background: white; - border-bottom: 1px solid #d4d4d4; - border: 1px solid #cecdcd; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.ep > form > fieldset > input { - border: 0; -} - -.ngFooterPanel { - background: inherit; -} -.ngTopPanel { - background: inherit; -} -.ngGrid { - background: inherit; -} - -.ngCellText:hover i:before { - text-shadow: 0px 0px 8px #969696; -} - -.ACTIVE:before { - color: #777777; -} -.RESOLVED:before { - -} -.STARTING:before { - -} -.STARTING { - -} -.STOPPING:before { - -} -.STOPPING { - -} -.UNINSTALLED:before { - -} -.INSTALLED:before { - -} -.table-bordered { - border: none; - border-radius: 0px; -} -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - border-radius: 0px; - border-left: none; -} -.table-bordered th { - border-bottom: 1px solid #d4d4d4; -} -.table-bordered th, -.table-bordered td { - border-left: none; - border-top: none; - border-right: 1px solid #d4d4d4; -} -.table-bordered th:last-child, -.table-bordered td:last-child { - border-left: none; - border-top: none; - border-right: none; -} -table.table thead .sorting { - background: inherit; -} -/* -table.table thead .sorting_asc:after { - background: url('../img/datatable/sort_asc.png') no-repeat top center; -} -table.table thead .sorting_desc:after { - background: url('../img/datatable/sort_desc.png') no-repeat top center; -} -*/ - -div#main div ul.nav { - border-radius: 0 0 4px 4px; - border: 1px solid #d4d4d4; - border-top: 1px transparent; - background-color: #FAFAFA; - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar .btn-navbar span { - color: #777777; - text-shadow: 0 1px 0 #FFFFFF; -} - -div#main div ul.nav li.active a, div#main div ul.nav li.active span.a { - border: 1px; - border-radius: 2px; - background-color: #E5E5E5; - box-shadow: 0 3px 8px rgba(0, 0, 0, 0.125) inset; - text-shadow: 0 1px 0 #FFFFFF; -} - -div#main div ul.nav li.active a:hover, div#main div ul.nav li.active span.a:hover { - border: 1px; - border-radius: 2px; - background-color: #E5E5E5; - box-shadow: 0 3px 8px rgba(0, 0, 0, 0.125) inset; - text-shadow: 0 1px 0 #FFFFFF; -} - -div#main div ul.nav li a, div#main div ul.nav li span.a { - border: 1px; - border-radius: 2px; - background: inherit; - color: #777777; - text-shadow: 0 1px 0 #FFFFFF; -} - -div#main div ul.nav li div.separator { - padding: 6px 12px; - line-height: 20px; -} - -div#main div ul.nav li a:hover { - border: 1px; - border-radius: 2px; - background: inherit; - color: #333333; - text-shadow: 0 1px 0 #FFFFFF; -} - -#main div div div section .tabbable .nav.nav-tabs { - border-radius: 0 0 4px 4px; - border: 1px solid #d4d4d4; - border-top: 1px transparent; - background-color: #FAFAFA; - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -#main div div div .nav.nav-tabs:not(.connected) { - border-radius: 4px; - border: 1px solid #d4d4d4; -} - -.logbar { - background: white; - border-bottom: 1px solid #d4d4d4; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - border-left: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - top: 106px; -} - -.ui-resizable-se { - height: 10px; - width: 10px; - margin-right: 5px; - margin-bottom: 5px; - background: inherit; - box-shadow: -3px -3px 10px rgba(0, 0, 0, 0.1) inset; - font-size: 32px; - z-index: 50; - position: absolute; - display: block; - right: 0px; - bottom: 0px; - border-radius: 6px; - border: 1px solid #d4d4d4; - cursor: se-resize; -} - -.innerDetails { - box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.1) inset; - border: 1px solid #d4d4d4; - display: none; - background: #ffffff; -} - -.odd { - background-color: #f9f9f9; -} - -#main .logbar[ng-controller='Wiki.NavBarController'] .wiki.logbar-container .nav.nav-tabs, -#main .logbar-wiki .wiki.logbar-container .nav.nav-tabs { - border: none; - border-radius: 0; - box-shadow: none; - background: inherit; -} - -.help-display img:not(.no-shadow) { - box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1); -} - -.text-shadowed { - text-shadow: 1px 1px rgba(0, 0, 0, 0.5); -} - -.bundle-item-details { - background: white; -} - -.bundle-item > a { - border-radius: 4px; - border: 1px solid #d4d4d4; - display: block; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - background: #ffffff; - background: -moz-linear-gradient(top, #ffffff 0%, #ffffff 34%, #f4f4f4 76%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(34%, #ffffff), color-stop(76%, #f4f4f4)); - background: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 34%, #f4f4f4 76%); - background: -o-linear-gradient(top, #ffffff 0%, #ffffff 34%, #f4f4f4 76%); - background: -ms-linear-gradient(top, #ffffff 0%, #ffffff 34%, #f4f4f4 76%); - background: linear-gradient(to bottom, #ffffff 0%, #ffffff 34%, #f4f4f4 76%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f4f4f4', GradientType=0); -} - -.bundle-item.in-selected-repository > a { - background: #ddeeff; - background: -moz-linear-gradient(top, #ddeeff 0%, #ddeeff 34%, #e3e3f4 76%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ddeeff), color-stop(34%, #ddeeff), color-stop(76%, #e3e3f4)); - background: -webkit-linear-gradient(top, #ddeeff 0%, #ddeeff 34%, #e3e3f4 76%); - background: -o-linear-gradient(top, #ddeeff 0%, #ddeeff 34%, #e3e3f4 76%); - background: -ms-linear-gradient(top, #ddeeff 0%, #ddeeff 34%, #e3e3f4 76%); - background: linear-gradient(to bottom, #ddeeff 0%, #ddeeff 34%, #e3e3f4 76%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ddeeff', endColorstr='#e3e3f4', GradientType=0); -} - -.bundle-item > a:hover { - text-decoration: none; -} - -.bundle-item a span { - background: inherit; - border-radius: 4px; - border: 0px; - color: #404040; - text-shadow: none; -} - -.bundle-item a span.badge::before { - border-radius: 3px; - background: #737373; -} - -.bundle-item a span.badge-success::before { - background: #1cd11d; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5), 0px 0px 4px 1px rgba(34, 203, 1, 0.49); -} - -.bundle-item a span.badge-inverse::before { - background: #737373; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5); -} - -.bundle-item a span.badge-important::before { - background: #ee0002; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5), 0px 0px 4px 1px rgba(195, 6, 0, 0.47); -} - -.bundle-item a span.badge-info::before { - background: #3a87ad; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5), 0px 0px 4px 1px rgba(45, 105, 135, 0.47); -} - -.bundle-item a span.badge-warning::before { - background: #f89406; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5), 0px 0px 4px 1px rgba(198, 118, 5, 0.47); -} - -.bundle-item a.toggle-action { - border-radius: 0; - border: none; - opacity: 0.2; - color: inherit; - box-shadow: none; -} - -.bundle-item a.toggle-action .icon-power-off { - color: orange; -} - -.bundle-item a.toggle-action .icon-play-circle { - color: green; -} - -div.hawtio-form-tabs div.tab-content { - border: 1px solid #d4d4d4; - border-radius: 4px; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -div.hawtio-form-tabs ul.nav-tabs { - border: none !important; - border-radius: 0 !important; - box-shadow: none !important; - background: inherit; - background-color: inherit !important; - background-image: inherit !important; - border-top: none !important; -} - -div.hawtio-form-tabs ul.nav-tabs li { - border: 1px solid #d4d4d4 !important; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - background-color: inherit; - box-shadow: inset 0 -10px 10px -10px rgba(0, 0, 0, 0.08) !important; -} - -div.hawtio-form-tabs ul.nav-tabs li.active { - border-bottom: 1px solid white !important; - background-color: white; - box-shadow: 0 -10px 10px -10px rgba(0, 0, 0, 0.1) !important; -} - -div.hawtio-form-tabs ul.nav-tabs li.active a { - box-shadow: none !important; - text-shadow: none !important; - background-color: inherit !important; -} - - -.slideout { - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - border: 1px solid #d4d4d4; - background: white; -} - -.slideout > .slideout-content { - box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.1); - border: 1px solid white; - background: white; -} - -.slideout.right { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -.slideout.left { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -.slideout.left > .slideout-content { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -.slideout.right > .slideout-content { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -.slideout > .slideout-content > .slideout-body { - background: white; -} - -.slideout .slideout-title a { - color: #d4d4d4; -} - -.ngHeaderCell:last-child { - border-right: 1px solid rgba(0, 0, 0, 0) !important; -} - -.color-picker .wrapper { - border: 1px solid #d4d4d4; - border-radius: 4px; -} - -.selected-color { - width: 1em; - height: 1em; - border-radius: 4px; - padding: 4px; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.color-picker-popout { - transition: opacity 0.25s ease-in-out; - background: white; - border-radius: 4px; - border: 1px solid rgba(0, 0, 0, 0); -} - -.popout-open { - border: 1px solid #d4d4d4; -} - -.color-picker div table tr td div { - border: 3px solid rgba(0, 0, 0, 0); - border-radius: 4px; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.color-picker div table tr td div.color-picker-selected { - border-color: #474747; -} - -.clickable { - color: #787878; -} - -.canvas { - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0); -} - -.container-group-header { - background: #fdfdfd; - border-bottom: 1px solid #d4d4d4; -} - -.box { - background: none repeat scroll 0 0 white; - border-top: 1px solid #d4d4d4; -} - -.container-group-header:not([style]) + div > .box { - border-top: 1px solid transparent; -} - -.selected, -.box.selected { - background-color: #AEAEAE !important; -} - -.box.selected .box-right i { - text-shadow: none; -} - -.box > .box-left > div { - border-radius: 4px; -} - -.section-header { - background: none; - background-color: transparent; - background-image: none; -} - -.section-header .dropdown-menu { - border-top: 1px solid #d4d4d4; - -} - -.section-controls > a, -.section-controls > span > span > span > span > span > .hawtio-dropdown { - color: #4d5258; -} - -.section-controls > a.nav-danger { - color: IndianRed !important; -} - -.section-controls > a.nav-danger:hover { - text-shadow: rgba(205, 92, 92, 0.6) 0 0 20px !important; -} - -td.deleting { - background-color: IndianRed !important; -} - -td.adding { - background-color: Aquamarine !important; -} - -.input-prepend .progress { - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; -} - -/** highlight required fields which have no focus */ -input.ng-invalid, -textarea.ng-invalid, -select.ng-invalid { - border-color: #e5e971; - -webkit-box-shadow: 0 0 6px #eff898; - -moz-box-shadow: 0 0 6px #eff898; - box-shadow: 0 0 6px #eff898; -} - -/** Use bigger and darker border on checkboxes as its hard to see since they already have a shadow */ -input[type="checkbox"].ng-invalid { - -webkit-box-shadow: 0 0 12px #e5e971; - -moz-box-shadow: 0 0 12px #e5e971; - box-shadow: 0 0 12px #e5e971; -} - -.profile-details div .tab-pane ul li:nth-child(even):not(.add) { - background-color: #f3f3f3; -} - -.fabric-page-header { - border-bottom: 1px solid #d4d4d4; -} - -pre.stack-line { - color: #333333; - background: inherit; - border: none; - border-radius: 0; -} - -.directive-example { - border: 1px solid #d4d4d4; - border-radius: 4px; -} - -div#main div ul.nav li a.nav-primary.active { - color: rgba(255, 255, 255, 0.75); -} - -div#main div ul.nav li a.nav-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #006dcc; - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(to bottom, #0088cc, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - background-color: #0044cc; -} - -div#main div ul.nav li a.nav-primary:hover, -div#main div ul.nav li a.nav-primary:active, -div#main div ul.nav li a.nav-primary.active, -div#main div ul.nav li a.nav-primary.disabled, -div#main div ul.nav li a.nav-primary[disabled] { - color: #ffffff; - background-color: #0044cc; -} - -div#main div ul.nav li a.nav-primary:active, -div#main div ul.nav li a.nav-primary.active { - background-color: #003399 \9; -} - -div#main div ul.nav li a.nav-primary .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.main-nav-upper { - background-image: none; - background-color: white; -} - -.main-nav-upper .nav li a { - border-radius: 0; -} - -.file-list-toolbar .nav { - border: none !important; - border-bottom: 1px solid #d4d4d4 !important; - border-radius: 0 !important; - background: inherit !important; - box-shadow: none !important; -} - -.file-list-toolbar .nav li a { - background: inherit !important; -} - -.file-icon i.icon-folder-close { - color: #EECA7C; -} - -.status-icon { - color: inherit; -} - -.active-profile-icon { - color: green !important; -} - -.mq-profile-icon { - color: green !important; -} - -i.mq-master { - color: orange; -} - -.mq-broker-rectangle, .mq-container-rectangle { - - border-left-width: 10px; - border-right-width: 10px; - border-top-width: 10px; - - color: #333333; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - background-color: #f5f5f5; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #e6e6e6; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - border: 1px solid #bbbbbb; - *border: 0; - border-bottom-color: #a2a2a2; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - *margin-left: .3em; - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); -} - -.mq-group-rectangle:nth-child(odd) .mq-group-rectangle-label { - background-color: #f3f3f3; -} - -.mq-group-rectangle-label { - border-radius: 4px; - background-color: #f9f9f9; - border: 1px solid #d4d4d4; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.mq-profile-rectangle { - border: 1px solid #d4d4d4; - border-radius: 4px; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.mq-container-rectangle { - border-radius: 4px; -} - -.mq-container-rectangle.master { - background-color: #DFFFB9; - background-image: -moz-linear-gradient(top, #efffdd, #CCFF99); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#efffdd), to(#CCFF99)); - background-image: -webkit-linear-gradient(top, #efffdd, #CCFF99); - background-image: -o-linear-gradient(top, #efffdd, #CCFF99); - background-image: linear-gradient(to bottom, #efffdd, #CCFF99); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffefffdd', endColorstr='#ffCCFF99', GradientType=0); - border-color: #CCFF99 #CCFF99 #CCFF99; - *background-color: #CCFF99; -} - -.mq-broker-rectangle { - background-color: #bbddff; - background-image: -moz-linear-gradient(top, #bbddff, #88bbdd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bbddff), to(#88bbdd)); - background-image: -webkit-linear-gradient(top, #bbddff, #88bbdd); - background-image: -o-linear-gradient(top, #bbddff, #88bbdd); - background-image: linear-gradient(to bottom, #bbddff, #88bbdd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff88bbdd', GradientType=0); - border-color: #88bbdd #88bbdd #002a80; - *background-color: #88bbdd; -} - -a.dashboard-link { - color: black; -} - -.provision-list ul li:nth-child(even) { - background-color: #f3f3f3; -} - -.zebra-list > li:nth-child(even), -ol.zebra-list > li:nth-child(even):before { - background-color: #f3f3f3; -} - -.add-link { - background: white; - border-radius: 4px; - border: 1px solid #d4d4d4; -} - -.log-table > .table-row.selected:before { - color: green; -} - -.log-table > li:nth-child(odd) > div > div:not(.stack-line) { - background-color: white; -} - -.log-table > li:nth-child(even) > div > div:not(.stack-line) { - background-color: #f3f3f3; -} - -.log-table > li > div > div:nth-child(2) { - border-right: 1px solid #d4d4d4; -} - -.log-table > li > div > div:nth-child(3) { - border-right: 1px solid #d4d4d4; -} - -.log-table > li > div > div:nth-child(4) { - border-right: 1px solid #d4d4d4; -} - -.log-table > li > div > div:nth-child(6) { - background: white; -} - -.log-info-panel { - background: white; - border-radius: 4px; - border: 1px solid #d4d4d4; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.log-info-panel > .log-info-panel-frame > .log-info-panel-header { - border-bottom: 1px solid #d4d4d4; -} - -.log-info-panel > .log-info-panel-frame > .log-info-panel-body > .row-fluid > span { - margin-right: 7px; - white-space: nowrap; -} - -.ex-node { - border-radius: 4px; - border: 1px solid #d4d4d4; - background: white; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.dozer-mapping-node { - border: 1px solid #f3f3f3; - border-radius: 4px; - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.wiki-grid { - border-right: 1px solid #d4d4d4; -} - -.wiki-file-list-up { - color: black; -} - -.fabric-page-header.features { - margin-top: 10px; -} - -.profile-selector-name a:not(.profile-info) { - color: #333333; -} - -.profile-selector-name.abstract { - color: #888888; -} - -.file-name { - color: #333333; -} - -i.expandable-indicator.folder { - color: #EECA7C; -} - -.camel-canvas { - border: 1px solid #d4d4d4; - border-radius: 4px; - box-shadow: inset 0 1px 13px rgba(0, 0, 0, 0.1); - background-image: url('../img/img-noise-600x600.png') -} - -/* - * jquery.tocify.css 1.8.0 - * Author: @gregfranko - */ -/* The Table of Contents container element */ -.tocify { - /* top works for the wiki, may need customization - elsewhere */ - border: 1px solid #ccc; - webkit-border-radius: 6px; - moz-border-radius: 6px; - border-radius: 6px; - background-color: white; -} - -.tocify li a { - border-top: 1px solid rgba(0, 0, 0, 0); - border-bottom: 1px solid rgba(0, 0, 0, 0); -} - -.tocify li a:hover { - background-color: #FAFAFA; - border-top: 1px solid rgba(0, 0, 0, 0); - border-bottom: 1px solid rgba(0, 0, 0, 0); -} - -.tocify li a.active { - border-top: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; - background-color: #FAFAFA; -} - -.health-displays .health-display { - border-radius: 4px; - border: 1px solid #d4d4d4; -} - -.health-details { - background: white; -} - -.health-status { - background: white; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} - -.health-message-wrap { - border-top: 1px solid #d4d4d4; -} - -.health-details-wrap dl { - border-bottom: 1px solid #f3f3f3; -} - -.health-details-wrap table tr { - border-bottom: 1px solid #f3f3f3; -} - -.health-display-title { - border-radius: 4px; - background-color: #eaeaea; - border: 1px solid #d3d3d3; -} - -.health-display-title.ok { - background-color: lightgreen; -} - -.health-display-title.warning { - background-color: darkorange; -} - -.toast.toast-warning * { - color: black; -} - -.hawtio-toc .panel-title { - border: 1px solid #d4d4d4; - border-radius: 4px; -} - -.hawtio-toc .panel-title a { - border-radius: 3px; - background: #cceeff; -} - -.camel-canvas-endpoint svg circle { - fill: #346789; -} - -tr.selected, -tr.selected .ngCell, -tr.selected .ngCellText i, -.table-striped tbody tr.selected:nth-child(odd) td { - background-color: #c9dde1; -} - -input.ng-invalid-pattern { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} - -input.ng-invalid-pattern:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} - -.runnable { - color: green; -} - -.timed-waiting { - color: orange; -} - -.waiting, -.darkgray { - color: darkgray; -} - -.blocked { - color: red; -} - -strong.new, -.lightgreen { - color: lightgreen; -} - -.terminated, -.darkred { - color: darkred; -} - -.monitor-indicator { - border-radius: 6px; -} - -.monitor-indicator.true { - background: #1cd11d; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5), 0px 0px 4px 1px rgba(34, 203, 1, 0.49); -} - -.monitor-indicator.false { - background: #737373; - box-shadow: inset 0px 1px 0px 0px rgba(250, 250, 250, 0.5); -} - -.table-header { - color: black; -} - -.table-header:hover { - background-color: #f3f3f3; -} - -.table-header.asc, -.table-header.desc { - background-color: #f3f3f3; -} - -.dropdown-menu { - border-radius: 0; -} - -.main-nav-upper .dropdown-menu { - border-radius: 0; -} - -.main-nav-lower .dropdown-menu { - border-top: none; -} - -.submenu-caret:before { - color: #53595f; -} - -.hawtio-dropdown > ul > li.item:hover { - text-decoration: none; - color: #ffffff; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.hawtio-dropdown > ul > li:hover > span > ul.sub-menu > li { - color: #333333; -} - -.dropdown-menu .sub-menu { - border-top: 1px solid #d3d3d3; -} - -.caret:before { - color: #53595f; -} - -.hawtio-breadcrumb .caret { - border: 0; - width: 17px; - margin-right: 2px; - margin-left: 0; -} - -.hawtio-breadcrumb .caret:before { - color: rgba(255, 255, 255, 0.8); - text-shadow: 2px 0 2px rgba(0, 0, 0, 0.3); -} - -.component { - background-color: white; - color: black; -} - -.window, -.node > rect { - stroke-width: 2px; - stroke: #346789; - border: 2px solid #346789; - box-shadow: 2px 2px 19px #e0e0e0; - -o-box-shadow: 2px 2px 19px #e0e0e0; - -webkit-box-shadow: 2px 2px 19px #e0e0e0; - -moz-box-shadow: 2px 2px 19px #e0e0e0; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.window-inner.from, -.node > .from { - background-color: lightsteelblue; - fill: lightsteelblue; -} - -.window-inner.choice, -.node > .choice { - background-color: lightblue; - fill: lightblue; -} - -.window-inner.when, -.node > .when { - background-color: lightgreen; - fill: lightgreen; -} - -.window-inner.otherwise, -.node > .otherwise { - background-color: lightgreen; - fill: lightgreen; -} - -.window-inner.to, -.node > .to { - background-color: lightsteelblue; - fill: lightsteelblue; -} - -.window-inner.log, -.node > .log { - background-color: lightcyan; - fill: lightcyan; -} - -.window-inner.setBody, -.node > .setBody { - background-color: #d3d3d3; - fill: #d3d3d3; -} - -.window-inner.onException, -.node > .onException { - background-color: lightpink; - fill: lightpink; -} - -.window-inner.delay, -.node > .delay { - background-color: lightgrey; - fill: lightgrey; -} - -.window-inner.bean, -.node > .bean { - background-color: mediumaquamarine; - fill: mediumaquamarine; -} - -.window:hover { - border-color: #5d94a6; - background-color: #ffffa0; -} - -.window.selected { - background-color: #f0f0a0; -} - -.window.selected > .window-inner { - background: inherit; -} - -img.nodeIcon:hover { - opacity: 0.6; - box-shadow: 2px 2px 19px #a0a0a0; - background-color: #a0a0a0; -} - -.hl { - border: 3px solid red; -} - -.discovery > li > div:last-child > div > i, -.discovery > li > .lock > i { - color: lightgreen; -} - -.discovery > li > .lock > i { - color: lightgrey; -} - -html, body { - font-size: 13.5px; -} - -small { - font-size: 11.5px; -} - -h1, h2, h3, h4, h5, h6 { - letter-spacing: -1px; - font-weight: normal; - font-family: "Overpass", sans-serif; -} - -.nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover { - color: #B21054; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} - -table.jmx-attributes-table td { - color: #B21054; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -a { - color: #B21054; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -#tree-ctrl { - top: 0; -} - - -#main { - margin-top: 106px!important; -} - -#main-nav { - max-height: 106px !important; -} - -#main-nav .main-nav-upper .nav { - max-height: 106px !important; -} - -#main-nav .main-nav-upper .nav li { - max-height: 106px !important; -} - -#main-nav .main-nav-upper .nav li a { - max-height: 106px !important; -} - -#main-nav .main-nav-upper .nav li a i.fixme:before { - top: 0 !important; -} - - -#main-nav > .navbar-inner { - background-color: inherit; - background-image: linear-gradient(to bottom, #3f4349 0%, #464c51 100%); -} - -.navbar-inner { - height: auto; - min-height: 0; -} - -.main-nav-upper { - height: auto; - min-height: 0; -} - -#main-nav > .main-nav-upper { - filter: none; - border-top: 3px solid #B21054; - border-bottom: none; - height: 60px !important; - min-height: 60px !important; - box-shadow: none; -} - -#main-nav > .main-nav-lower { - border-top: 1px solid #53565b; - box-shadow: none; - background: #3f4349; - - background: -moz-linear-gradient(top, #3f4349 0%, #464c51 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3f4349), color-stop(100%,#464c51)); - background: -webkit-linear-gradient(top, #3f4349 0%,#464c51 100%); - background: -o-linear-gradient(top, #3f4349 0%,#464c51 100%); - background: -ms-linear-gradient(top, #3f4349 0%,#464c51 100%); - background: linear-gradient(to bottom, #3f4349 0%,#464c51 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3f4349', endColorstr='#464c51',GradientType=0 ); - - padding: 0px; - height: 42px; - max-height: 42px; - min-height: 42px; - border-bottom: none; - -} - -/* -.prefs > .row-fluid > .tabbable > .nav.nav-tabs { - margin-top: 0 !important; - border-radius: 0 !important; - border: none !important; - max-height: 45px !important; - min-height: 45px !important; - border-bottom: 1px solid #cecdcd !important; -} -*/ - -.prefs > .row-fluid > .tabbable > .nav.nav-tabs > li { - margin-bottom: 0px; - margin-top: 0px; padding-left: 20px; - padding-right: 20px; -} - -.prefs > .row-fluid > .tabbable > .nav.nav-tabs > li > a { - background-image: none; - background: #f6f6f6; - color: #4d5258; - border-radius: 0; - padding-left: 0px; - padding-right: 0px; - padding-top: 6px; - padding-bottom: 5px; -} - -.prefs > .row-fluid > .tabbable > .nav.nav-tabs > li.active a { - border: none; - border-bottom: 1px solid #B21054 !important; -} - -#main-nav > .navbar-inner.main-nav-upper > .container > .pull-left > .brand { - text-shadow: none; -} - -#main-nav > .navbar-inner.main-nav-lower .nav { - width: 100%; - float: none; - position: relative; - top: -1px; - height: 42px; - background: inherit; - background-color: inherit; - background-image: inherit; - background-image: linear-gradient(to bottom, #474d52, #3f4349 100%); - border-top: 1px solid #565b60; -} - -.main-nav-lower > .container > ul > .dropdown.overflow { - margin-right: 0; -} - -@media (max-width: 767px) { - .navbar .container { - margin-left: 10px; - margin-right: 10px; - } - - .main-nav-lower > .container > ul > .dropdown.overflow { - margin-right: 45px; - } - -} - -.main-nav-lower > .container { - padding-left: 0 !important; - padding-right: 0 !important; -} - -#main-nav > .main-nav-lower > .container .nav > li.overflow > ul > li > a { - font-weight: normal; - color: #4D5258; -} - -#main-nav > .main-nav-lower .nav > li.overflow.open > a { - color: #ffffff; - text-shadow: none; - border-top: 1px solid #949699; - background-color: inherit; - background-image: linear-gradient(to bottom, #72757a 0%, #64686C 100%); - font-weight: bold; - border-bottom: none; -} - -.dropdown-menu { - border-radius: 0; -} - -#main-nav > .navbar-inner .nav > li > a { - margin-top: -1px; - border-top: 1px solid #53565B; - color: #ffffff; - text-shadow: none; - height: 32px; - padding-bottom: 0; -} - -#main-nav > .navbar-inner .nav > li:hover > a { - color: #ffffff; - border-top: 1px solid #949699; - text-shadow: 1px 0 0 white; - background-color: inherit; - background-image: linear-gradient(to bottom, #5c6165, #4b5053 100%); -} - - -#main-nav .navbar-inner .nav li.active a { - color: #ffffff; - text-shadow: none; - border-top: 1px solid #949699; - background-color: inherit; - background-image: linear-gradient(to bottom, #72757a 0%, #64686C 100%); - font-weight: bold; -} - -#main-nav .navbar-inner.main-nav-upper .nav { - -} - -#main-nav .navbar-inner.main-nav-upper .nav > li { - height: 60px; - border-left: 1px solid #585b5e; -} - -#main-nav .navbar-inner.main-nav-upper .nav > li > a { - position: relative; - top: 1px; - padding-top: 1px; - border-radius: 0; - border: none; - height: 60px; - max-height: 60px; - color: #ffffff; -} - -#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 { - position: relative; - top: 2px; -} - -#main-nav .navbar-inner.main-nav-upper .nav li.dropdown a.dropdown-toggle span:not(.caret) { - display: inline-block; - margin-top: 2px; -} - -#main-nav .navbar-inner.main-nav-upper .nav li.dropdown a.dropdown-toggle span.caret { - margin-top: 10px; - margin-left: 1px; -} - -#main-nav .main-nav-upper .nav li.dropdown.open a.dropdown-toggle { - color: #ffffff !important; - text-shadow: none; - background-color: inherit; - background-image: linear-gradient(to bottom, #72757a 0%, #64686C 100%); - border-bottom-color: inherit !important; -} - -#main-nav .main-nav-upper .nav li.dropdown .dropdown-menu li { - border: none !important; -} - -#main-nav .main-nav-upper .nav li.dropdown .dropdown-menu li a { - color: #4D5258; - border: none !important; - padding-top: 2px !important; - height: 22px; -} - -#main-nav .main-nav-upper .nav li.dropdown .dropdown-menu li:hover a { - border: none; - color: white; -} - -#main-nav .navbar-inner.main-nav-upper .nav li.active a { - border-top: none; - color: #ffffff -} - -.navbar .nav > li > .dropdown-menu:before { - display: none; -} - -.navbar .nav > li > .dropdown-menu:after { - display: none; -} - -#main.container-fluid { - padding-left: 0; - padding-right: 0; -} - -#main.container-fluid div .nav { - background-image: none; - background: #f6f6f6; - border-radius: 0; - line-height: 18px; - padding: 0; - max-height: 31px; - min-height: 31px; - border-top: none; - border-bottom: 1px solid #cecdcd; -} - -#main.container-fluid div .nav li { - margin-bottom: 0; - margin-top: 0; - padding-left: 0; - padding-right: 0; -} - -#main.container-fluid div .nav li a { - background-image: none; - background: #f6f6f6; - color: #4d5258; - border-radius: 0; - border: 1px solid inherit; - padding: 6px 20px 5px 20px; -} - -#main.container-fluid div .nav li a:hover { - border-radius: 0; - padding-top: 6px; - padding-bottom: 5px; -} - -#main.container-fluid div .nav li.overflow a:hover { - background-image: none; - background-color: #B21054; - color: #4d5258 -} - - - -div#main div ul.nav li a:hover[disabled] { - border: 1px; - border-radius: 2px; - background: inherit; - color: #4d5258; - cursor: default; -} - -#main.container-fluid div .nav li.active a { - border-radius: 0; - background-color: inherit; - background-image: none; - color: #B21054; - box-shadow: none; - border-bottom: 1px solid #B21054; -} - -#main.container-fluid div .nav li.active a:hover { - border-radius: 0; - background-color: inherit; - background-image: none; - color: #B21054; - box-shadow: none; - border-bottom: 1px solid #B21054; - padding-top: 6px; - padding-bottom: 5px; -} - -/* -div[ng-include][src='viewPartial'] .row-fluid { - padding-left: 10px; - padding-right: 10px; - width: auto; -} -*/ - -.nav li a { - cursor: pointer; -} - - -select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input { - font-size: 13.5px; - border-radius: 0; - /* - color: #555555; - display: inline-block; - font-size: 14px; - height: 20px; - line-height: 20px; - margin-bottom: 10px; - padding: 4px 6px; - vertical-align: middle; - */ -} - -.dropdown-menu li > a:hover, -.dropdown-menu li > a:focus, -.dropdown-submenu:hover > a { - color: #ffffff; - text-decoration: none; - background-color: #B26182; - background-image: -moz-linear-gradient(top, #B26182, #B2577A); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#B26182), to(#B2577A)); - background-image: -webkit-linear-gradient(top, #B26182, #B2577A); - background-image: -o-linear-gradient(top, #B26182, #B2577A); - background-image: linear-gradient(to bottom, #B26182, #B2577A); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#B26182', endColorstr='#B2577A', GradientType=0); -} - -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #333333; - text-decoration: none; - background-color: #B26182; - background-image: -moz-linear-gradient(top, #B26182, #B2577A); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#B26182), to(#B2577A)); - background-image: -webkit-linear-gradient(top, #B26182, #B2577A); - background-image: -o-linear-gradient(top, #B26182, #B2577A); - background-image: linear-gradient(to bottom, #B26182, #B2577A); - background-repeat: repeat-x; - outline: 0; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#B26182', endColorstr='#B2577A', GradientType=0); -} - -.logbar { - width: 100%; - left: 0; - background: inherit !important; - border-bottom: none !important; - box-shadow: none; - border-left: none; - border-right: none; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - padding-left: 0; - padding-right: 0; -} - -.logbar-container > .control-group { - margin-bottom: 0; -} - -.logbar-container > .control-group:first-child { - padding-left: 20px; -} - -.logbar-container > .control-group:last-child { - padding-right: 20px; -} - -.logbar-container { - margin-top: 4px; - margin-bottom: 4px; -} - -.threads.logbar { - background-color: #F6F6F6 !important; - border-bottom: 1px solid #CECDCD !important; -} - -.threads.logbar > .logbar-container { - margin-bottom: 2px; -} - -.threads.logbar > .logbar-container > .state-panel { - margin-left: 10px; - margin-top: 2px; -} - -.threads.logbar > .logbar-container > .support-panel { - margin-right: 10px; -} - -.wiki.logbar-container { - margin-top: 0; - margin-bottom: 0; -} - -.wiki.logbar-container > .nav.nav-tabs { - background-color: #F6F6F6 !important; - border-bottom: 1px solid #CECDCD !important; - border-radius: 0 !important; - border-top: 0 !important; - border-left: 0 !important; - border-right: 0 !important; - margin-top: 0 !important; -} - -div#main div ul.nav li a.nav-primary:hover, div#main div ul.nav li a.nav-primary:active, div#main div ul.nav li a.nav-primary.active, div#main div ul.nav li a.nav-primary.disabled, div#main div ul.nav li a.nav-primary[disabled] { - background-color: inherit; - color: #0044CC; -} - -div#main div ul.nav li a.nav-primary { - background-color: inherit; - background-image: inherit; - background-repeat: repeat-x; - border-color: inherit; - color: #0044CC; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -.nav.help-sidebar { - /* - background: none; - border-bottom: 0; - */ - max-height: inherit !important; - position: relative; - left: -10px; -} - -.nav.help-sidebar li:first-child { - padding-top: 3px; -} - -.nav-tabs .dropdown-menu { - border-radius: 0; -} - -.perspective-selector { - border-right: 1px solid #65696e; - background-color: inherit; -} - -.perspective-selector:hover > a { - border-top: 1px solid #65696e; -} - -.perspective-selector > a { - border-top: 1px solid #64696d !important; - background-image: linear-gradient(to bottom, #585d62 0%, #4e5257 100%); -} - -#main-nav .dropdown-toggle > .caret:before { - color: white; -} - -#main-nav li.dropdown.open > a.dropdown-toggle { - border-bottom: 1px solid #585b60; -} - -#main-nav .dropdown.open, -li.dropdown.open > a.dropdown-toggle { - color: white; - border-bottom: none; - background-color: inherit; - background-image: linear-gradient(to bottom, #72757a 0%, #64686C 100%); - text-shadow: 1px 0 0 white; - -} - -.dropdown-menu { - border: 1px solid #b6b6b6; - border-top: 0; - margin-top: 0; - padding: 0; - background-color: white; -} - -.dropdown-menu > .divider { - margin: 0 !important; - border: 0; - color: #E5E5E5; -} - -.dropdown-menu > li > a { - background: inherit; - text-shadow: none; - line-height: 22px; - font-size: 14px; - border: 0 !important; - padding: 0 !important; - max-height: 22px; -} - -.dropdown-menu > li:hover { - color: #ffffff !important; - border-top: 1px solid #B24E78; - background-color: #B2577A !important; - background-image: linear-gradient(to bottom, #B2577A 0%, #B26182 100%) !important; - cursor: pointer; -} - -.dropdown-menu > li:hover > span > ul.sub-menu > li { - color: #333333 !important; -} - -.dropdown-menu > li:hover > span > ul.sub-menu > li:hover { - color: #ffffff !important; -} - -.ngRow:hover { - background-color: lightyellow; -} - -.ngRow.selected { - color: #ffffff !important; - background-color: #B21054 !important; - border-bottom: 1px solid #d4d4d4; -} - -.ngRow.selected .ngCell { - color: #ffffff !important; - background-color: #B21054 !important; - border-bottom: 1px solid #d4d4d4; -} - -.ngRow.selected .ngCellText i { - color: #ffffff !important; - background-color: #B21054 !important; -} - -.dropdown-menu > .divider:hover { - border-top: 0; - background-image: none !important; -} - -.dropdown-menu > li:hover > a { - color: white !important; - text-shadow: 0px 0px 1px white; -} - -.dropdown-menu > li { - padding-left: 10px !important; - padding-right: 10px !important; - line-height: 60px !important; - border-top: none; - max-height: 60px; -} - -li.dropdown.open > a.dropdown-toggle { - color: #B21054; - border-bottom: 1px solid #B21054; -} - -.main-nav-upper .container .pull-right .nav.nav-tabs .dropdown .caret:before { - color: white !important; -} - -.wiki > ul > li[ng-repeat='link in breadcrumbs']:first-child { - padding-left: 20px !important; -} - -.wiki > ul > li[ng-repeat='link in breadcrumbs'] { - padding-left: 5px !important; - padding-right: 5px !important; - white-space: nowrap; -} - -.wiki > ul > li[ng-repeat='link in breadcrumbs'] a { - display: inline-block; -} - -.wiki > ul > li[ng-repeat='link in breadcrumbs']:after { - position: relative; - top: 1px; - content: '/'; -} - -.wiki > ul > li[ng-repeat='link in breadcrumbs'].active:after { - content: ''; -} - -.wiki > ul > li.pull-right.dropdown { - padding-right: 20px; -} - -.tabbable > .nav-tabs { - min-height: inherit !important; - max-height: inherit !important; -} - -.tabbable li a { - background-color: inherit !important; -} - -.tabbable li.active a { - border-bottom: 0 !important; -} - -.no-bottom-margin .control-group { - margin-bottom: 10px; -} - -div.hawtio-form-tabs ul.nav-tabs li:first-child { - margin-left: 3px; -} - -div.hawtio-form-tabs ul.nav-tabs li.active:first-child { - margin-left: 3px; -} - -.instance-name { - border-top-left-radius: 0; - padding: 0; - padding-left: 3px; - padding-top: 3px; - box-shadow: none; -} - -ng-include[src="'app/jmx/html/subLevelTabs.html'"] .nav.nav-tabs { - border-radius: 0 !important; - margin-top: 0 !important; -} - -div.wiki-fixed[ng-controller] .row-fluid .span12 .nav.nav-tabs { - border-radius: 0 !important; - margin-top: 0 !important; - border: none !important; - box-shadow: none !important; - background: inherit !important; - border-bottom: 1px solid #cecdcd !important; - position: relative; - top: -8px; - margin-bottom: 0 !important; -} - -div.wiki-fixed[ng-controller] .row-fluid .span12 .nav.nav-tabs li a { - background: inherit !important; -} - -.controller-section { - padding-left: 20px; - padding-right: 20px; -} - -@media(max-width: 849px) { - .controller-section { - padding-left: 5px; - padding-right: 5px; - } - -} - -#jmxtree { - margin-left: 20px; -} - -#activemqtree { - margin-left: 20px; -} - -#cameltree { - margin-left: 20px; -} - -.span9 #properties { - margin-right: 20px; -} - -.wiki-fixed { - margin-left: 20px; - margin-right: 20px; -} - -.CodeMirror * { - font-family: monospace; -} - -.fabric-page-header .span4 h2 { - margin-top: 0px; -} - -div[ng-controller="Log.LogController"] .logbar { - -} - -div[ng-controller="Log.LogController"] .logbar .logbar-container { - background: white; - margin :0px; - padding-top: 4px; - padding-bottom: 3px; - border-bottom: 1px solid #cecdcd !important; -} - -.help-header { - background-color: #43484D; - padding-left: 20px; - padding-right: 20px; - border-radius: 4px; -} - -.help-header img { - position: relative; - margin-right: 7px; - margin-left: 3px; - height: 50px; - top: -2px; -} - -.about-display { - margin-left: auto; - margin-right: auto; - width: 700px; -} - -.about-display > .about-header { - text-align: center; - background-color: #B2577A; - color: white; - padding-left: 10px; - padding-right: 10px; - border-radius: 4px; -} - -.about-display > .about-header > img { - position: relative; - margin-right: 7px; - margin-left: 3px; - height: 22px; - top: -2px; -} - -.camel-tree > .section-filter { - margin-left: 10px; - margin-top: 5px; - margin-right: 10px; -} - -.dropdown-menu .sub-menu { - left: 190px; - top: -5px; -} - -.hawtio-breadcrumb { - margin-top: 5px; - display: inline-block; -} - -.hawtio-breadcrumb > li:first-child { - padding-left: 10px !important; -} - -.hawtio-breadcrumb > li:last-child { - padding-right: 10px !important; -} - -.hawtio-breadcrumb > li { - padding-left: 2px !important; - padding-right: 2px !important; -} - -.nav.nav-tabs li .hawtio-dropdown .dropdown-menu { - margin-top: 7px; - border-top: none; -} - -.dropdown.perspective-selector .dropdown-menu > div > p, -.hawtio-dropdown p { - color: #333333; -} - -.can-invoke > .dynatree-icon:before, -.icon-cog.can-invoke { - color: green !important; -} - -.cant-invoke > .dynatree-icon:before, -.icon-cog.cant-invoke { - color: red !important; -} - -.pane-bar { - border-left: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background: white; -} - -.pane { - box-shadow: 0 0 50px rgba(0, 0, 0, 0.05); - background: #fff; - top: 106px; -} - -.pane-header-wrapper { - box-shadow: 0 0 50px rgba(0, 0, 0, 0.2); -} - -.navbar .nav > li > .dropdown-menu:before, -.navbar .nav > li > .dropdown-menu:after { - display: none; - border: none; -} - -.dropdown.perspective-selector .dropdown-menu > div > p, -.hawtio-dropdown p { - border-top: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; - background-image: linear-gradient(to bottom, #fff, #e5e5e5); -} -.dropdown.perspective-selector .dropdown-menu li.clear-recent { - border-top: 1px dashed #d4d4d4; -} - -ng-include > .nav.nav-tabs { - border-left: none; - border-right: none; -} - -.modal-body{ - max-height: calc(100vh - 200px); - overflow-y: auto; -} diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/activemq.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/activemq.png deleted file mode 100644 index cc8cd5002e3..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/activemq.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background-checked.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background-checked.png deleted file mode 100644 index 21be54a1333..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background-checked.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background-hover.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background-hover.png deleted file mode 100644 index b12873f9d26..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background-hover.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background.png deleted file mode 100644 index 9b0ee2e3802..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/checkbox-background.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/favicon.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/favicon.png deleted file mode 100644 index c2b43f52078..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/favicon.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/input-background.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/input-background.png deleted file mode 100644 index 7c731595535..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/input-background.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/login-screen-background.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/login-screen-background.png deleted file mode 100644 index 77d6207aa60..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/login-screen-background.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/login-screen-logo.png b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/login-screen-logo.png deleted file mode 100644 index a334300cbe0..00000000000 Binary files a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/img/login-screen-logo.png and /dev/null differ diff --git a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/js/brandingPlugin.js b/artemis-hawtio/activemq-branding/src/main/webapp/plugin/js/brandingPlugin.js deleted file mode 100644 index f3a1ae835ba..00000000000 --- a/artemis-hawtio/activemq-branding/src/main/webapp/plugin/js/brandingPlugin.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * 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. - */ - /** - * The main entry point for the Branding module - */ -var Branding = (function (Branding) { - - /** - * The name of this plugin - */ - Branding.pluginName = 'activemq-branding'; - - /** - * This plugin's logger instance - */ - Branding.log = Logger.get('activemq-branding-plugin'); - - /** - * The top level path of this plugin on the server - */ - Branding.contextPath = '/activemq-branding'; - if (hawtioPluginLoader.getPlugins().hasOwnProperty(Branding.pluginName)) { - Branding.contextPath = hawtioPluginLoader.getPlugins()[Branding.pluginName]['Context']; - } - - /** - * This plugin's AngularJS module instance. - */ - Branding.module = angular.module(Branding.pluginName, []) - .run(initPlugin); - - /** - * Here you can overwrite hawtconfig.json by putting the JSON - * data directly to configManager.config property. - */ - function initPlugin(configManager, aboutService) { - configManager.config = { - "branding": { - "appName": "Artemis Console", - "appLogoUrl": `${Branding.contextPath}/plugin/img/activemq.png`, - "companyLogoUrl": `${Branding.contextPath}/plugin/img/activemq.png`, - "css": `${Branding.contextPath}/plugin/css/activemq.css`, - "favicon": `${Branding.contextPath}/plugin/img/favicon.png` - }, - "login": { - "description": "ActiveMQ Artemis Management Console", - "links": [ - { - "text": "Documentation", - "url": "https://activemq.apache.org/components/artemis/documentation/", - }, - { - "text": "Website", - "url": "https://activemq.apache.org/" - } - ] - }, - "about": { - "title": "ActiveMQ Artemis Management Console", - "productInfo": [], - "additionalInfo": "", - "imgSrc": `${Branding.contextPath}/plugin/img/activemq.png` - }, - "disabledRoutes": [] - }; - - aboutService.addProductInfo('Artemis', '${project.version}'); - // Calling this function is required to apply the custom css and - // favicon settings - Core.applyBranding(configManager); - - Branding.log.info(Branding.pluginName, "loaded"); - } - initPlugin.$inject = ['configManager', 'aboutService']; - - return Branding; - -})(Branding || {}); - -// tell the Hawtio plugin loader about our plugin so it can be -// bootstrapped with the rest of AngularJS -hawtioPluginLoader.addModule(Branding.pluginName); diff --git a/artemis-hawtio/artemis-console/src/main/webapp/hawtconfig.json b/artemis-hawtio/artemis-console/src/main/webapp/hawtconfig.json deleted file mode 100644 index 940ba41cea0..00000000000 --- a/artemis-hawtio/artemis-console/src/main/webapp/hawtconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "branding": { - "appName": "Artemis Console", - "appLogoUrl": "", - "companyLogoUrl": "", - "css": "", - "favicon": "" - }, - "login": { - "description": "ActiveMQ Artemis Management Console", - "links": [ - { - "url": "/user_manual/index.html", - "text": "User Manual" - } - ] - }, - "about": { - "title": "ActiveMQ Artemis Management Console", - "productInfo": [], - "additionalInfo": "", - "copyright": "", - "imgSrc": "" - }, - "disabledRoutes": [] -} \ No newline at end of file diff --git a/artemis-hawtio/artemis-plugin/README.md b/artemis-hawtio/artemis-plugin/README.md deleted file mode 100644 index dbf6e454364..00000000000 --- a/artemis-hawtio/artemis-plugin/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# artemis-hawtio - -Is a HawtIO plugin that allows the viewing and manipulation of topic/queues and other JMS resources. diff --git a/artemis-hawtio/artemis-plugin/pom.xml b/artemis-hawtio/artemis-plugin/pom.xml deleted file mode 100644 index 974a93e9925..00000000000 --- a/artemis-hawtio/artemis-plugin/pom.xml +++ /dev/null @@ -1,250 +0,0 @@ - - - - - 4.0.0 - - - org.apache.activemq - artemis-hawtio-pom - 2.37.0 - - - artemis-plugin - ActiveMQ Artemis HawtIO Plugin - - Artemis plugin module for the HawtIO web console - - - war - - - ${project.basedir}/../.. - - - - /artemis-plugin - - - ${project.artifactId} - - - - - - - javax.servlet;version="2.6", - *;resolution:=optional - - - ${project.artifactId}-${project.version} - ${basedir}/target/${webapp-dir} - ${basedir}/src/main/webapp/lib - ${webapp-outdir}/app/app.js - - - - - - - - io.hawt - hawtio-plugin-mbean - - - - - org.eclipse.jetty.toolchain - jetty-servlet-api - provided - - - - - org.slf4j - slf4j-api - provided - - - - - - - - - - src/main/resources - true - - **/*.xml - - - - - - - - - - maven-antrun-plugin - - - - - generate-sources - generate-sources - - run - - - - Building plugin javascript file list - - - - - - - - - Files: ${plugin-scripts} - - - - true - - - - - - - maven-resources-plugin - - - - copy-resources - generate-sources - - resources - - - - - - - - org.apache.felix - maven-bundle-plugin - - - bundle-manifest - process-classes - - manifest - - - - - ${webapp-outdir}/META-INF - - jar - bundle - war - - - ${plugin-context} - ${plugin-context} - - WEB-INF/lib - *;scope=compile|runtime - true - - ${osgi.export} - ${osgi.import} - ${osgi.dynamic} - ${osgi.private.pkg} - - .,WEB-INF/classes - - ${project.name} - ${project.groupId}.${project.artifactId} - HawtIO - ${project.version} - - - - - - - org.apache.maven.plugins - maven-war-plugin - - @{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@ - **/classes/OSGI-INF/** - false - - ${webapp-outdir}/META-INF/MANIFEST.MF - - - - true - src/main/resources - - **/*.* - - - log4j.properties - - - - - - - - - - diff --git a/artemis-hawtio/artemis-plugin/src/main/java/org/apache/activemq/hawtio/plugin/PluginContextListener.java b/artemis-hawtio/artemis-plugin/src/main/java/org/apache/activemq/hawtio/plugin/PluginContextListener.java deleted file mode 100644 index a1aac00249b..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/java/org/apache/activemq/hawtio/plugin/PluginContextListener.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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.hawtio.plugin; - -import io.hawt.web.plugin.HawtioPlugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.lang.invoke.MethodHandles; - -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; - -/** - * The Plugin Context Listener used to load in the plugin - **/ -public class PluginContextListener implements ServletContextListener { - - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - HawtioPlugin plugin = null; - - @Override - public void contextInitialized(ServletContextEvent servletContextEvent) { - - ServletContext context = servletContextEvent.getServletContext(); - - plugin = new HawtioPlugin(); - plugin.setContext(context.getContextPath()); - plugin.setName(context.getInitParameter("plugin-name")); - plugin.setScripts(context.getInitParameter("plugin-scripts")); - plugin.setDomain(null); - - try { - plugin.init(); - } catch (Exception e) { - throw createServletException(e); - } - - logger.info("Initialized {} plugin", plugin.getName()); - } - - @Override - public void contextDestroyed(ServletContextEvent servletContextEvent) { - try { - plugin.destroy(); - } catch (Exception e) { - throw createServletException(e); - } - - logger.info("Destroyed {} plugin", plugin.getName()); - } - - protected RuntimeException createServletException(Exception e) { - return new RuntimeException(e); - } - -} \ No newline at end of file diff --git a/artemis-hawtio/artemis-plugin/src/main/resources/WEB-INF/web.xml b/artemis-hawtio/artemis-plugin/src/main/resources/WEB-INF/web.xml deleted file mode 100644 index a75489c5d2e..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/resources/WEB-INF/web.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - An Artemis Plugin - An Artemis plugin - - - Plugin's path on the server - plugin-context - ${plugin-context} - - - - Plugin's path on the server - plugin-name - ${project.artifactId} - - - - Plugin's path on the server - plugin-domain - ${plugin-domain} - - - - Plugin's path on the server - plugin-scripts - ${plugin-scripts} - - - - Disable listing of directories and files - org.eclipse.jetty.servlet.Default.dirAllowed - false - - - - org.apache.activemq.hawtio.plugin.PluginContextListener - - - - - diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/index.html b/artemis-hawtio/artemis-plugin/src/main/webapp/index.html deleted file mode 100644 index fe036f6ab7e..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Artemis plugin - - -

Hawtio :: Artemis plugin example

- - diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/doc/help.md b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/doc/help.md deleted file mode 100644 index e875acd8bcf..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/doc/help.md +++ /dev/null @@ -1,19 +0,0 @@ -### Artemis - -Click [Artemis](#/jmx/attributes?tab=artemis) in the top navigation bar to see the Artemis specific plugin. (The Artemis tab won't appear if there is no broker in this JVM). The Artemis plugin works very much the same as the JMX plugin however with a focus on interacting with an Artemis broker. - -The tree view on the left-hand side shows the top level JMX tree of each broker instance running in the JVM. Expanding the tree will show the various MBeans registered by Artemis that you can inspect via the **Attributes** tab. - -#### Creating a new Address - -To create a new address simply click on the broker or the address folder in the jmx tree and click on the create tab. - -Once you have created an address you should be able to **Send** to it by clicking on it in the jmx tree and clicking on the send tab. - -#### Creating a new Queue - -To create a new queue click on the address you want to bind the queue to and click on the create tab. - -Once you have created a queue you should be able to **Send** a message to it or **Browse** it or view the **Attributes** or **Charts**. Simply click on the queue in th ejmx tree and click on the appropriate tab. - -You can also see a graphical view of all brokers, addresses, queues and their consumers using the **Diagram** tab. diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/preferences.html b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/preferences.html deleted file mode 100644 index 8227bba7c0a..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/preferences.html +++ /dev/null @@ -1,74 +0,0 @@ - -
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- - - -
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/tree/content.html b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/tree/content.html deleted file mode 100644 index be06f47f052..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/tree/content.html +++ /dev/null @@ -1,20 +0,0 @@ - -
-
-
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/tree/header.html b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/tree/header.html deleted file mode 100644 index 6a9ecf612ca..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/html/tree/header.html +++ /dev/null @@ -1,41 +0,0 @@ - -
-
-
-
- - - -
-
-
- - {{$ctrl.result.length}} - - - -
-
-
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/artemisPlugin.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/artemisPlugin.js deleted file mode 100644 index f51f4ba1ed3..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/artemisPlugin.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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. - */ -/** - * The main entry point for the Simple module - */ -var Artemis = (function (Artemis) { - - /** - * The name of this plugin - */ - Artemis.pluginName = 'artemis-plugin'; - - /** - * This plugin's logger instance - */ - Artemis.log = Logger.get('artemis-plugin'); - - /** - * The top level path of this plugin on the server - */ - Artemis.contextPath = "/artemis-plugin/"; - - Artemis.log.info("loading artemis plugin") - Artemis._module = angular.module(Artemis.pluginName, [ - 'angularResizable' - ]) - .component('artemis', { - template: - `
- -
- - -
-
-
- ` - }) - .run(configurePlugin); - - function configurePlugin(mainNavService, workspace, helpRegistry, preferencesRegistry, localStorage, preLogoutTasks, documentBase, $templateCache) { - var artemisJmxDomain = localStorage['artemisJmxDomain'] || "org.apache.activemq.artemis"; - mainNavService.addItem({ - title: 'Artemis', - basePath: '/artemis', - template: '', - isValid: function () { return workspace.treeContainsDomainAndProperties(artemisJmxDomain); } - }); - } - configurePlugin.$inject = ['mainNavService', 'workspace', 'helpRegistry', 'preferencesRegistry', 'localStorage', 'preLogoutTasks', 'documentBase', '$templateCache']; - - return Artemis; - -})(Artemis || {}); - -// tell the Hawtio plugin loader about our plugin so it can be -// bootstrapped with the rest of AngularJS -hawtioPluginLoader.addModule(Artemis.pluginName); diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addressSendMessage.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addressSendMessage.js deleted file mode 100644 index 50283fe6ad8..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addressSendMessage.js +++ /dev/null @@ -1,182 +0,0 @@ -/* - * 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. - */ - /// -var Artemis; -(function (Artemis) { - Artemis.log.debug("loading address send message"); - Artemis._module.component('artemisAddressSendMessage', { - template: - `

Send Message - -

- -
- -
-
-
- - - -
-
- - - -
-
- - - -
-
- - -
- -
-
-
- - -
- -
-
-
-
-
- -

Headers

- -
- - - - - - - - -
- -
-
- -

- -

- -

Body

- -
-
-
-
-
- - -
-
- -

- -

- - - - - `, - controller: AddressSendMessageController - }) - .name; - Artemis.log.debug("loaded queue " + Artemis.createQueueModule); - - function AddressSendMessageController($route, $scope, $element, $timeout, workspace, jolokia, localStorage, $location, artemisMessage, messageCreator) { - Core.initPreferenceScope($scope, localStorage, { - 'durable': { - 'value': true, - 'converter': Core.parseBooleanValue - }, - 'messageID': { - 'value': true, - 'converter': Core.parseBooleanValue - } - }); - var ctrl = this; - ctrl.messageCreator = messageCreator; - ctrl.message = ctrl.messageCreator.createNewMessage($scope, $location, $route, localStorage, artemisMessage, workspace, $element, $timeout, jolokia); - - } - AddressSendMessageController.$inject = ['$route', '$scope', '$element', '$timeout', 'workspace', 'jolokia', 'localStorage', '$location', 'artemisMessage', 'messageCreator']; - -})(Artemis || (Artemis = {})); diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js deleted file mode 100644 index c0fc8be326e..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js +++ /dev/null @@ -1,259 +0,0 @@ -/* - * 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. - */ -var Artemis; -(function (Artemis) { - //Artemis.log.debug("loading addresses"); - Artemis._module.component('artemisAddresses', { - template: - `

Browse Addresses - -

-
- - -
- - - `, - controller: AddressesController - }) - .name; - - - function AddressesController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisAddress) { - var ctrl = this; - ctrl.pagination = pagination; - ctrl.pagination.reset(); - var mbean = Artemis.getBrokerMBean(workspace, jolokia); - ctrl.allAddresses = []; - ctrl.addresses = []; - ctrl.workspace = workspace; - ctrl.refreshed = false; - ctrl.dtOptions = { - // turn of ordering as we do it ourselves - ordering: false, - columns: [ - {name: "ID", visible: true}, - {name: "Name", visible: true}, - {name: "Internal", visible: false}, - {name: "Routing Types", visible: true}, - {name: "Queue Count", visible: true} - ] - }; - - Artemis.log.debug('sessionStorage: addressColumnDefs =', localStorage.getItem('addressColumnDefs')); - if (localStorage.getItem('addressColumnDefs')) { - loadedDefs = JSON.parse(localStorage.getItem('addressColumnDefs')); - //sanity check to make sure columns havent been added - if(loadedDefs.length === ctrl.dtOptions.columns.length) { - ctrl.dtOptions.columns = loadedDefs; - } - - } - - ctrl.updateColumns = function () { - var attributes = []; - ctrl.dtOptions.columns.forEach(function (column) { - attributes.push({name: column.name, visible: column.visible}); - }); - Artemis.log.debug("saving columns " + JSON.stringify(attributes)); - localStorage.setItem('addressColumnDefs', JSON.stringify(attributes)); - } - - ctrl.filter = { - fieldOptions: [ - {id: 'id', name: 'ID'}, - {id: 'name', name: 'Name'}, - {id: 'internal', name: 'Internal'}, - {id: 'routingTypes', name: 'Routing Types'}, - {id: 'queueCount', name: 'Queue Count'} - ], - operationOptions: [ - {id: 'EQUALS', name: 'Equals'}, - {id: 'CONTAINS', name: 'Contains'}, - {id: 'NOT_CONTAINS', name: 'Does Not Contain'}, - {id: 'GREATER_THAN', name: 'Greater Than'}, - {id: 'LESS_THAN', name: 'Less Than'} - ], - sortOptions: [ - {id: 'asc', name: 'ascending'}, - {id: 'desc', name: 'descending'} - ], - values: { - field: "", - operation: "", - value: "", - sortOrder: "asc", - sortColumn: "id" - }, - text: { - fieldText: "Filter Field..", - operationText: "Operation..", - sortOrderText: "ascending", - sortByText: "ID" - } - }; - - ctrl.tableActionButtons = [ - { - name: 'attributes', - title: 'Navigate to attributes', - actionFn: navigateToAddressAtts - }, - { - name: 'operations', - title: 'navigate to operations', - actionFn: navigateToAddressOps - } - ]; - ctrl.tableConfig = { - selectionMatchProp: 'id', - showCheckboxes: false - }; - ctrl.tableColumns = [ - { header: 'ID', itemField: 'id' }, - { header: 'Name', itemField: 'name' }, - { header: 'Internal', itemField: 'internal' }, - { header: 'Routing Types', itemField: 'routingTypes' }, - { header: 'Queue Count', itemField: 'queueCount' , htmlTemplate: 'addresses-anchor-column-template', colActionFn: (item) => selectQueues(item.idx) } - ]; - - ctrl.refresh = function () { - ctrl.refreshed = true; - ctrl.pagination.load(); - }; - ctrl.reset = function () { - ctrl.filter.values.field = ""; - ctrl.filter.values.operation = ""; - ctrl.filter.values.value = ""; - ctrl.filter.sortOrder = "asc"; - ctrl.filter.sortColumn = "id"; - ctrl.refreshed = true; - artemisAddress.address = null; - ctrl.pagination.load(); - }; - - if (artemisAddress.address) { - Artemis.log.debug("navigating to address = " + artemisAddress.address.address); - ctrl.filter.values.field = ctrl.filter.fieldOptions[1].id; - ctrl.filter.values.operation = ctrl.filter.operationOptions[0].id; - ctrl.filter.values.value = artemisAddress.address.address; - artemisAddress.address = null; - } - - selectQueues = function (idx) { - var address = ctrl.addresses[idx].name; - Artemis.log.debug("navigating to queues:" + address) - artemisAddress.address = { address: address }; - $location.path("artemis/artemisQueues"); - }; - - function navigateToAddressAtts(action, item) { - $location.path("artemis/attributes").search({"tab": "artemis", "nid": getAddressNid(item.name, $location)}); - }; - function navigateToAddressOps(action, item) { - $location.path("artemis/operations").search({"tab": "artemis", "nid": getAddressNid(item.name, $location)}); - }; - function getAddressNid(address, $location) { - var rootNID = getRootNid($location); - var targetNID = rootNID + "addresses-" + address; - Artemis.log.debug("targetNID=" + targetNID); - return targetNID; - } - function getRootNid($location) { - var currentNid = $location.search()['nid']; - Artemis.log.debug("current nid=" + currentNid); - var firstDash = currentNid.indexOf('-'); - var secondDash = currentNid.indexOf('-', firstDash + 1); - var thirdDash = currentNid.indexOf('-', secondDash + 1); - if (thirdDash < 0) { - return currentNid + "-"; - } - var rootNID = currentNid.substring(0, thirdDash + 1); - return rootNID; - } - ctrl.loadOperation = function () { - if (mbean) { - var method = 'listAddresses(java.lang.String, int, int)'; - var addressFilter = { - field: ctrl.filter.values.field, - operation: ctrl.filter.values.operation, - value: ctrl.filter.values.value, - sortOrder: ctrl.filter.values.sortOrder, - sortColumn: ctrl.filter.values.sortColumn - }; - - if (ctrl.refreshed == true) { - ctrl.pagination.reset(); - ctrl.refreshed = false; - } - jolokia.request({ type: 'exec', mbean: mbean, operation: method, arguments: [JSON.stringify(addressFilter), ctrl.pagination.pageNumber, ctrl.pagination.pageSize] }, Core.onSuccess(populateTable, { error: onError })); - } - }; - - ctrl.pagination.setOperation(ctrl.loadOperation); - - function onError(response) { - Core.notification("error", "could not invoke list sessions" + response.error); - $scope.workspace.selectParentNode(); - }; - - function populateTable(response) { - var data = JSON.parse(response.value); - ctrl.addresses = []; - angular.forEach(data["data"], function (value, idx) { - value.idx = idx; - ctrl.addresses.push(value); - }); - ctrl.pagination.page(data["count"]); - allAddresses = ctrl.addresses; - ctrl.addresses = allAddresses; - Core.$apply($scope); - } - - ctrl.pagination.load(); - } - AddressesController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisAddress']; - - -})(Artemis || (Artemis = {})); \ No newline at end of file diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/browse.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/browse.js deleted file mode 100644 index 548e325f93d..00000000000 --- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/browse.js +++ /dev/null @@ -1,1056 +0,0 @@ -/* - * 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. - */ -var Artemis; -(function (Artemis) { - Artemis._module.component('artemisBrowseQueue', { - template: - `

Browse Queue - -

- - -
-
-
-
-
-
- -
- -
-
-
-
- - - - - -
-
-
-
- - -
- -
-
- - - -