Commit Graph

846 Commits

Author SHA1 Message Date
Francesco Nigro 3f646474c2 ARTEMIS-1622 Reduce memory footprint of QueueImpl
LinkedListImpl is turned into an optionally intrusive linked list by allowing message references to extend Node.
2018-01-22 17:30:45 +00:00
Howard Gao 98ce31bf58 ARTEMIS-1621 Make producerWindowSize configurable on clusterconnection bridges
The cluster connection bridge hard codes its producerWindowSize to -1
(meaning no producer flow control) even if you configure it otherwise.
2018-01-22 11:27:59 -06:00
Christopher L. Shannon (cshannon) bc38d7ce32 ARTEMIS-1619 - Add plugin support for address lifecyle
Adding callbacks to the plugin API for address creation, update and
removals
2018-01-18 21:01:41 -06:00
Clebert Suconic 61a1123ee1 ARTEMIS-1613 Integrating JDBC into CLI (create print-data and exp) 2018-01-18 20:55:00 -06:00
shoukun c4bfb9521f ARTEMIS-1570 Flush appendExecutor before take journal snapshot
When live start replication, it must make sure there is
no pending write in message & bindings journal, or we may
lost journal records during initial replication.

So we need flush append executor after acquire StorageManager's
write lock, before Journal's write lock.
Also we set a 10 seconds timeout when flush, the same as
Journal::flushExecutor. If we failed to flush in 10 seconds,
we abort replication, backup will try again later.

Use OrderedExecutorFactory::flushExecutor to flush executor
2018-01-18 13:16:27 -05:00
Clebert Suconic 9dbc5dc409 ARTEMIS-1577 Address-settings policies not working with older clients
This closes #1744
2018-01-18 10:18:39 -05:00
Howard Gao bb84f67936 ARTEMIS-1600 Support masked passwords in bootstrap.xm and login.config
We provide a feature to mask passwords in the configuration files.
However, passwords in the bootstrap.xml (when the console is
secured with HTTPS) cannot be masked. This enhancement has
been opened to allow passwords in the bootstrap.xml to be masked
using the built-in masking feature provided by the broker.

Also the LDAPLoginModule configuration (in login.config) has a
connection password attribute that also needs this mask support.

In addition the ENC() syntax is supported for password masking
to replace the old 'mask-password' flag.
2018-01-18 08:59:00 -06:00
Michael André Pearce fd0ba69793 ARTEMIS-1606 - Change AddressInfo RoutingType Set to use EnumSet
Change all use from Set<RoutingType> to EnumSet<RoutingType>
Deprecating any old exposed interfaces but keeping for back compatibility.
Address info to avoid iterator on getRoutingType hotpath, like wise can be avoided where single RoutingType is passed in.
2018-01-18 13:36:09 +01:00
Christopher L. Shannon (cshannon) 67a9220d24 ARTEMIS-1610 Properly remove an address from the WildcardAddressManager
When an address is removed from the address manager its linked addresses
also need to be removed if there are no more bindings for the address.
Also adding a null check on bindings of linked addresses when a new
binding is added
2018-01-17 13:20:04 -05:00
Martyn Taylor f09bde07df ARTEMIS-1612 Fix message redistribution for prefixed addresses 2018-01-17 11:19:07 -05:00
Francesco Nigro a3c418183a ARTEMIS-1586 Added String Pools unit tests
- SimpleString::toSimpleString String pooling test
- ByteBufSimpleStringPool test
- StringSimpleStringPool test
- ByteBufStringValuePool test
2018-01-17 09:33:41 +01:00
Michael André Pearce 98028cdecc ARTEMIS-1586 Refactor to make more generic
* Move byte util code into ByteUtil
* Re-use the new equals method in SimpleString
* Apply same pools/interners to client decode
* Create String to SimpleString pools/interners for property access via String keys (producer and consumer benefits)
* Lazy init the pools on withing the get methods of CoreMessageObjectPools to get the specific pool, to avoid having this scattered every where.
* reduce SimpleString creation in conversion to/from core message methods with JMS wrapper.
* reduce SimpleString creation in conversion to/from Core in OpenWire, AMQP, MQTT.
2018-01-17 09:33:41 +01:00
Francesco Nigro 8d776eddfc ARTEMIS-1586 Reduce GC pressure due to String allocations on Core protocol
The commit contains:
- a general purpose interner implementation
- StringValue/SimpleString internrs specializations
- TypedProperties keys/values string interning for SessionSendMessage decoding
2018-01-17 09:33:41 +01:00
Jeff Mesnil 938fbd81cb [ARTEMIS-1590] Properties-based SQLProvider
Replace GenericSQLProvider and other implementation by a single
PropertySQLProvider that uses properties to define SQL queries.

