Commit Graph

897 Commits

Author SHA1 Message Date
Clebert Suconic e1bf8222e7 ARTEMIS-4498 Adding release doc 2024-04-11 10:28:04 -04:00
Justin Bertram 6e3c7e055d
ARTEMIS-4721 fix MQTT link in upgrade instructions 2024-04-11 09:14:04 -05:00
Justin Bertram 221420b0b8
ARTEMIS-4721 mqtt doc fixes 2024-04-11 09:09:37 -05:00
Justin Bertram 638ebbd01e
NO-JIRA fix security doc typo 2024-04-10 10:13:16 -05:00
Justin Bertram d3e5b70d90 ARTEMIS-4715 using # wildcard from OpenWire JMS consumer stopped working 2024-04-09 16:41:28 -04:00
Gary Tully 4d6fc39560 ARTEMIS-4582 doc update to make need to remove auth section of management.xml more clear 2024-04-08 12:13:54 +01:00
Justin Bertram baa8710fa2 ARTEMIS-4712 remove LDAP connection pooling 2024-04-05 09:28:05 -04:00
Justin Bertram 697cebd7dc
NO-JIRA update versions doc for impending release 2024-03-19 15:01:33 -05:00
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
Justin Bertram 661a4e6fdc ARTEMIS-4655 report logging metrics
It may be useful to configure alerts for ERROR or WARN events in the log
which may go unnoticed otherwise.
2024-03-05 09:37:11 +00:00
Justin Bertram b10e752e6e
NO-JIRA add optional metrics doc details 2024-02-28 14:08:20 -06:00
Domenico Francesco Bruscino 29781bd5da ARTEMIS-4586 Auto reload web binding SSL stores on change 2024-02-09 17:20:56 +00:00
Justin Bertram 311e9382a2
NO-JIRA fix STOMP doc formatting 2024-02-08 11:28:10 -06:00
Robbie Gemmell cdd341a1e8 ARTEMIS-4640: move os-maven-plugin extension into a profile, fix artemis-commons reproducibility 2024-02-07 12:03:39 -06:00
Justin Bertram b158a892c9
NO-JIRA small doc clarification 2024-02-07 08:20:07 -06:00
Justin Bertram f91d7c51fd ARTEMIS-4629 fix core bridge docs
This fills in the gaps for some missing parameters in the core bridge
documentation as well as fixes the example so it's actually valid
according to the XSD.
2024-02-02 11:58:36 -06:00
Justin Bertram a60a8a12cf
NO-JIRA fix dead link in doc 2024-01-31 08:43:37 -06:00
Justin Bertram b08602b8d6
NO-JIRA doc spelling fix 2024-01-29 15:10:36 -06:00
Justin Bertram 513b7826a4 ARTEMIS-4532 MQTT-to-core wildcard conversion is broken
Currently when an MQTT topic filter contains characters from the
configured wildcard syntax the conversion to/from this syntax breaks.

For example, when using the default wildcard syntax if an MQTT topic
filter contains a . the conversion from the MQTT wildcard syntax to the
core wildcard syntax and back will result in the `.` being replaced with
a `/.`.

This commit fixes that plus a few other things...

 - Implements proper conversions to/from one WildcardConfiguration to
   another.
 - Refactors the MQTT code which invokes these conversion methods. This
   includes simplifying a lot of test code.
 - Adds lots of tests for everything.
 - Clarifies some variable naming to better distinguish between core and
   MQTT.
2024-01-29 18:35:43 +00:00
Clebert Suconic 590b1c29c6 NO-JIRA Updating versions.adoc. Adding note about examples 2024-01-24 14:07:09 -05:00
Clebert Suconic 6e796ec090 NO-JIRA Updating versions.adoc before a release 2024-01-24 14:00:48 -05:00
Justin Bertram 019fc86138 ARTEMIS-4542 improve MQTT state storage
This commit:

 - Eliminates MQTT session storage on every successful connection.
   Instead data is only written when subsriptions are created or
   destroyed.
 - Adds a configuration property for the storage timeout.
 - Updates the documentation with relevant information.
 - Refactors a few bits of code to eliminate unnecessary variables, etc.
