Commit Graph

60 Commits

Author SHA1 Message Date
Gary Tully 2e17a4a007 ARTEMIS-4582 - view and edit permissions, mops. security-settings for rbac on management apis 2024-03-15 16:40:45 +00:00
Justin Bertram 576622571a ARTEMIS-4559 refactor HA docs & code/module naming
This commit does the following:

 - Updates HA docs including the chapter on network isolation (i.e.
   split brain). The network isolation chapter is now more about
   high-level explanation and the HA doc now has all the configuration
   parameters.
 - Changes references to "pluggable quorum voting" to "pluggable lock
   manager." The pluggable functionality really isn't about voting.
   Conceptually is much more like the functionality you'd get from a
   distributed lock so this naming is more clear. Both the docs and the
   code have been changed.
 - Reorganize lock manager modules as sub-modules. The API and RI
   modules are renamed, but that should be OK based on the
   "experimental" tag that's been on this feature up to this point.
 - Remove the "experimental" tag from the lock manager.

These changes will not break folks using the standalone broker. However,
they will break folks embedding the broker *if* they are using the
artemis-quorum-ri or artemis-quorum-api modules or the
o.a.a.a.c.c.h.DistributedPrimitiveManagerConfiguration class.

There are no functional changes here. Renaming these modules is more a
conceptual change to facilitate better documentation and increased
adoption.
2024-03-15 10:18:05 -04:00
Robbie Gemmell b59813336e ARTEMIS-4491: update to ActiveMQ 5.18.3 2023-11-06 13:16:52 +00:00
Alexey Markevich 50a1824c02 ARTEMIS-4349: Replace Guava cache with Caffeine
Combination of changes from Alexey Markevich with updates from Robbie Gemmell. See PRs for detail.

This closes #4584.
This closes #4540.
2023-08-29 16:00:53 +01:00
Robbie Gemmell a3c01257af ARTEMIS-4331: update to jgroups 5.2.16, adjust deps to exclude BM 2023-07-11 12:31:34 -05:00
Robbie Gemmell 9873fccf74 ARTEMIS-4020: switch to using SLF4J API for logging, use Log4J 2 as impl for broker distribution and tests
PR includes work from myself and Clebert Suconic, squashed from the new-logging branch.
2022-09-28 14:01:54 -04:00
franz1981 f8b045bd2d ARTEMIS-3522 Implement performance tool for RUL benchmarks
Co-authored-by: gtully
2022-03-02 13:32:42 +01:00
Justin Bertram f18dd80dc8 ARTEMIS-3662 remove deprecated config from default broker.xml
The auto-create-jms-queues, auto-delete-jms-queues,
auto-create-jms-topics, and auto-delete-jms-topics address settings
were deprecated in ARTEMIS-881 way back in 2016. There's no need to keep
them in the default broker.xml at this point.
2022-02-04 13:49:32 -05:00
Justin Bertram 9c459eb313 ARTEMIS-2413 upgrade JGroups
JGroups 3.x hasn't been updated in some time now. The last release was
in April 2020 almost 2 years ago. Lots of protocols have been updated
and added and users are wanting to use them. There is also increasing
concern about using older components triggered mainly by other
recently-discovered high-profile vulnerabilities in the wider Open
Source Java community.

This commit bumps JGroups up to the latest release - 5.2.0.Final.
However, there is a cost associated with upgrading.

The old-style properties configuration is no longer supported. I think
it's unlikely that end-users are leveraging this because it is not
exposed via broker.xml. The JGroups XML configuration has been around
for a long time, is widely adopted, and is still supported. I expect
most (if not all) users are using this. However, a handful of tests
needed to be updated and/or removed to deal with this absence.

