Commit Graph

534 Commits

Author SHA1 Message Date
Justin Bertram 9c8bf2f2ca ARTEMIS-1644 legacy clients can't access resources with old prefixes 2018-01-31 18:13:29 -05:00
Clebert Suconic 5653ec9980 ARTEMIS-1639 Simplifying/fixing test and improving update topology 2018-01-31 18:05:32 -05:00
Howard Gao 1693db0177 ARTEMIS-1639 HornetQClientProtocolManager sending unsupported packet
HornetQClientProtocolManager is used to connect HornteQ servers.
During reconnect, it sends a CheckFailoverMessage packet to the
server as part of reconnection. This packet is not supported by
HornetQ server (existing release), so it will break the backward
compatibility.

Also fixed a failover issue where a hornetq NettyConnector's
ConnectorFactory is serialized to the clients who cannot
instantiate it because class not found exception.
2018-01-31 18:05:32 -05:00
Clebert Suconic 61a1123ee1 ARTEMIS-1613 Integrating JDBC into CLI (create print-data and exp) 2018-01-18 20:55:00 -06: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
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
Ulf Lilleengen af1159a24b ARTEMIS-1598 modify SslHandler name in connector
Use the same "name" when inserting the Netty SslHandler into the
pipeline for both acceptors and connectors.
2018-01-11 09:41:23 -06:00
Stanislav Knot 21b58bfea8 ARTEMIS-1579 browsing messages in hawtio console 2018-01-11 10:56:46 +00:00
Jiri Danek 472e429540 NO-JIRA fix warnings from w3c/link-checker in docs
also update URLs and `s/http/https` in docs wherever possible
2018-01-10 13:07:40 +01: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
Clebert Suconic c8dc7de445 ARTEMIS-1545 Fixing compatibility issues with topic Subscriptions 2018-01-09 10:34:38 -06:00
Clebert Suconic ba9d06ba70 NO-JIRA fixing header copy & paste error 2018-01-09 10:34:38 -06:00
Stanislav Knot c05ec28de2 ARTEMIS-1581 fix handshake-timeout property configurability 2018-01-08 10:28:42 -06:00
art-licis c2a9be9540 NO-JIRA Diverts: documentation & test updates.
Updated documentation & tests with original destination & message ID info.
Javadoc update & typo fix.
2018-01-05 12:52:44 +00: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
Justin Bertram 22276856b9 ARTEMIS-1553 JSON values all being converted to String 2017-12-20 16:02:31 -05:00
Clebert Suconic bccf18fa6f ARTEMIS-1546 Changing version check from 1.4.0 to latest 1.5.5 2017-12-20 15:42:39 -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
Clebert Suconic 8f5b7a1e73 ARTEMIS-1545 Adding HornetQ 2.4.7 on the mesh to validate send-acks 2017-12-19 15:03:04 -05:00
Michael André Pearce 9b982b3e30 ARTEMIS-1545 Support JMS 2.0 Completion Listener for Exceptions 2017-12-19 14:44:58 -05: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
Martyn Taylor 27f448f061 [NOJIRA] Fix checkstyle 2017-12-15 15:36:09 +00:00
gtully 7b3b22d184 [ARTEMIS-1310] [ARTEMIS-1264] - remove some dead code - krb5 login module and jaas callback handler now have the smarts to query netty 2017-12-15 14:31:16 +00:00
Stanislav Knot 736e95c287 ARTEMIS-1537 broker was less strict while reloading configuration 2017-12-12 13:18:41 +00:00
Michael André Pearce fa80536615 ARTEMIS-1550 - Support LVQ for OpenWire
Add support for LVQ, using the same property key as core "_AMQ_LVQ_NAME"
Update current LVQ test case to correctly test OpenWire LVQ.
2017-12-09 15:07:21 +00:00
Howard Gao 2f29933446 ARTEMIS-1540 Missing management annotations
Some of the management operations are not properly annotated.
Also need to add an Operation to list divert names.
2017-12-08 01:18:29 +00:00
Christopher L. Shannon (cshannon) 3d2e24d429 ARTEMIS-1538: Allow trustAll to apply from a connection URI
Previously when configuring a connectionFactory by URI this property was
ignored
2017-12-07 16:48:11 -05:00
saurabhrai 4abca78785 ARTEMIS-1364: Enable internal sorting in hawtio web console 2017-11-29 08:52:33 +00:00
Pat Fox 0e843d1fac ARTEMIS-1520 Adding connection ID into log.tracing
add connection ID to the trace logging output
dealing with reading/writing packets. This helps correlate
the packets read/written to an individual tcp connection
2017-11-28 15:55:48 -05:00
Howard Gao 3c19cc2081 ARTEMIS-1521 Missing Parameter annotations in ActiveMQServerControl
Added missing annotations
Added test
2017-11-28 14:47:36 -05:00
Clebert Suconic 996e5c30c6 ARTEMIS-1517 Clarify SendACK versus confirmationWindowSize
https://issues.apache.org/jira/browse/ARTEMIS-1517
2017-11-21 20:23:39 -05:00
Howard Gao 5fe88e1c66 ARTEMIS-1365 Advisory consumers listed in Console
Openwire clients create consumers to advisory topics to receive
notifications. As a result there are internal queues created
on advisory topics. Those consumer shouldn't be exposed via
management APIs which are used by the Console