2024-01-22 19:58:07 -06:00
Justin Bertram d77090d38f
[NO-JIRA] clarify versions doc 2024-01-18 10:43:41 -06:00
Justin Bertram bc55928104
NO-JIRA fix formatting in version history doc 2024-01-11 22:43:56 -06:00
Justin Bertram 85b2f4b126 ARTEMIS-3474 replace non-inclusive terms
This commit does the following:

 - Replaces non-inclusive terms (e.g. master, slave, etc.) in the
   source, docs, & configuration.
 - Supports previous configuration elements, but logs when old elements
   are used.
 - Provides migration documentation.
 - Updates XSD with new config elements and simplifies by combining some
    overlapping complexTypes.
 - Removes ambiguous "live" language that's used with regard to high
   availability.
 - Standardizes use of "primary," "backup," "active," & "passive" as
   nomenclature to describe both configuration & runtime state for high
   availability.
2024-01-08 13:32:31 -05:00
Domenico Francesco Bruscino 0b51bcfa52 ARTEMIS-4488 Merge settings with wildcards after literal matches 2024-01-04 14:33:04 +01:00
Justin Bertram 354063f63b
NO-JIRA improve stomp doc formatting 2023-12-20 09:42:19 -06:00
Justin Bertram eca77df78f ARTEMIS-4541 clarify divert docs 2023-12-19 12:33:56 +00:00
Robbie Gemmell bbfd0f8e15 ARTEMIS-4538: use the 'alert style NOTE' to make existing detail stand out more, in common with the ones that follow 2023-12-18 12:11:12 +00:00
Robbie Gemmell b0f817e898 ARTEMIS-4533: some fixups, cleanups, and linking more bits to the examples page of docs 2023-12-18 11:58:26 +00:00
Gary Tully 7a2137f467 ARTEMIS-4528 tls, add support for PEM key store type 2023-12-15 15:52:48 +00:00
Robbie Gemmell 547aa2fba6 ARTEMIS-4533: update CI build, update READMEs/docs to reference examples repo and refresh queue example output, tweak assembly as needed, update release steps 2023-12-14 12:05:52 -05:00
Justin Bertram bd925a7ea5
NO-JIRA clarify logging docs 2023-12-07 23:01:07 -06:00
Robbie Gemmell ad5cf4c28b NO-JIRA: have repo link open in new tab, github security policy blocks it working in the docs iframe 2023-12-07 17:07:06 +00:00
Clebert Suconic 2efc4967b6 ARTEMIS-4495 Improving data retention documentation 2023-12-01 23:51:28 -05:00
Justin Bertram bba832139c ARTEMIS-4514 make Jetty thread pool configurable 2023-11-28 16:45:17 -05:00
Justin Bertram 7c711c04c3 ARTEMIS-4488 support 'literal' address setting match 2023-11-27 14:40:39 -05:00
Justin Bertram 8e68bb1902 ARTEMIS-4501 clean up MQTT subscription queues when session expires 2023-11-27 12:33:35 -05:00
Gary Tully 348763e14a ARTEMIS-4164: add acceptor sslAutoReload option to have the broker watch key and trust store paths for modifications and automatically call reload 2023-11-27 11:26:07 -05:00
Robbie Gemmell 6f14de77be ARTEMIS-4504: add a stop goal that runs the cli script, update examples to use it 2023-11-15 10:02:32 +00:00
Justin Bertram 5e51233df3
NO-JIRA message grouping doc updates for formatting & clarify 2023-11-14 14:21:51 -06:00
Justin Bertram 4252c3384e
NO-JIRA add missing Docker chapter to PDF source 2023-11-14 12:27:31 -06:00
Justin Bertram 5f7faa47cc
NO-JIRA doc syntax/formatting updates 2023-11-07 16:55:55 -06:00
Robbie Gemmell 7ccc4b3a8f ARTEMIS-4492: update logging docs to match current config after ARTEMIS-4428 2023-11-07 12:36:32 +00:00
Robbie Gemmell 808272fc63 ARTEMIS-4478: have the docs reference the version used by the release 2023-11-07 12:12:14 +00:00
Robbie Gemmell 66dd52fcf2 ARTEMIS-4490: update to SLF4J 2.0.9 2023-11-03 17:55:48 +00:00
Erwin Dondorp a6b107dd8a ARTEMIS-4486 add missing bits from metrics documentation 2023-11-03 09:30:32 +01:00
Robbie Gemmell 544b81595f NO-JIRA: update user-manual versions page for 2.31.2 2023-10-27 14:01:54 +01:00
Clebert Suconic 4fc35035d0 Update versions.adoc 2023-10-25 14:31:24 -04:00
Justin Bertram 0cdbd2b5ab
NO-JIRA fix AsciiDoc syntax for wildcard doc 2023-10-12 10:56:41 -05:00
Domenico Francesco Bruscino 7a55b1d613 ARTEMIS-4444 Support custom directories to add runtime dependencies
The system property `artemis.extra.libs` is a comma separated list of
directories that contains jar files, i.e.
```
-Dartemis.extra.libs=/usr/local/share/java/lib1,/usr/local/share/java/lib2
```
The environment variable `ARTEMIS_EXTRA_LIBS` is a comma separated list of
directories that contains jar files and is ignored if the system property
`artemis.extra.libs` is defined, i.e.
```
export ARTEMIS_EXTRA_LIBS=/usr/local/share/java/lib1,/usr/local/share/java/lib2
```
2023-10-03 08:54:27 -04:00
Nandor Soma Abonyi 8d48f8a373 ARTEMIS-4449 Fix url parameter separator in acceptor configuration 2023-10-02 09:01:10 -05:00
Clebert Suconic 7c9a15e9b4 ARTEMIS-4447 Add paging prefetch parameters into address settings
we are adding new attributes to determine how many messages (or bytes) we are reading from paging into Queue memory.
2023-09-29 18:43:23 -04:00
Justin Bertram 1c716bd97c
NO-JIRA handful of CLI doc improvements 2023-09-28 16:58:14 -05:00
Justin Bertram 545858bc1d
NO-JIRA fixup versions doc 2023-09-28 11:45:45 -05:00
Justin Bertram f565e1318e ARTEMIS-4441 add Docker chapter to User Manual 2023-09-26 15:54:13 -05:00
Clebert Suconic 2b939edd67 NO-JIRA small versions.adoc update 2023-09-19 14:04:48 -04:00
Clebert Suconic 49c612eb80 Updating 2.31.0 release information on doc 2023-09-14 16:40:04 -04:00
Clebert Suconic 5e75face58 Updating 2.31.0 release information 2023-09-14 16:14:55 -04:00
haanhvu 6ec2131e32 ARTEMIS-3057 Add min-disk-free feature
To check if the remaining disk is enough. Alternative to max-disk-usage.
2023-09-14 17:20:43 +01:00
Justin Bertram af2672e79a ARTEMIS-966 MQTT subscription state isn't durable
Durable subscrption state is part of the MQTT specification which has
not been supported until now. This functionality is implemented via an
internal last-value queue. When an MQTT client creates, updates, or
adds a subscription a message using the client-ID as the last-value is
sent to the internal queue. When the broker restarts this data is read
from the queue and populates the in-memory MQTT data-structures.
Therefore subscribers can reconnect and resume their session's
subscriptions without have to manually resubscribe.

