activemq-artemis/artemis-features/src/main/resources/features.xml

143 lines
8.2 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
2015-11-24 08:55:35 -05:00
<!--
~ 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.
-->
<features name="artemis-${pom.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<feature name="artemis" version="${pom.version}" description="Full ActiveMQ Artemis broker with default configuration">
<feature>artemis-core</feature>
<feature>artemis-amqp</feature>
<feature>artemis-stomp</feature>
<feature>artemis-mqtt</feature>
<feature>artemis-hornetq</feature>
<feature>artemis-openwire</feature>
</feature>
<feature name="netty-core" version="${netty.version}" description="Netty libraries">
<bundle>mvn:io.netty/netty-common/${netty.version}</bundle>
2016-10-11 08:32:10 -04:00
<bundle>mvn:io.netty/netty-resolver/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-transport/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-buffer/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-codec/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-codec-socks/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-codec-http/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-handler/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-handler-proxy/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-transport-native-epoll/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-transport-native-kqueue/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-transport-native-unix-common/${netty.version}</bundle>
<bundle>mvn:io.netty/netty-codec-http/${netty.version}</bundle>
</feature>
<feature name="artemis-common" version="${pom.version}" description="ActiveMQ Artemis Common libraries">
<feature>transaction</feature>
<feature>netty-core</feature>
<bundle dependency="true">mvn:commons-beanutils/commons-beanutils/${commons.beanutils.version}</bundle>
<bundle dependency="true">mvn:commons-collections/commons-collections/${commons.collections.version}</bundle>
<bundle dependency="true">mvn:org.jboss.logging/jboss-logging/${jboss.logging.version}</bundle>
<bundle dependency="true">mvn:org.jgroups/jgroups/${jgroups.version}</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.json-api-1.1/${servicemix.json-1.1.spec.version}</bundle>
<bundle>mvn:org.apache.johnzon/johnzon-core/${johnzon.version}</bundle>
</feature>
<feature name="artemis-core" version="${pom.version}" description="ActiveMQ Artemis broker libraries">
<feature>artemis-common</feature>
<feature>scr</feature>
<configfile finalname="etc/org.apache.activemq.artemis.cfg">mvn:org.apache.activemq/artemis-features/${pom.version}/cfg</configfile>
<configfile finalname="etc/artemis.xml">mvn:org.apache.activemq/artemis-features/${pom.version}/xml/artemis</configfile>
<!-- this is here because commons-configuration2 requires the package javax.mail.internet from version 2.7 -->
<bundle dependency="true">mvn:javax.mail/mail/1.4.7</bundle>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/${geronimo.jms.2.spec.version}</bundle>
<bundle dependency="true">mvn:org.apache.commons/commons-configuration2/${commons.config.version}</bundle>
<bundle dependency="true">mvn:org.apache.commons/commons-text/${commons.text.version}</bundle>
<bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons.lang.version}</bundle>
<bundle dependency="true">mvn:org.jctools/jctools-core/${jctools.version}</bundle>
2021-01-11 06:41:25 -05:00
<bundle dependency="true">mvn:com.google.guava/failureaccess/1.0.1</bundle>
ARTEMIS-2886 optimize security auth Both authentication and authorization will hit the underlying security repository (e.g. files, LDAP, etc.). For example, creating a JMS connection and a consumer will result in 2 hits with the *same* authentication request. This can cause unwanted (and unnecessary) resource utilization, especially in the case of networked configuration like LDAP. There is already a rudimentary cache for authorization, but it is cleared *totally* every 10 seconds by default (controlled via the security-invalidation-interval setting), and it must be populated initially which still results in duplicate auth requests. This commit optimizes authentication and authorization via the following changes: - Replace our home-grown cache with Google Guava's cache. This provides simple caching with both time-based and size-based LRU eviction. See more at https://github.com/google/guava/wiki/CachesExplained. I also thought about using Caffeine, but we already have a dependency on Guava and the cache implementions look to be negligibly different for this use-case. - Add caching for authentication. Both successful and unsuccessful authentication attempts will be cached to spare the underlying security repository as much as possible. Authenticated Subjects will be cached and re-used whenever possible. - Authorization will used Subjects cached during authentication. If the required Subject is not in the cache it will be fetched from the underlying security repo. - Caching can be disabled by setting the security-invalidation-interval to 0. - Cache sizes are configurable. - Management operations exist to inspect cache sizes at runtime.
2020-08-24 10:24:25 -04:00
<bundle dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle>
<bundle dependency="true">mvn:org.apache.commons/commons-dbcp2/${commons.dbcp2.version}</bundle>
2020-10-12 09:17:45 -04:00
<bundle dependency="true">mvn:org.apache.commons/commons-pool2/${commons.pool2.version}</bundle>
2019-05-23 12:48:14 -04:00
<!-- Micrometer can't be included until it supports OSGi. It is currently an "optional" Maven dependency. -->
<!--bundle dependency="true">mvn:io.micrometer/micrometer-core/${version.micrometer}</bundle-->
<bundle>mvn:org.apache.activemq/activemq-artemis-native/${activemq-artemis-native-version}</bundle>
<bundle>mvn:org.apache.activemq/artemis-server-osgi/${pom.version}</bundle>
</feature>
<feature name="artemis-core-client" version="${pom.version}" description="ActiveMQ Artemis Core Client libraries">
<feature>artemis-common</feature>
<bundle>mvn:org.apache.activemq/artemis-core-client-osgi/${pom.version}</bundle>
</feature>
<feature name="artemis-jms-client" version="${pom.version}" description="ActiveMQ Artemis JMS Client libraries">
<feature>artemis-common</feature>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/${geronimo.jms.2.spec.version}</bundle>
<bundle>mvn:org.apache.activemq/artemis-jms-client-osgi/${pom.version}</bundle>
</feature>
<feature name="artemis-amqp-client" version="${pom.version}" description="ActiveMQ Artemis AMQP Client libraries">
<feature>transaction</feature>
<feature>netty-core</feature>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/${geronimo.jms.2.spec.version}</bundle>
<bundle>mvn:org.apache.qpid/proton-j/${proton.version}</bundle>
<bundle>mvn:org.apache.qpid/qpid-jms-client/${qpid.jms.version}</bundle>
</feature>
<feature name="artemis-amqp" version="${pom.version}" description="ActiveMQ Artemis AMQP protocol libraries">
<feature>artemis-core</feature>
<bundle>mvn:org.apache.qpid/proton-j/${proton.version}</bundle>
<bundle>mvn:org.apache.qpid/qpid-jms-client/${qpid.jms.version}</bundle>
<bundle>mvn:org.apache.activemq/artemis-amqp-protocol/${pom.version}</bundle>
</feature>
<feature name="artemis-stomp" version="${pom.version}" description="ActiveMQ Artemis Stomp protocol libraries">
<feature>artemis-core</feature>
<bundle>mvn:org.apache.activemq/artemis-stomp-protocol/${pom.version}</bundle>
</feature>
<feature name="artemis-mqtt" version="${pom.version}" description="ActiveMQ Artemis MQTT protocol libraries">
<feature>artemis-core</feature>
<bundle dependency="true">mvn:io.netty/netty-codec-mqtt/${netty.version}</bundle>
<bundle>mvn:org.apache.activemq/artemis-mqtt-protocol/${pom.version}</bundle>
</feature>
<feature name="artemis-hornetq" version="${pom.version}" description="ActiveMQ Artemis HornetQ protocol libraries">
<feature>artemis-core</feature>
<bundle>mvn:org.apache.activemq/artemis-hqclient-protocol/${pom.version}</bundle>
<bundle>mvn:org.apache.activemq/artemis-hornetq-protocol/${pom.version}</bundle>
</feature>
<feature name="artemis-openwire" version="${pom.version}" description="ActiveMQ Artemis Openwire protocol libraries">
<feature>artemis-core</feature>
<bundle dependency="true">mvn:org.fusesource.hawtbuf/hawtbuf/1.11</bundle>
<bundle>mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
<bundle>mvn:org.apache.activemq/artemis-openwire-protocol/${pom.version}</bundle>
</feature>
<feature name="artemis-openwire-client" version="${pom.version}" description="ActiveMQ Artemis Openwire Client libraries">
<feature>transaction</feature>
<bundle dependency="true">mvn:org.fusesource.hawtbuf/hawtbuf/${hawtbuff.version}</bundle>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
<bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
<bundle>mvn:org.apache.activemq/activemq-client/${activemq5-version}</bundle>
</feature>
</features>