To fix that the broker doesn't register any queues from
advisory addresses.

Also refactors a code to remove Openwire specific contants
from AddressInfo class.
2017-11-17 17:39:40 +08:00
Justin Bertram 55d7260a07 ARTEMIS-1510 refactor Maven poms
Clean up unused declared dependencies and undeclared dependencies which
are pulled in transitively.
2017-11-13 17:03:35 -05:00
Erich Duda 5cc8faedd8 ARTEMIS-1506 Synchronization issue during failover in ClientSessionImpl
The temporary deadlock is avoided by removing 'synchronized' from
ClientSessionImpl::getCredits method. As the method uses only
a producerCreditManger, only this object is guarded against
the parallel access.
2017-11-09 11:52:44 -05:00
Erich Duda 5f8cef9865 ARTEMIS-1507 ActiveMQConnectionTimedOutException is thrown even though no timeout expired
When the execution of code jumps out of the while cycle,
it should check whether the blocking-call-timeout expired or not.
If no, ActiveMQUnBlockedException should be thrown
instead of ActiveMQConnectionTimedOutException.
2017-11-07 08:42:58 +01:00
Justin Bertram 8703d9d51d [maven-release-plugin] prepare for next development iteration 2017-11-01 00:38:57 -05:00
Justin Bertram ec63189a0a [maven-release-plugin] prepare release 2.4.0 2017-11-01 00:38:56 -05:00
Justin Bertram a44b9d5edf [maven-release-plugin] prepare for next development iteration 2017-10-31 12:09:43 -05:00
Justin Bertram 34a7431d1b [maven-release-plugin] prepare release 2.4.0 2017-10-31 12:07:55 -05:00
Erich Duda 84fb07be53 ARTEMIS-1484 Live's topology update may be ignored
If the current node has no connector to Live, it is better
to update it from older message than to have none.
2017-10-27 10:48:33 +02:00
Francesco Nigro 09a5d6f1c6 ARTEMIS-1447 JDBC NodeManager to support JDBC HA Shared Store 2017-10-26 15:38:37 -04:00
Timothy Bish 278b84e36c ARTEMIS-1477 Add classifiers to the native transports
The changes to remove netty-all removes the classifiers that add the
dependency to the netty transport that includes the compiled native
library wrapper.  Add those classifiers back in.
2017-10-24 18:43:23 -05:00
Stanislav Knot 6faffd690e ARTEMIS-1420 enforce timeout on network client handshake 2017-10-24 14:28:23 -05:00
ederign1 56e2592e58 [ARTEMIS-1477] Removing netty-all dependency from clients 2017-10-23 20:24:33 -04:00
Christopher L. Shannon (cshannon) b386c7c5ae ARTEMIS-1469 - Add support for trusting any client certificate
Added a new trustAll flag which will support trusting any client
keystore when doing testing against a broker.  This setting should not
be used in production and is strictly for testing.
2017-10-19 08:57:10 -05:00
Howard Gao 312d53d5ab ARTEMIS-1227 Internal properties not removed from messages
In a cluster if a node is shut down (or crashed) when a
message is being routed to a remote binding, a internal
property may be added to the message and persisted. The
name of the property is like _AMQ_ROUTE_TOsf.my-cluster*.
if the node starts back, it will load and reroute this message
and if it goes to a local consumer, this property won't
get removed and goes to the client.

