You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2021/08/06 12:34:40 UTC

[activemq-artemis] 03/03: This closes #3634

This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git

commit ce87777ead9b5ed67daf85c1e2fc67c44eb862e1
Merge: 49e3843 3555dd7
Author: Clebert Suconic <cl...@apache.org>
AuthorDate: Fri Aug 6 08:34:07 2021 -0400

    This closes #3634

 .../artemis/cli/commands/check/CheckAbstract.java  |   6 +-
 .../artemis/cli/commands/check/CheckContext.java   |   6 +-
 .../artemis/cli/commands/check/NodeCheck.java      |  27 +-
 .../artemis/cli/commands/check/QueueCheck.java     |   2 +-
 .../artemis/api/core/ActiveMQExceptionType.java    |   6 +
 .../api/core/ActiveMQRedirectedException.java      |  24 +-
 .../artemis/api/core/DisconnectReason.java         |  73 ++++
 .../artemis/api/core/TransportConfiguration.java   |   2 +-
 .../artemis/api/core/client/ClientSession.java     |   8 +
 .../api/core/client/ClientSessionFactory.java      |  26 ++
 .../core/management/ActiveMQManagementProxy.java   |  73 ++--
 .../api/core/management/BrokerBalancerControl.java |  25 +-
 .../api/core/management/ObjectNameBuilder.java     |   9 +
 .../artemis/api/core/management/ResourceNames.java |   2 +
 .../core/client/ActiveMQClientMessageBundle.java   |   4 +
 .../core/client/impl/ClientSessionFactoryImpl.java | 248 +++++++------
 .../core/client/impl/ClientSessionImpl.java        |  50 ++-
 .../core/client/impl/ClientSessionInternal.java    |   2 +
 .../artemis/core/protocol/core/Channel.java        |   7 +
 .../core/protocol/core/CoreRemotingConnection.java |  10 +
 .../core/impl/ActiveMQClientProtocolManager.java   |  63 ++--
 .../protocol/core/impl/ActiveMQSessionContext.java |   2 +-
 .../core/protocol/core/impl/ChannelImpl.java       |   9 +
 .../core/protocol/core/impl/PacketDecoder.java     |  18 +
 .../core/protocol/core/impl/PacketImpl.java        |   7 +
 .../protocol/core/impl/RemotingConnectionImpl.java |  23 +-
 .../ClusterTopologyChangeMessage_V3.java           |  29 +-
 ...3.java => ClusterTopologyChangeMessage_V4.java} |  68 ++--
 .../core/impl/wireformat/CreateSessionMessage.java |  37 +-
 .../impl/wireformat/CreateSessionMessage_V2.java   | 103 ++++++
 .../core/impl/wireformat/DisconnectMessage_V3.java | 137 +++++++
 .../remoting/impl/netty/TransportConstants.java    |   5 +
 .../spi/core/protocol/RemotingConnection.java      |   8 +
 .../spi/core/remoting/ClientProtocolManager.java   |   3 +-
 .../artemis/spi/core/remoting/Connection.java      |   8 +
 .../spi/core/remoting/TopologyResponseHandler.java |   3 +-
 .../src/main/resources/activemq-version.properties |   2 +-
 .../core/management/OperationAnnotationTest.java   |   3 +-
 .../artemis/jms/client/ActiveMQConnection.java     |  30 +-
 .../amqp/broker/ProtonProtocolManager.java         |  10 +-
 .../amqp/client/ProtonClientProtocolManager.java   |   2 +-
 .../amqp/connect/AMQPBrokerConnectionManager.java  |   3 +-
 .../amqp/proton/AMQPConnectionContext.java         |   4 +-
 .../protocol/amqp/proton/AMQPRedirectContext.java  |  37 ++
 .../protocol/amqp/proton/AMQPRedirectHandler.java  |  64 ++++
 .../amqp/sasl/AnonymousServerSASLFactory.java      |   3 +-
 .../amqp/sasl/ExternalServerSASLFactory.java       |   3 +-
 .../amqp/sasl/GSSAPIServerSASLFactory.java         |   3 +-
 .../protocol/amqp/sasl/PlainServerSASLFactory.java |   3 +-
 .../protocol/amqp/sasl/ServerSASLFactory.java      |   3 +-
 .../amqp/sasl/scram/SCRAMServerSASLFactory.java    |   3 +-
 .../client/HornetQClientProtocolManager.java       |   9 +-
 .../core/protocol/mqtt/MQTTProtocolHandler.java    |  16 +-
 .../core/protocol/mqtt/MQTTProtocolManager.java    |  10 +-
 .../core/protocol/mqtt/MQTTRedirectContext.java    |  33 +-
 .../core/protocol/mqtt/MQTTRedirectHandler.java    |  55 +++
 .../core/protocol/openwire/OpenWireConnection.java |   6 +
 .../protocol/openwire/OpenWireProtocolManager.java |  10 +-
 .../protocol/openwire/OpenWireRedirectContext.java |  33 +-
 .../protocol/openwire/OpenWireRedirectHandler.java |  58 +++
 .../core/protocol/stomp/StompProtocolManager.java  |   8 +-
 .../artemis/ra/inflow/ActiveMQActivation.java      |   3 +-
 .../artemis/core/config/Configuration.java         |  13 +
 .../balancing/BrokerBalancerConfiguration.java     |  95 +++++
 .../balancing/PolicyConfiguration.java}            |  39 +-
 .../core/config/balancing/PoolConfiguration.java   | 123 +++++++
 .../core/config/impl/ConfigurationImpl.java        |  20 ++
 .../artemis/core/config/impl/Validators.java       |  11 +
 .../deployers/impl/FileConfigurationParser.java    | 102 +++++-
 .../management/impl/BrokerBalancerControlImpl.java | 160 +++++++++
 .../core/management/impl/view/ConsumerView.java    |   2 +-
 .../core/management/impl/view/ProducerView.java    |   2 +-
 .../artemis/core/protocol/ProtocolHandler.java     |   5 +
 .../protocol/core/impl/ActiveMQPacketHandler.java  |  14 +-
 .../core/impl/ActiveMQRedirectContext.java}        |  28 +-
 .../core/impl/ActiveMQRedirectHandler.java         |  52 +++
 .../protocol/core/impl/CoreProtocolManager.java    |  25 +-
 .../core/remoting/impl/netty/NettyAcceptor.java    |   7 +-
 ...onnection.java => NettySNIHostnameHandler.java} |  36 +-
 .../remoting/impl/netty/NettyServerConnection.java |  22 +-
 .../artemis/core/server/ActiveMQMessageBundle.java |  11 +
 .../artemis/core/server/ActiveMQServer.java        |   3 +
 .../artemis/core/server/ActiveMQServerLogger.java  |  14 +
 .../core/server/balancing/BrokerBalancer.java      | 193 ++++++++++
 .../server/balancing/BrokerBalancerManager.java    | 191 ++++++++++
 .../core/server/balancing/RedirectContext.java     |  57 +++
 .../core/server/balancing/RedirectHandler.java     |  74 ++++
 .../balancing/policies/AbstractPolicy.java}        |  46 ++-
 .../balancing/policies/ConsistentHashPolicy.java   |  75 ++++
 .../balancing/policies/DefaultPolicyFactory.java   |  49 +++
 .../balancing/policies/FirstElementPolicy.java}    |  39 +-
 .../balancing/policies/LeastConnectionsPolicy.java | 133 +++++++
 .../balancing/policies/Policy.java}                |  32 +-
 .../balancing/policies/PolicyFactory.java}         |  26 +-
 .../balancing/policies/PolicyFactoryResolver.java  |  74 ++++
 .../balancing/policies/RoundRobinPolicy.java       |  47 +++
 .../core/server/balancing/pools/AbstractPool.java  | 243 +++++++++++++
 .../core/server/balancing/pools/ClusterPool.java   |  69 ++++
 .../balancing/pools/DiscoveryGroupService.java     |  87 +++++
 .../core/server/balancing/pools/DiscoveryPool.java |  70 ++++
 .../server/balancing/pools/DiscoveryService.java   |  88 +++++
 .../artemis/core/server/balancing/pools/Pool.java  |  65 ++++
 .../core/server/balancing/pools/StaticPool.java    |  44 +++
 .../server/balancing/targets/AbstractTarget.java   | 112 ++++++
 .../balancing/targets/AbstractTargetFactory.java}  |  41 ++-
 .../server/balancing/targets/ActiveMQTarget.java   | 132 +++++++
 .../balancing/targets/ActiveMQTargetFactory.java}  |  30 +-
 .../core/server/balancing/targets/LocalTarget.java |  69 ++++
 .../core/server/balancing/targets/Target.java      |  59 +++
 .../balancing/targets/TargetFactory.java}          |  30 +-
 .../core/server/balancing/targets/TargetKey.java   |  53 +++
 .../balancing/targets/TargetKeyResolver.java       | 108 ++++++
 .../balancing/targets/TargetListener.java}         |  26 +-
 .../server/balancing/targets/TargetMonitor.java    | 129 +++++++
 .../balancing/targets/TargetProbe.java}            |  28 +-
 .../core/server/impl/ActiveMQServerImpl.java       |  16 +
 .../core/server/management/ManagementService.java  |   9 +
 .../management/impl/ManagementServiceImpl.java     |  26 +-
 .../spi/core/protocol/AbstractProtocolManager.java |   3 +-
 .../artemis/spi/core/protocol/ProtocolManager.java |   5 +-
 .../resources/schema/artemis-configuration.xsd     | 175 +++++++++
 .../core/config/impl/FileConfigurationTest.java    |  37 ++
 .../policies/ConsistentHashPolicyTest.java         |  55 +++
 .../balancing/policies/FirstElementPolicyTest.java |  47 +++
 .../policies/LeastConnectionsPolicyTest.java       |  95 +++++
 .../server/balancing/policies/PolicyTestBase.java  |  52 +++
 .../balancing/policies/RoundRobinPolicyTest.java   |  58 +++
 .../server/balancing/pools/DiscoveryPoolTest.java  | 174 +++++++++
 .../balancing/pools/MockDiscoveryService.java      |  87 +++++
 .../core/server/balancing/pools/PoolTestBase.java  | 190 ++++++++++
 .../server/balancing/pools/StaticPoolTest.java     |  39 ++
 .../core/server/balancing/targets/MockTarget.java  | 156 ++++++++
 .../balancing/targets/MockTargetFactory.java       | 105 ++++++
 .../server/balancing/targets/MockTargetProbe.java  |  61 ++++
 .../balancing/targets/TargetKeyResolverTest.java   | 110 ++++++
 .../server/group/impl/ClusteredResetMockTest.java  |  21 ++
 .../resources/ConfigurationTest-full-config.xml    |  32 ++
 .../ConfigurationTest-xinclude-config.xml          |  32 ++
 docs/user-manual/en/SUMMARY.md                     |   1 +
 docs/user-manual/en/broker-balancers.md            | 191 ++++++++++
 .../en/images/broker_balancer_workflow.png         | Bin 0 -> 96089 bytes
 .../en/images/management_api_redirect_sequence.png | Bin 0 -> 12611 bytes
 .../en/images/native_redirect_sequence.png         | Bin 0 -> 11169 bytes
 .../broker-balancer/evenly-redirect/pom.xml        | 207 +++++++++++
 .../broker-balancer/evenly-redirect/readme.md      |   8 +
 .../artemis/jms/example/EvenlyRedirectExample.java | 106 ++++++
 .../src/main/resources/activemq/server0/broker.xml | 135 +++++++
 .../src/main/resources/activemq/server1/broker.xml | 113 ++++++
 .../src/main/resources/activemq/server2/broker.xml | 113 ++++++
 examples/features/broker-balancer/pom.xml          |  56 +++
 .../broker-balancer/symmetric-redirect/pom.xml     | 164 +++++++++
 .../broker-balancer/symmetric-redirect/readme.md   |   9 +
 .../jms/example/SymmetricRedirectExample.java      | 107 ++++++
 .../src/main/resources/activemq/server0/broker.xml | 150 ++++++++
 .../src/main/resources/activemq/server1/broker.xml | 150 ++++++++
 pom.xml                                            |   2 +-
 .../integration/balancing/BalancingTestBase.java   | 246 +++++++++++++
 .../integration/balancing/MQTTRedirectTest.java    | 125 +++++++
 .../tests/integration/balancing/RedirectTest.java  | 399 +++++++++++++++++++++
 .../tests/integration/balancing/TargetKeyTest.java | 184 ++++++++++
 .../integration/cluster/failover/FailoverTest.java |  49 ++-
 .../integration/cluster/util/BackupSyncDelay.java  |   5 +
 .../client/SessionMetadataAddExceptionTest.java    |   4 +-
 .../management/ActiveMQServerControlTest.java      |   6 +-
 .../management/BrokerBalancerControlTest.java      | 186 ++++++++++
 .../management/ManagementControlHelper.java        |   7 +
 tests/security-resources/build.sh                  |  18 +-
 tests/security-resources/client-ca-keystore.p12    | Bin 2589 -> 2589 bytes
 .../security-resources/client-ca-truststore.jceks  | Bin 950 -> 950 bytes
 tests/security-resources/client-ca-truststore.jks  | Bin 950 -> 950 bytes
 tests/security-resources/client-ca-truststore.p12  | Bin 1186 -> 1186 bytes
 tests/security-resources/client-ca.pem             |  54 +--
 tests/security-resources/client-keystore.jceks     | Bin 4124 -> 4124 bytes
 tests/security-resources/client-keystore.jks       | Bin 4144 -> 4143 bytes
 tests/security-resources/client-keystore.p12       | Bin 4759 -> 4759 bytes
 tests/security-resources/other-client-crl.pem      |  16 +-
 .../security-resources/other-client-keystore.jceks | Bin 4136 -> 4136 bytes
 tests/security-resources/other-client-keystore.jks | Bin 4156 -> 4155 bytes
 tests/security-resources/other-client-keystore.p12 | Bin 4787 -> 4787 bytes
 tests/security-resources/other-server-crl.pem      |  16 +-
 .../security-resources/other-server-keystore.jceks | Bin 4136 -> 4183 bytes
 tests/security-resources/other-server-keystore.jks | Bin 4155 -> 4202 bytes
 tests/security-resources/other-server-keystore.p12 | Bin 4787 -> 4835 bytes
 .../other-server-truststore.jceks                  | Bin 1053 -> 1100 bytes
 .../security-resources/other-server-truststore.jks | Bin 1053 -> 1100 bytes
 .../security-resources/other-server-truststore.p12 | Bin 1290 -> 1338 bytes
 tests/security-resources/server-ca-keystore.p12    | Bin 2589 -> 2589 bytes
 .../security-resources/server-ca-truststore.jceks  | Bin 950 -> 950 bytes
 tests/security-resources/server-ca-truststore.jks  | Bin 950 -> 950 bytes
 tests/security-resources/server-ca-truststore.p12  | Bin 1186 -> 1186 bytes
 tests/security-resources/server-ca.pem             |  54 +--
 tests/security-resources/server-keystore.jceks     | Bin 4103 -> 4150 bytes
 tests/security-resources/server-keystore.jks       | Bin 4122 -> 4169 bytes
 tests/security-resources/server-keystore.p12       | Bin 4735 -> 4783 bytes
 .../unknown-client-keystore.jceks                  | Bin 4112 -> 4112 bytes
 .../security-resources/unknown-client-keystore.jks | Bin 4132 -> 4131 bytes
 .../security-resources/unknown-client-keystore.p12 | Bin 4767 -> 4767 bytes
 .../unknown-server-keystore.jceks                  | Bin 4112 -> 4112 bytes
 .../security-resources/unknown-server-keystore.jks | Bin 4131 -> 4130 bytes
 .../security-resources/unknown-server-keystore.p12 | Bin 4767 -> 4767 bytes
 200 files changed, 8676 insertions(+), 640 deletions(-)