MQTT state is now managed centrally per-broker rather than in the
MQTTProtocolManager since there is one instance of MQTTProtocolManager
for each acceptor allowing MQTT connections. Managing state per acceptor
would allow odd behavior with clients connecting to different acceptors
with the same client ID.

The subscriptions are serialized as raw bytes with a "version" byte for
potential future use, but I intentionally avoided adding complex
scaffolding to support multiple versions. We can add that complexity
later if necessary.

Some tests needed to be changed since instantiating an MQTT protocol
manager now creates an internal queue. A handful of tests assume that no
queues will exist other than the ones they create themselves. I updated
the main test super-class so that an MQTT protocol manager is not
automatically instantiated when configuring a broker for in-vm support.
2023-09-13 11:28:53 +01:00
Justin Bertram e7a27f0342
NO-JIRA a few small address-settings doc fixes 2023-09-12 22:57:27 -05:00
Clebert Suconic 6a8cd175dc ARTEMIS-4401 improving JDBC Performance with Paging by a significant factor 2023-09-12 08:34:09 -04:00
Timothy Bish d830f04de8 ARTEMIS-4419 Add federation support to AMQP broker connections
Allows federation of addresses and queues over an outbound AMQP broker
connection and provide configuration via XML or broker propeties.
2023-09-11 16:38:36 -04:00
Justin Bertram f860be432e
NO-JIRA small doc fix for HTTP 2023-09-11 15:24:03 -05:00
Clebert Suconic 78a3e66f3d ARTEMIS-4372 Renaming --staticCluster as --static-cluster 2023-09-01 11:53:58 -04:00
Justin Bertram 444d5da72b
NO-JIRA add another curl management example 2023-08-04 12:09:49 -05:00
Mike Artz c5f0e3400c ARTEMIS-4159 Support duplicate cache size configuration per address
This commit introduces support for configuring a specific Duplicate ID cache size per address in the Artemis server. Previously, there was only a global setting for the ID cache size, but now each address can have its own cache size.