The fix is to remove this internal property before it
is sent to any client.
2017-10-10 09:15:45 +08:00
Michael Andre Pearce 4db8cd54ca ARTEMIS-1446 - Support Transformer configuration by properties
Update Tranformer to be able to handle initiation via propertiers (map<string, string>)
Update Configuration to have more specific transfromer configuration type, and to take properties.
Support back compatibility.
Add AddHeadersTransformer which is a main use case, and can act as example also.
Update Control's to expose new property configuration
Add test cases
Update examples for new transformer config style
2017-10-09 17:29:10 -04:00
Clebert Suconic d190b611be ARTEMIS-1452 Improvements to IO parameters and options
- it is now possible to disable the TimedBuffer
- this is increasing the default on libaio maxAIO to 4k
- The Auto Tuning on the journal will use asynchronous writes to simulate what would happen on faster disks
- If you set datasync=false on the CLI, the system will suggest mapped and disable the buffer timeout

This closes #1436

This commit superseeds #1436 since it's now disabling the timed buffer through the CLI
2017-10-09 14:32:04 -04:00
Clebert Suconic 484e939698 NO-JIRA: Speed up cleanupThreads for testsuite 2017-10-09 14:32:03 -04:00
Jeff Mesnil 1bb710cd93 [ARTEMIS-1448] Fix Core to JMS conversion
priority is stored as a byte in the ICoreMessage's map.
It is stored then in a int when it is converted to JMS (as JMSPriority
header is an Integer).

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1448
2017-10-04 16:47:00 +02:00
Michael Andre Pearce b53b3acdb4 ARTEMIS-1439 Upgrade Netty to 4.1.16
Upgrade netty.
Remove tacticle fix for https://issues.apache.org/jira/browse/ARTEMIS-1099
as now fixed/handled upstream in netty from 4.1.16 https://github.com/netty/netty/issues/7150
2017-09-28 13:51:00 -05:00
Justin Bertram abcf4b747e ARTEMIS-1428 support max frame payload length for STOMP websocket 2017-09-26 15:17:07 -04:00
Pat Fox 50fcd48e28 ARTEMIS-1433 adding AddressMemoryUsage() and AddressMemoryUsagePercentage() to ActiveMQServerControl 2017-09-25 10:37:16 -04:00
Jeff Mesnil 0010b0a090 [ARTMIS-1431] Adapt transport configuration in ClientProtocolManagerFactory
add the adaptTransportConfiguration() method to the
ClientProtocolManagerFactory so that transport configurations used by
the ClientProtocolManager have an opportunity to adapt their transport
configuration.