Some protocols and/or protocol properties are no longer supported. This
means that users may have to change their JGroups stack configurations
when they upgrade. For example, our own clustered-jgroups example had to
be updated or it wouldn't run properly.
2022-02-04 13:47:11 -05:00
Robbie Gemmell f4de5c46c0 ARTEMIS-3559: update to Netty 4.1.72 (and netty-tcnative to 2.0.46) 2021-12-14 09:09:34 -05:00
Clebert Suconic bfc10dcf8b ARTEMIS-3546 Jakarta javax.json incompability on jakarta all client
Domenico Bruscino provided the JSON Wrapper used here. Thanks Domenico!
2021-11-19 13:20:38 -05:00
Domenico Francesco Bruscino 8e92fd0f51 ARTEMIS-3559 Update netty version to 4.1.70.Final 2021-11-09 10:08:02 +01:00
gtully df2c4e80e4 Revert "ARTEMIS-3221 - revert changes to artemis-openwire-client feature, it is not jakarta ready"
This reverts commit 6e888be70a.
2021-10-13 17:36:45 +01:00
gtully 6e888be70a ARTEMIS-3221 - revert changes to artemis-openwire-client feature, it is not jakarta ready 2021-10-12 17:03:20 +01:00
Francesco Nigro 536271485f ARTEMIS-2716 Pluggable Quorum Vote 2021-08-05 14:18:20 -04:00
Domenico Francesco Bruscino b4789a894f ARTEMIS-3221 Migrating to Jakarta EE 8 artifacts 2021-04-09 11:49:59 -04:00
Domenico Francesco Bruscino dbebf68ae1 ARTEMIS-3165 Update karaf version to 4.3.0 2021-03-08 10:18:52 -05:00
Domenico Francesco Bruscino ba2b891b63 ARTEMIS-3060 Upgrade to Guava 30.1 2021-01-11 12:48:40 +01:00
Domenico Francesco Bruscino 50f7efcfbe NO-JIRA Split commons.dbcp2.version 2020-10-12 15:17:45 +02:00
franz1981 b4532d944d ARTEMIS-2823 Use datasource with JDBC store db connections fixes
It add additional required fixes:
- Fixed uncommitted deleted tx records
- Fixed JDBC authorization on test
- Using property-based version for commons-dbcp2
- stopping thread pool after activation to allow JDBC lease locks to release the lock
- centralize JDBC network timeout configuration and save repeating it
- adding dbcp2 as the default pooled DataSource to be used
2020-10-06 10:19:06 +02:00
Justin Bertram 90853409a0 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-26 13:36:24 -05:00
brusdev 70a465c398 ARTEMIS-2737 Update apache commons-text version to 1.8 2020-04-25 17:20:55 +02:00
brusdev 431bb87b03 ARTEMIS-2703 Update commons-configuration2 version to 2.7 2020-04-13 10:53:35 -04:00
Andrius Dagys f1474ce7c8 ARTEMIS-1194 Add SOCKS support
Add a Netty socks proxy handler during channel initialisation to allow
Artemis to communicate via a SOCKS proxy. Supports SOCKS version 4a & 5.
Even if enabled in configuration, the proxy will not be used when the
target host is a loopback address.
2020-03-07 21:35:38 +00:00
yang wei 76d420590f ARTEMIS-2399 Improve performance when there are a lot of subscribers 2019-08-19 16:43:44 +01:00
Benjamin Graf e3ec7aa5fd ARTEMIS-2376 Remove guava from artemis-common feature 2019-06-17 22:32:57 -04:00
Justin Bertram 5768f6e2f3 ARTEMIS-2308 Support exporting metrics 2019-05-29 15:07:45 -04:00
Rico Neubauer 6216e81637 ARTEMIS-2269 Using karaf.etc for config location
Karaf config should use predefined etc-dir instead of hard-coded etc
2019-03-12 14:50:31 -04:00
Clebert Suconic 061fb2787e ARTEMIS-1977 Stripping activemq-artemis as a separated proejct 2019-03-07 11:34:15 -05:00
Justin Bertram 4a1fc61fcc ARTEMIS-2243 user/role ops for PropertiesLoginModule via mgmnt 2019-02-07 10:16:01 -05:00
Robbie Gemmell f0bac1bf18 ARTEMIS-1862: fix 'amqpLowCredits' XML config, update related code defaults 2018-05-11 21:07:02 +01:00
jpoth 2394626521 [ARTEMIS-1724] Create Artemis Openwire client Karaf feature 2018-03-05 15:12:23 -06:00
Benjamin Graf 866fb861c8 NO-JIRA: Sync OSGi broker config with latest changes from ARTEMIS-1628 2018-02-16 12:57:55 -06:00
jpoth cef1cc8f8d [ARTEMIS-1630] Create Artemis Client features 2018-01-24 09:43:03 +01:00
Ryan Yeats 59ec22962b ARTEMIS-1443 Fix issue starting artemis in osgi with CORE protocol 2017-10-02 20:30:34 -04:00
Clebert Suconic bb554e5264 ARTEMIS-1397 Removing Netty Copied classes
instead of duplicating a buffer from Netty, this will use an existing Wrapped Unpooled Buffer
Which will in turn use Unsafe Properly.
2017-10-02 17:06:06 -04:00
Michael Andre Pearce 0bc5510059 ARTEMIS-1342: Support Netty Native KQueue on macOS
Add support for KQueue for when server or client runs on macOS. This is inline with the epoll support for linux.
2017-08-09 15:23:16 -04:00
Michael André Pearce 684dd24cc7 ARTEMIS-1335 Update Netty to 4.1.14
Update Netty to 4.1.14
2017-08-09 15:20:49 -04:00
Guillaume Nodet b6dcff039f [ARTEMIS-1196] Fix missing JSON support 2017-06-22 12:16:25 -04:00
Guillaume Nodet 71fc3a8bb5 [ARTEMIS-1197] Add missing role to default OSGi configuration 2017-05-31 11:57:14 -04:00
Guillaume Nodet f46fa8b927 [ARTEMIS-1141] Fix some OSGi metadata issues 2017-05-05 08:18:39 +02:00
Guillaume Nodet 9e165d1733 [ARTEMIS-1141] Validate Karaf features using the karaf plugin 2017-05-03 22:06:32 +02:00
Michael Andre Pearce 40fc2b7721 ARTEMIS-1138 OSGI Netty Epoll Fix
* update qpid jms to 0.22 to pick up epoll change there.
* update netty to 4.1.9 to avoid version issues as qpid also uses.
* add netty-transport-native-epoll bundle to netty-core feature
2017-05-02 13:00:10 -04:00
Justin Bertram d891fa5f83 ARTEMIS-873 update broker configs w/new notation 2017-01-19 11:16:06 -06:00
jbertram 0861be14c1 ARTEMIS-789 Fix various failing tests due to addressing changes 2016-12-09 18:43:15 +00:00
Ryan Yeats fd12266449 ARTEMIS-860 add artemis-openwire protocol to osgi feature and fix bundle issues 2016-11-19 08:55:58 -07:00
Dejan Bosanac 2a47619c4e Netty upgrade OSGi fix 2016-10-11 14:32:10 +02:00
Clebert Suconic 20729e79fd ARTEMIS-752 oops 2016-10-05 14:24:49 -04:00
Clebert Suconic d61c13ed77 NO-JIRA: Improving default configuration from OSGI 2016-10-05 11:40:46 -04:00
Clebert Suconic a838bf0479 ARTEMIS-751 Simplification of the AMQP implementation
Since we don't need client implementations any longer, given the maturity level of
qpid jms, these classes can go, as a result a lot of the interfaces can be removed.

As part of this I am removing proton-plug, and reorganizing the packages in a way I think it
makes more sense and easier to other developers to understand and maintain it.

https://issues.apache.org/jira/browse/ARTEMIS-751
2016-09-27 09:29:40 -04:00