SQL queries are loaded from the journal-sql.properties file.
Queries specific to a DB dialect can be specified by adding a suffix to
the key of the generic property.
For example, the generic property to create a file Table is:

create-file-table = CREATE TABLE %s (ID BIGINT AUTO_INCREMENT, ...)

This property can be customized for Derby by using the
create-file-table.derby  property:

create-file-table.derby=CREATE TABLE %s (ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),...

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1590
2018-01-12 14:50:21 +01:00
gtully 49b7863cf9 [ARTEMIS-1597] validate non null callback principal for login success 2018-01-11 11:46:09 -06:00
Stanislav Knot 21b58bfea8 ARTEMIS-1579 browsing messages in hawtio console 2018-01-11 10:56:46 +00:00
Justin Bertram 7c3e78ca87 ARTEMIS-1594 don't log dlq/expiry warn for internal q 2018-01-10 11:43:06 -05:00
Michael André Pearce 9c18dd04df ARTEMIS-1585 - Log connector details on start
Log connector details when they start. 
This is similar to that of acceptors, and helps when any issues later.
2018-01-09 12:26:56 -06:00
Francesco Nigro e360f85c1b ARTEMIS-1593 RemotingConnectionImpl leaks
FileNameKey was holding a reference to PropertiesLoader.this due to its inner class definition, causing RemotingConnectionImpl to leak through a long chain of dependencies rooted in a PropertiesLoader's subclass property ie PropertiesLoaderModule::callbackHandler.
FileNameKey is turned into a inner static class to break this hidden dependency.
2018-01-09 15:26:11 +00:00
Pat Fox d95757057e ARTEMIS-1575 configure custom broker plugins with key/value properties.
The properties are read and passed into the the broker plugin's init(Map<String,String>)
2018-01-04 14:27:41 -06:00
raul.valdoleiros 8c0e1e96ed ARTEMIS-1548 Support CRL
Add support for CRL in client authentication
2018-01-04 12:56:25 -06:00
Michael André Pearce 035936cdb8 ARTEMIS-1569 - Queue - User Enhancement
Expose User associated with creating Queue on JMX QueueControl (as attribute) 
Allow setting of the user to associate with creating the queue when configured in broker.xml (before only if created over wire is it possible to set the user)
2017-12-21 15:38:17 +00:00
Clebert Suconic 515560be2a NO-JIRA Fixing SystemPropertyOverrideTest 2017-12-21 07:22:51 -05:00
Francesco Nigro 170e89f9fc ARTEMIS-1541 Make the JDBC Node Manager more resilient on failures
In order to make the JDBC Node Manager more resilient has been implemented:
- recovering with fixed number of retries during the NodeId setup + unrecoverable failure otherwise
- unrecoverable fail on exceptions while renewing a lease lock

In addition, in different parts of these critical processes are added more log informations to help diagnose.
2017-12-20 16:03:19 -05:00
Clebert Suconic 7514e91ed1 Revert "ARTEMIS-1545 Support JMS 2.0 Completion Listener for Exceptions"
Revert "ARTEMIS-1545 Adding HornetQ 2.4.7 on the mesh to validate send-acks"

I'm reverting this as the testsuite is broken..
We will send it back once worked out.

This reverts commit 8f5b7a1e73.
This reverts commit 9b982b3e30.
2017-12-19 17:03:00 -05:00
Michael André Pearce 9b982b3e30 ARTEMIS-1545 Support JMS 2.0 Completion Listener for Exceptions 2017-12-19 14:44:58 -05:00
Martyn Taylor 3ba50574fb ARTEMIS-1565 Fix server schema 2017-12-19 14:01:46 +00:00
Andy Taylor 6067a285bd https://issues.apache.org/jira/browse/ARTEMIS-1565
ARTEMIS-1565 - replica should retry quorum vote