This allows the HornetQClientProtocolManagerFactory to adapt the
transport configuration received by remote HornetQ broker to replace the
HornetQ-based NettyConnectorFactory by the Artemis-based one.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1431
2017-09-25 10:33:56 -04:00
Timothy Bish 8dddc7370c ARTEMIS-1395 Clean up toString code
Clean up toString code and properly log error message.
2017-09-08 12:44:07 -04:00
Francesco Nigro 35c3475092 ARTEMIS-1401 Numerical overflow fix when using System::nanoTime 2017-09-07 10:40:14 -04:00
Martyn Taylor 16dfd777b8 ARTEMIS-1387 Fix AMQPtoMQTT and Link route issues 2017-09-06 11:21:56 +01:00
Clebert Suconic c8982d775b [maven-release-plugin] prepare for next development iteration 2017-09-05 17:03:48 -04:00
Clebert Suconic 84d5ac65b4 [maven-release-plugin] prepare release 2.3.0 2017-09-05 17:03:37 -04:00
Pat Fox 4618b192c2 ARTEMIS-1381 add JMX operation removeAllMessages() to the queue
fix checkstyle trailing spaces
2017-09-01 00:55:07 +02:00
Clebert Suconic ed1b268d42 [maven-release-plugin] prepare for next development iteration 2017-08-31 13:48:09 -04:00
Clebert Suconic 21f2a4a52c [maven-release-plugin] prepare release 2.3.0 2017-08-31 13:47:57 -04:00
Clebert Suconic 6fda75a9fc ARTEMIS-1297 Load balance or redistribution of AMQP Messages 2017-08-29 12:56:15 -05:00
Clebert Suconic f2d74e7a43 ARTEMIS-1367 Moving CriticalAnalyzerPolicy 2017-08-24 18:08:01 -04:00
Francesco Nigro 249745506e ARTEMIS-1367 Add LOG to the Critical Analyzer policies 2017-08-22 17:37:01 +02:00
Clebert Suconic ce6942a9aa ARTEMIS-1353 Initial replication of large messages out of executor
This is based on the work @jbertram made at the github pr #1466 and the discussions we had there
2017-08-18 16:19:25 -04:00
Andy Taylor 4ee9580e69 ARTEMIS-1350 - Added close button to console for client objs
https://issues.apache.org/jira/browse/ARTEMIS-1350
2017-08-18 13:55:37 +01:00
Martyn Taylor bb3965b7f7 ARTEMIS-1349 Add management views for client objects 2017-08-17 10:44:41 +01:00
Michael Andre Pearce 5793dbaa3c ARTEMIS-1342: Support Netty Native KQueue on macOS - Logging fix
Correct the logging id to correct matching id for level.
Correct remoting threads prop name to begin with lower case.
2017-08-10 02:55:30 +01: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
Clebert Suconic 7b5d9f120c ARTEMIS-1308 Removing start/endcall around commit
this issue many warning around the testsuite around MessageListeners
it's valid to call the commit from a different thread on this case.
2017-08-09 15:18:54 -04:00
gtully 9fedb47c40 [ARTEMIS-1310] [ARTEMIS-1264] consolidate configuration to require login configuration scope 2017-08-08 13:28:50 -04:00
gtully ca7197b5c3 [ARTEMIS-1310] add amqp sasl gssapi mechanism support
delegate to the jdk saslServer. Allow acceptor configuration of supported mechanismis; saslMechanisms=<a,b>
and allow login config scope for krb5 to be configured via saslLoginConfigScope=x
2017-08-08 13:28:50 -04:00
Michael Andre Pearce 7b40abead9 ARTEMIS-1308: Make acknowlegde in AcitveMQMessage non blocking
Allow commit within the acknowledge to be non blocking (batch) this toggles the on the existing blockonacknowlegde config.
2017-08-08 10:07:15 -04:00
Clebert Suconic f16af75354 ARTEMIS-1324 Deadlock detection and health check of critical components 2017-08-07 18:40:03 -04:00
Justin Bertram b6b8fa411f ARTEMIS-1322 ServerLocator option to ignore topology for load-balancing 2017-08-04 13:56:30 -05:00
Howard Gao 613b459c52 ARTEMIS-1315 Client disconnection may cause consumer to hang
When calling a consumer to receive message with a timeout
(receive(long timeout), if the consumer's buffer is empty, it sends
a 'forced delivery' the waiting forever, expecting the server to
send back a 'forced delivery" message if the queue is empty.

If the connection is disconnected as the arrived 'forced
delivery' message is corrupted, this 'forced delivery' message
never gets to consumer. After the session is reconnected,
the consumer never knows that and stays waiting.

To fix that we can send a 'forced delivery' to server right
after the session is reconnected.
2017-08-02 12:48:43 -04:00
Dmitrii Tikhomirov bef3864c72 [ARTEMIS-1311] Log messages without prefixed id code in artemis-core-client 2017-07-31 12:51:15 -04:00
Clebert Suconic 7bf8e4e890 ARTEMIS-1305 Server Frozen during shutdown if RA is retrying 2017-07-25 22:33:55 -04:00
Clebert Suconic fdad83be22 [maven-release-plugin] prepare for next development iteration 2017-07-24 21:21:18 -04:00
Clebert Suconic 71b1cc2a20 [maven-release-plugin] prepare release 2.2.0 2017-07-24 21:21:06 -04:00
Clebert Suconic 50a900c04b ARTEMIS-1304 Message loss on Commmit timeout during failover 2017-07-24 20:23:56 -04:00
Francesco Nigro fdbf4f450a ARTEMIS-1301 Network failures recognition on backpressure while streaming large messages 2017-07-20 10:33:04 +01:00
Martyn Taylor e742de7d6e ARTEMIS-1290 QueueQuery add prefix on address 2 2017-07-18 16:16:42 -04:00
Martyn Taylor 34df3afe0c Revert "ARTEMIS-1290 QueueQuery add prefix on address"
This reverts commit 44506f2258.
2017-07-18 16:16:42 -04:00
Andy Taylor 6f140897c6 ARTEMIS-1296 - fix quorum vote
Add a check on top of just being able to connect to a live broker

https://issues.apache.org/jira/browse/ARTEMIS-1296
2017-07-18 08:10:11 +01:00
Martyn Taylor 44506f2258 ARTEMIS-1290 QueueQuery add prefix on address 2017-07-17 10:31:20 -04:00
Clebert Suconic f18b4ee0c9 ARTEMIS-1287/ARTEMIS-1292 Complete Page on the Journal
fixing PagingTest.testDeletePhysicalPages
2017-07-14 15:04:45 -04:00
Jiri Danek 3e1237c1eb NO-JIRA fix few typos and a docstring 2017-07-11 19:34:06 -04:00
Clebert Suconic 36357e4556 ARTEMIS-1282 ClientSession.ceateQueue (String) method is using temporary queues 2017-07-11 19:24:22 -04:00
Clebert Suconic 7fd17f407f ARTEMIS-1269 Simple Actor to replace certain executions
This is replacing an executor on ServerSessionPacketHandler
by a this actor.

This is to avoid creating a new runnable per packet received.

Instead of creating new Runnable, this will use a single static runnable
and the packet will be send by a message, which will be treated by a listener.

Look at ServerSessionPacketHandler on this commit for more information on how it works.
2017-07-11 14:22:36 -04:00
Jiri Danek ad228e202f NO-JIRA: Addressing some deprecated usage on the codebase
- PROTOCOL_PROP_NAME
- ConnectionLifeCycleListener
- GENERIC_IGNORED_FILTER
- HttpHeaders.Names
- HttpHeaders.Names and similar
2017-07-10 14:06:07 -04:00
gtully d4150be0d9 ARTEMIS-1264 allow role mapping via chained login modules
Add krb5sslloginmodule that will populate userPrincipal that can be mapped to roles independently
Generalised callback handlers to take a connection and pull certs or peerprincipal based on
callback. This bubbled up into api change in securitystore and security manager
2017-07-06 23:41:02 -04:00
gtully cda1e018e1 ARTEMIS-1264 Foundation work for authentication with Kerberos using KRB_ cypher suites.
Core client with netty connector and acceptor doing kerberos
jaas.doAs around sslengine init such that the SSL handshake can do kerberos ticket
generaton and validation.
The kerberos authenticated user is then validated with the security manager before
being populated into the message userId.
The feature is enabled with the kerb5Config property. When lowercase it is the
principal. With a leading uppercase char it is the login.config entry to use.
2017-07-06 11:30:25 -04:00
Daniel Kulp faae59e6d4 [ARTEMIS-565] Remove json.org stuff from license files as we have not depended on that for almost a year 2017-07-05 15:47:06 -04:00
Clebert Suconic 387fca584e ARTEMIS-1269 replication won't finish synchronization 2017-07-01 00:48:33 -04:00