The changes include the addition of a new configuration property id-cache-size in the Artemis server configuration file. This property can now be specified under each address setting in the configuration file, and its value will determine the Duplicate ID cache size for that particular address. If the id-cache-size property is not specified for an address, it will use the global setting.

The test cases have been updated to cover this new functionality, and integration test have been added to verify that address-specific cache sizes work as expected.

Documentation has been added to address-settings.adoc, configuration-index.adoc and duplicate-detection.adoc
2023-08-04 10:25:08 -05:00
Robbie Gemmell 39a13aa07c ARTEMIS-4383: fix a couple of headings butchered in the migration 2023-08-03 16:27:59 +01:00
Robbie Gemmell f6e647f939 ARTEMIS-4383: add RAT config to fix the build, and LICENSE updates to reflect the new files 2023-08-03 13:04:47 +01:00
Justin Bertram 3a4b421d2e ARTEMIS-4383 migrate user docs to AsciiDoc
Markdown, which is currently used for user-facing documentation, is good
for a lot of things. However, it's not great for the kind of complex
documentation we have and our need to produce both multi-page HTML and
single-page PDF output via Maven.

Markdown lacks features which would make the documentation easier to
read, easier to navigate, and just look better overall.

The current tool-chain uses honkit and a tool called Calibre. Honkit is
written in TypeScript and is installed via NPM. Calibre is a native tool
so it must be installed via an OS-specific package manager. All this
complexity makes building, releasing, uploading, etc. a pain.

AsciiDoc is relatively simple like Markdown, but it has more features
for presentation and navigation not to mention Java-based Maven tooling
to generate both HTML and PDF. Migrating will improve both the
appearance of the documentation as well as the processes to generate and
upload it.

This commit contains the following changes:
 - Convert all the Markdown for the User Manual, Migration Guide, and
   Hacking guide to AsciiDoc via kramdown [1].
 - Update the `artemis-website` build to use AsciiDoctor Maven tooling.
 - Update `RELEASING.md` with simplified instructions.
 - Update Hacking Guide with simplified instructions.
 - Use AsciiDoc link syntax in Artemis Maven doc plugin.
 - Drop EPUB & MOBI docs for User Manual as well as PDF for the Hacking
   Guide. All docs will be HTML only except for the User Manual which
   will have PDF.
 - Move all docs up out of their respective "en" directory. This was a
   hold-over from when we had docs in different languages.
 - Migration & Hacking Guides are now single-page HTML since they are
   relatively short.
 - Refactor README.md to simplify and remove redundant content.

Benefits of the change:
 - Much simplified tooling. No more NPM packages or native tools.
 - Auto-generated table of contents for every chapter.
 - Auto-generated anchor links for every sub-section.
 - Overall more appealing presentation.
 - All docs will use the ActiveMQ favicon.
 - No more manual line-wrapping! AsciiDoc recommends one sentence per
   line and paragraphs are separated by a blank line.
 - AsciiDoctor plugins for IDEA are quite good.
 - Resulting HTML is less than *half* of the previous size.

All previous links/bookmarks should continue to work.

[1] https://github.com/asciidoctor/kramdown-asciidoc
2023-08-02 16:21:06 -04:00
Clebert Suconic 93ee61e35c ARTEMIS-4372 Implement Pico-cli and script auto-complete
ARTEMIS-4375 Implement artemis shell using JLine3 integrated with auto-completion from picocli