https://issues.apache.org/jira/browse/ARTEMIS-1565
2017-12-19 11:30:20 +00:00
Clebert Suconic dbe575a0c1 ARTEMIS-1546 Fixing body compatibility issue by recast body towards 1.4
https://issues.apache.org/jira/browse/ARTEMIS-1546

Recasting the body as 1.x format when there's a 1.x in use at the other size of the wire
2017-12-18 22:04:38 -05:00
Jiri Danek 0a2e143de5 ARTEMIS-1463 Fix broker's mBean domain name 2017-12-18 11:30:18 +00:00
Martyn Taylor 0e3468cefb ARTEMIS-1543 Fix Quorum Vote with remain live setting 2017-12-18 10:36:11 +00:00
raul.valdoleiros 46b642447c ARTEMIS-1523 wildcard binding configured wrong
Bindings with wildcards are not configured with the proper
message-load-balancing type.
2017-12-12 09:33:00 -06:00
Stanislav Knot 736e95c287 ARTEMIS-1537 broker was less strict while reloading configuration 2017-12-12 13:18:41 +00:00
Pat Fox d7b464cff3 NO-JIRA fixed checkstyle issues and added tests 2017-12-12 13:17:02 +00:00
Michael André Pearce f08da813a1 NO-JIRA fix fieldname regression
Fix field name regression, but ensure predicate and sorting still works.
Remove reflection introduced by new sorting, and rely on field mapping.
2017-12-12 13:17:02 +00:00
Pat Fox b39c556784 NO-JIRA fixed minor regression(reverted JSON field names) and NullPointer in ActiveMQServerControlImpl 2017-12-12 13:17:02 +00:00
todd 4ab664f796 ARTEMIS-1542 - AMQP message cluster-bridging fixi
Fixing and issue where AMQP messages would lose their address when being sent accross a cluster-bridge.
2017-12-11 12:31:54 -05:00
Justin Bertram 84bedaf2e4 ARTEMIS-1547 support referrals in LDAP login module 2017-12-10 21:50:47 +00:00
Michael André Pearce 6aac6d6f4f ARTEMIS-1533 Import subschema's so XMLLINT validates broker.xml 2017-12-05 09:23:17 -06:00
Pat Fox 7d61969795 ARTEMIS-1526 race condition between listConsumers() and closing a Session. When session not found, ignore that consumer and continue. 2017-12-05 09:10:40 -06:00
Stanislav Knot 67fca940d4 ARTEMIS-1530 Fix expiry statistics 2017-11-30 09:59:35 -05:00
Clebert Suconic f9d101d0a1 ARTEMIS-1531 Adding timedbuffer operations on critical analyzer
Also, making TimedBuffer.stop() synchronized to avoid issues during device outages
2017-11-29 18:09:00 -05:00
Clebert Suconic 8b7282d849 ARTEMIS-1529 Fixing Ref count over asynchronous ack 2017-11-29 09:45:09 -05:00
saurabhrai 4abca78785 ARTEMIS-1364: Enable internal sorting in hawtio web console 2017-11-29 08:52:33 +00:00
saurabhrai 6315e3faf0 ARTEMIS-1505: NPE prevents browsing queue with large messages 2017-11-27 15:01:34 -05:00
Pat Fox 4edf6793bb ARTEMIS-1524 avoid null pointer due to race condition in listAddresses(). If address is deleted, ignore that address and continue 2017-11-27 13:05:12 -05:00
Justin Bertram f53e411dad ARTEMIS-1525 refactor embedded examples 2017-11-27 10:55:16 -06:00
Justin Bertram 40aa3f5821 ARTEMIS-1513 fix AMQP + core bridge 2017-11-21 09:44:30 -05:00
Clebert Suconic b27ed5de16 ARTEMIS-1514 Fix File open on Large Message 2017-11-21 09:27:27 -05:00
Martyn Taylor eddb144deb ARTEMIS-1514 Fix read large message into buffer 2017-11-21 13:23:12 +00:00