This commit involves two JIRAs. One is adding PicoCLI and the next is Using JLine3 and implement a shell.
I have tried to keep these commits separate but these changes became interdependent hence the two JIRAs are squashed in this commit.
2023-07-31 10:40:27 -04:00
Robbie Gemmell 6442270e2d ARTEMIS-4369: add clarifying note to docs around transport options for broker-connections 2023-07-21 10:44:14 +01:00
Justin Bertram f1ebdf1925
NO-JIRA 2.30.0 release notes 2023-07-20 14:10:21 -05:00
Justin Bertram 4b91d1d57e ARTEMIS-4318 migrate to Airline 2
The "Airline" library we're currently using is deprecated according the
GitHub project - https://github.com/airlift/airline. It recommends using
either Airline 2 or Picocli. The former offers the simplest migration
path as it's almost completely compatible with the current code. This
commit implements that migration.
2023-07-06 09:36:09 -04:00
iamgd67 e15bc1b35f NO-JIRA: fix typos/wording in key-differences.md and authentication.md
This closes #4525
2023-06-26 09:56:23 +01:00
Domenico Francesco Bruscino 137e1ed52d ARTEMIS-4333 Document web SNI settings 2023-06-26 09:48:02 +01:00
Justin Bertram b316272e14 ARTEMIS-4311 fix typo 2023-06-20 17:50:19 +01:00
Gary Tully 9b5dbf4265 ARTEMIS-4314 - fix typo in doc 2023-06-16 15:55:38 +01:00
Gary Tully a8b4ee1992 ARTEMIS-4314 support queue federation batchOnCapacity via consumerWindowSize=0 2023-06-16 15:44:51 +01:00
Clebert Suconic 1fe3a9fb6e 2.29.0 release notes update 2023-06-14 18:12:06 -04:00
a181321 582a689cdb ARTEMIS-4186 Ability to set compressionLevel for compressLargeMessages 2023-06-14 04:42:38 -07:00
Domenico Francesco Bruscino bd3c057559 ARTEMIS-4251 Support CORE client failover to other live servers
Improve the CORE client failover connecting to other live servers when all
reconnect attempts fails, i.e. in a cluster composed of 2 live servers,
when the server to which the CORE client is connected goes down the CORE
client should reconnect its sessions to the other liver broker.
2023-06-13 08:24:02 -07:00
Justin Bertram c96a074b53 ARTEMIS-4292 support more Micrometer system metrics
This commit exposes Micrometer's system metrics for:
 - file descriptors
 - processor
 - uptime
2023-06-13 04:58:59 -07:00
Justin Bertram c4501f6793 ARTEMIS-4294 support text-encoded WebSocket frames 2023-05-31 16:34:02 -05:00
Justin Bertram 903e5888af ARTEMIS-4238 deprecate transactionTimeout activation config prop 2023-05-31 15:16:34 -05:00
Justin Bertram e7de2c7001 ARTEMIS-4297 allow regex in no-cache exception config 2023-05-31 11:37:28 -07:00
Clebert Suconic e719622de5 ARTEMIS-4285 Limit number of redelivery records 2023-05-19 13:59:28 -07:00
Gary Tully d2abc56f56 ARTEMIS-4280 - map roles from review group info, optional roles properties file 2023-05-17 15:16:37 +01:00
Robbie Gemmell 7f4cd2ac56 NO-JIRA: add note that the -all clients cant be embedded with the broker, which uses the regular clients 2023-05-15 17:12:14 +01:00
Justin Bertram c2bada6a77 ARTEMIS-4267 original exception lost for NoCacheLoginException
When skipping the authentication cache details for the original
exception are not logged.

This commit ensures these details are logged and adopts the
ExceptionUtils class from Apache Commons Lang in lieu of the previous
custom implementation.
2023-05-08 17:01:35 +02:00
Gary Tully c5d872575e ARTEMIS-4256 - support removal of configuration via properties 2023-05-05 11:58:15 +01:00
Justin Bertram 6254c140e3 ARTEMIS-4212 handful of updates
- fix syntax used for 'addresses' CLI option
 - update release notes
 - enforce new semantics on parsing & add test
2023-05-04 12:25:15 -07:00
Justin Bertram aad3d0b90d ARTEMIS-4262 clarify wildcard syntax documentation 2023-04-27 19:26:03 +02:00
Domenico Francesco Bruscino cc9db6b2f7 ARTEMIS-4244 Set web config using system properties 2023-04-26 17:07:32 -05:00
Robbie Gemmell 5035bd2c61 ARTEMIS-4210: undo earlier doc change missed by 8ba9727b78 2023-03-31 12:10:03 +01:00
Justin Bertram 8ba9727b78 ARTEMIS-4210 refactor connection audit logging
This commit fixes the following things:

 - Moves connection audit logging to the resource audit logger instead
   of using a dedicated logger as that would adversely impact upgrading
   users, and arguably didn't make sense in the first place.
 - Mitigates an potential NPE w.r.t. connection ID.
 - Updates the "dummy" management connection to return a valid
   connection ID.
2023-03-30 14:37:17 -07:00
Justin Bertram d2e5ddfe86 ARTEMIS-4210 audit connection creation & destruction 2023-03-28 16:21:04 -05:00
Justin Bertram fc8d884118
NO-JIRA add a few missing identifiers to the filter docs 2023-03-16 13:37:09 -05:00