{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":771755906,"defaultBranch":"main","name":"upstreaming-activemq","ownerLogin":"kartg","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-03-13T22:24:37.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/85275476?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1711655282.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"1f89c1737ef9e771b3fb961934c962379d2f484f","ref":"refs/heads/remove-assembly-jrms","pushedAt":"2024-03-28T19:48:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Removed JRMS-1.1 dependency from assembly pom.xml\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Removed JRMS-1.1 dependency from assembly pom.xml"}},{"before":"341071974138b8c685b52a7a2cb698cbb7b73bb3","after":"576845803afd0fd070b897e4355e10cb3226e469","ref":"refs/heads/main-mod-with-replica-plugin","pushedAt":"2024-03-25T20:21:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[PATCH] Fixed merge conficts. Adapted replica plugin to 6.x","shortMessageHtmlLink":"[PATCH] Fixed merge conficts. Adapted replica plugin to 6.x"}},{"before":"72bbb0c521a3811971006c703030ce8fdc5e4f41","after":"4c633e69a778a95188166efbb12b7ea71501ae2a","ref":"refs/heads/main","pushedAt":"2024-03-25T19:47:29.000Z","pushType":"push","commitsCount":18,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Merge pull request #1188 from jbonofre/AMQ-9464\n\nAMQ-9464: Upgrade to commons-dbcp2 2.12.0","shortMessageHtmlLink":"Merge pull request apache#1188 from jbonofre/AMQ-9464"}},{"before":"50a51832e66e63ce2ca1152a562d0f16bb054a98","after":"e81a290663e420a4de41a303c263d5e3734d6af7","ref":"refs/heads/5.18.x-commit-squash","pushedAt":"2024-03-22T22:36:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Squashed commit for replica plugin\n\n[AMQ-8354] Add initial plugin skeleton\n\n[AMQ-8354] Replica Broker can connect to source broker\n\n[AMQ-8354] Replication of destination creation and removal\n\n[AMQ-8354] Replication of message send\n\n[AMQ-8354] Replication of purge queue and acknowledge message\n\n[AMQ-8354] Replication of transaction begin, prepare, forget, rollback, commit\n\n[AMQ-8354] stop taskRunner on broker stop\n\n[AMQ-8354] Ensure destinations are replicated on startup\n\n[AMQ-8354] Isolate the replication queue by letting to add consumers and producers only via the replication transport.\n\n[AMQ-8354] Support of durable subscribers\n\n[AMQ-8354] Test of replication of virtual topics and expired messages.\n\n[AMQ-8354] More tests for ReplicaSourceBroker\n\nAMQ-8354 Add scheduled messages support to the replica plugin\n\n[AMQ-8354] Move ReplicaBroker before ReplicaSourceBroker.\nAdd missed try-catch in replicateDestinationCreation.\nBug fix: not deleting destination from the list of destination to replicate when deleting the destination.\n\n[AMQ-8354] Atomic send message on primary broker\n\n[AMQ-8354] Different implementation of ack replication.\n\n[AMQ-8354] Add the license\n\n[AMQ-8354] Add exponential replica retries.\n\n[AMQ-8354]\nAdd an intermediate replication queue.\nMake the main replication queue non-persistent.\nAdd logic for adding and checking sequences on both sides.\n\n[AMQ-8354] Add batches for main replication queue.\n\n[AMQ-8354] Add compaction logic for send and ack events that cancel each other out.\n\n[AMQ-8354] Do not send messages to mainQueue if there are no consumers to apply message compaction on the main queue.\n\n[AMQ-8354]\nIncreased the size of batches.\nMade batches idempotent.\n\n[AMQ-8354] Add message compaction when there is no consumer.\n\n[AMQ-8354] Add replica batch acknowledge.\n\n[AMQ-8354]\nSplit threads for ack and for send.\nAdded logic to ignore Delivered and Unmatched acks.\n\n[AMQ-8354] Improve Batcher to make batches bigger.\n\n[AMQ-8354]\nReduce the delay between acks.\nReduce the amount of messages in ack batches.\n\n[AMQ-8354] Replace ReplicaStorage with Sequence.Queue in ReplicaSequencer.\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Add missed licence.\n\n[AMQ-8354] Add missed licence.\n\n[AMQ-8354] Add helper methods needed for replica plugin.\n\nReimplement getAllMessageIds method to avoid pontential out of memory errors.\n\nConvert AdvisoryBroker to MutableBrokerFilter\n\nRevert \"Convert AdvisoryBroker to MutableBrokerFilter\"\n\nThis reverts commit a32ab41903abd286b758a6bb7ab61c2d156111e5.\n\nRollback the conversion of SchedulerBroker to MutableBrokerFilter.\n\nRemove getAllMessageIds.\n\nRework processDispatchNotification.\n\n[AMQ-8354] Fix replica sequence saving and parsing.\nFix BrokerStoppedException handling.\n\n[AMQ-8354] NoB support.\n\n[AMQ-8354] Extract constants to parameters.\n\n[AMQ-8354] Fix errors during DLQ messages replication.\n\n[AMQ-8354] Add JMX controllers for the failover\n\n[AMQ-8354] Fix btoker.stop() when there is a blocking operation on replica.\n\n[AMQ-8354] ReplicaBroker stop: close listener before close event consumer\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Block consumption from replication queues when wildcard selector used.\nBlock replication queue deletion.\n\n[AMQ-8354] Add deinitialization of ReplicaSequencer.\n\n[AMQ-8354] Disable replication of non-persistent messages.\n\n[AMQ-8354] Add failover support for replication\n\n[AMQ-8354] Fix compaction with additional messages.\nNow when we look for additional messages, we gracefully handle the processed messages.\n\n[AMQ-8354] Enable replication queue protection for replica.\nRemove source role as it's no longer supported.\n\n[AMQ-8354] ReplicationPlugin consumer is aborted by abortSlowAckConsumerStrategy\n\n[AMQ-8354] Fixed sequence recovery.\n\n[AMQ-8354] topic unsubscribe durable subscription event is not replicated\n\n[AMQ-8354] Replication queues purge notification\n\n[AMQ-8354] fix acknowledge replication message from AMQP protocol\n\n[AMQ-8354] Soft failover implementation\n\n[AMQ-8354] Change batch ack to individual acks.\n\n[AMQ-8354] Fix transactions in compactor.\nSimplify the logic to make it more error prone.\n\n[AMQ-8354] Replication event is out of order. Current sequence 1 belongs to message with id\n\n[AMQ-8354] Isolate context to prevent concurrent modifications.\n\n[AMQ-8354] Add web console access control.\n\n[AMQ-8354] Save Broker failover state and make failover more resilient to failure\n\n[AMQ-8354] Fix send to main queue when there is only one message in the batch.\nFix sequence validation for FAIL_OVER messages.\n\n[AMQ-8354] Remove scheduled messages replication support.\n\n[AMQ-8354] bug fix - Virtual destinations replication works incorrectly\n\n[AMQ-8354] Fix acks when they are a single message in a batch.\n\n[AMQ-8354] Ignore MessageAck and Transactional replication events if corresponding entities do not exist\n\n[AMQ-8354] Redelivery plugin support.\n\n[AMQ-8354] Refactoring.\nThe goals of it was:\n1. make sure the role field in ReplicaRoleManagementBroker and the role saved in the storage align.\n2. force and not force failovers follow the same flow as much as possible.\n3. The failover flows for source and replica look as similar as possible.\n4. existing code is reused as much as possible\n\nBugs that were fixed:\n1. connections are not blocked on start\n2. after failover JMX returns wrong role\n3. during soft failover there is a chance that the failover message is acked, but the role is not updated.\n4. race condition during soft failover that may lead to incorrect role change\n\n[AMQ-8354] Add handling failures during failover on replica side.\n\n[AMQ-8354] Fix Not authorized to access destination: topic://ActiveMQ.Plugin.Replication.Role.Advisory.Topic\n\n[AMQ-8354] Fix role switching when there is an ongoing failover already.\n\n[AMQ-8354] Less invasive implementation of advisory suppresor.\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Fix and add tests.\n\n[AMQ-8354] Replication plugin basic functionality tests - part 1.\n\n[AMQ-8354] Replication plugin basic function tests - replication event handling\n\n[AMQ-8354] Replication plugin basic function test - Replication event Ack\n\n[AMQ-8354] plugin test: queue operations\n\n[AMQ-8354] plugin test: Topic operations\n\n[AMQ-8354] add message property replication test\n\n[AMQ-8354] replication NetworkConnector tests\n\n[AMQ-8354] plugin Connection level protocol connection tests\n\n[AMQ-8354] added Connection mode tests and amqp connection test\n\n[AMQ-8354] Add Replication Queue Operations Tests\n\n[AMQ-8354] Enable testDurableSubscribers\n\n[AMQ-8354] Replication test: hard failover\n\n[AMQ-8354] refactor integration tests\n\n[AMQ-8354] Replication Tests: soft failover tests\n\n[AMQ-8354] refactor integration tests\n\n[AMQ-8354] Fix integration tests.\n\n[AMQ-8354] add replication redelivery plugin test\n\n[AMQ-8354] fix Replica Plugin Queue Test\n\n[AMQ-8354] Remove unused imports.\n\n[AMQ-8354] Add missing licenses.\n\n[AMQ-8354] Fix classloader issue.\nImprove failover logs.\n\n[AMQ-8354] Add heart beat messages.\n\n[AMQ-8354] Add versioning.\n\n[AMQ-8354] Throw exception on replication errors.\n\n[AMQ-8354] Delete TODOs and FIXMEs\n\n[AMQ-8354] add replication lag and wait time metrics.\n\n[AMQ-8394] Don't disable jolokia server.\n\nadd replication plugin test profile: replica-plugin\n\nFix slow ack replication.\n\n[AMQ-8354] Fix Replication event is out of order on broker restart.\n\n[AMQ-8354] Force producer flow control.\n\n[AMQ-8354] Add replication flow control.\n\n[AMQ-8354] Add an error log if a replication message is being sent to DLQ.\n\n[AMQ-8354] Add JMX metric to monitor replication flow control.\n\nmirrored queue does not mirror replication queues (#25)\n\nMessage expired failure when the destination doesn't exist\n\nFix Formatting\n\nfix flaky Replication Integration tests\n\nfix flaky test: ReplicaAcknowledgeReplicationEventTest\n\nFixup rebase/squash discrepancies\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Squashed commit for replica plugin"}},{"before":"065873a3d18ae8ad6f617b552d020d2b9098ad95","after":"50a51832e66e63ce2ca1152a562d0f16bb054a98","ref":"refs/heads/5.18.x-commit-squash","pushedAt":"2024-03-22T21:46:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-8354] Add initial plugin skeleton\n\n[AMQ-8354] Replica Broker can connect to source broker\n\n[AMQ-8354] Replication of destination creation and removal\n\n[AMQ-8354] Replication of message send\n\n[AMQ-8354] Replication of purge queue and acknowledge message\n\n[AMQ-8354] Replication of transaction begin, prepare, forget, rollback, commit\n\n[AMQ-8354] stop taskRunner on broker stop\n\n[AMQ-8354] Ensure destinations are replicated on startup\n\n[AMQ-8354] Isolate the replication queue by letting to add consumers and producers only via the replication transport.\n\n[AMQ-8354] Support of durable subscribers\n\n[AMQ-8354] Test of replication of virtual topics and expired messages.\n\n[AMQ-8354] More tests for ReplicaSourceBroker\n\nAMQ-8354 Add scheduled messages support to the replica plugin\n\n[AMQ-8354] Move ReplicaBroker before ReplicaSourceBroker.\nAdd missed try-catch in replicateDestinationCreation.\nBug fix: not deleting destination from the list of destination to replicate when deleting the destination.\n\n[AMQ-8354] Atomic send message on primary broker\n\n[AMQ-8354] Different implementation of ack replication.\n\n[AMQ-8354] Add the license\n\n[AMQ-8354] Add exponential replica retries.\n\n[AMQ-8354]\nAdd an intermediate replication queue.\nMake the main replication queue non-persistent.\nAdd logic for adding and checking sequences on both sides.\n\n[AMQ-8354] Add batches for main replication queue.\n\n[AMQ-8354] Add compaction logic for send and ack events that cancel each other out.\n\n[AMQ-8354] Do not send messages to mainQueue if there are no consumers to apply message compaction on the main queue.\n\n[AMQ-8354]\nIncreased the size of batches.\nMade batches idempotent.\n\n[AMQ-8354] Add message compaction when there is no consumer.\n\n[AMQ-8354] Add replica batch acknowledge.\n\n[AMQ-8354]\nSplit threads for ack and for send.\nAdded logic to ignore Delivered and Unmatched acks.\n\n[AMQ-8354] Improve Batcher to make batches bigger.\n\n[AMQ-8354]\nReduce the delay between acks.\nReduce the amount of messages in ack batches.\n\n[AMQ-8354] Replace ReplicaStorage with Sequence.Queue in ReplicaSequencer.\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Add missed licence.\n\n[AMQ-8354] Add missed licence.\n\n[AMQ-8354] Add helper methods needed for replica plugin.\n\nReimplement getAllMessageIds method to avoid pontential out of memory errors.\n\nConvert AdvisoryBroker to MutableBrokerFilter\n\nRevert \"Convert AdvisoryBroker to MutableBrokerFilter\"\n\nThis reverts commit a32ab41903abd286b758a6bb7ab61c2d156111e5.\n\nRollback the conversion of SchedulerBroker to MutableBrokerFilter.\n\nRemove getAllMessageIds.\n\nRework processDispatchNotification.\n\n[AMQ-8354] Fix replica sequence saving and parsing.\nFix BrokerStoppedException handling.\n\n[AMQ-8354] NoB support.\n\n[AMQ-8354] Extract constants to parameters.\n\n[AMQ-8354] Fix errors during DLQ messages replication.\n\n[AMQ-8354] Add JMX controllers for the failover\n\n[AMQ-8354] Fix btoker.stop() when there is a blocking operation on replica.\n\n[AMQ-8354] ReplicaBroker stop: close listener before close event consumer\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Block consumption from replication queues when wildcard selector used.\nBlock replication queue deletion.\n\n[AMQ-8354] Add deinitialization of ReplicaSequencer.\n\n[AMQ-8354] Disable replication of non-persistent messages.\n\n[AMQ-8354] Add failover support for replication\n\n[AMQ-8354] Fix compaction with additional messages.\nNow when we look for additional messages, we gracefully handle the processed messages.\n\n[AMQ-8354] Enable replication queue protection for replica.\nRemove source role as it's no longer supported.\n\n[AMQ-8354] ReplicationPlugin consumer is aborted by abortSlowAckConsumerStrategy\n\n[AMQ-8354] Fixed sequence recovery.\n\n[AMQ-8354] topic unsubscribe durable subscription event is not replicated\n\n[AMQ-8354] Replication queues purge notification\n\n[AMQ-8354] fix acknowledge replication message from AMQP protocol\n\n[AMQ-8354] Soft failover implementation\n\n[AMQ-8354] Change batch ack to individual acks.\n\n[AMQ-8354] Fix transactions in compactor.\nSimplify the logic to make it more error prone.\n\n[AMQ-8354] Replication event is out of order. Current sequence 1 belongs to message with id\n\n[AMQ-8354] Isolate context to prevent concurrent modifications.\n\n[AMQ-8354] Add web console access control.\n\n[AMQ-8354] Save Broker failover state and make failover more resilient to failure\n\n[AMQ-8354] Fix send to main queue when there is only one message in the batch.\nFix sequence validation for FAIL_OVER messages.\n\n[AMQ-8354] Remove scheduled messages replication support.\n\n[AMQ-8354] bug fix - Virtual destinations replication works incorrectly\n\n[AMQ-8354] Fix acks when they are a single message in a batch.\n\n[AMQ-8354] Ignore MessageAck and Transactional replication events if corresponding entities do not exist\n\n[AMQ-8354] Redelivery plugin support.\n\n[AMQ-8354] Refactoring.\nThe goals of it was:\n1. make sure the role field in ReplicaRoleManagementBroker and the role saved in the storage align.\n2. force and not force failovers follow the same flow as much as possible.\n3. The failover flows for source and replica look as similar as possible.\n4. existing code is reused as much as possible\n\nBugs that were fixed:\n1. connections are not blocked on start\n2. after failover JMX returns wrong role\n3. during soft failover there is a chance that the failover message is acked, but the role is not updated.\n4. race condition during soft failover that may lead to incorrect role change\n\n[AMQ-8354] Add handling failures during failover on replica side.\n\n[AMQ-8354] Fix Not authorized to access destination: topic://ActiveMQ.Plugin.Replication.Role.Advisory.Topic\n\n[AMQ-8354] Fix role switching when there is an ongoing failover already.\n\n[AMQ-8354] Less invasive implementation of advisory suppresor.\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Fix and add tests.\n\n[AMQ-8354] Replication plugin basic functionality tests - part 1.\n\n[AMQ-8354] Replication plugin basic function tests - replication event handling\n\n[AMQ-8354] Replication plugin basic function test - Replication event Ack\n\n[AMQ-8354] plugin test: queue operations\n\n[AMQ-8354] plugin test: Topic operations\n\n[AMQ-8354] add message property replication test\n\n[AMQ-8354] replication NetworkConnector tests\n\n[AMQ-8354] plugin Connection level protocol connection tests\n\n[AMQ-8354] added Connection mode tests and amqp connection test\n\n[AMQ-8354] Add Replication Queue Operations Tests\n\n[AMQ-8354] Enable testDurableSubscribers\n\n[AMQ-8354] Replication test: hard failover\n\n[AMQ-8354] refactor integration tests\n\n[AMQ-8354] Replication Tests: soft failover tests\n\n[AMQ-8354] refactor integration tests\n\n[AMQ-8354] Fix integration tests.\n\n[AMQ-8354] add replication redelivery plugin test\n\n[AMQ-8354] fix Replica Plugin Queue Test\n\n[AMQ-8354] Remove unused imports.\n\n[AMQ-8354] Add missing licenses.\n\n[AMQ-8354] Fix classloader issue.\nImprove failover logs.\n\n[AMQ-8354] Add heart beat messages.\n\n[AMQ-8354] Add versioning.\n\n[AMQ-8354] Throw exception on replication errors.\n\n[AMQ-8354] Delete TODOs and FIXMEs\n\n[AMQ-8354] add replication lag and wait time metrics.\n\nFix slow ack replication.\n\n[AMQ-8354] Fix Replication event is out of order on broker restart.\n\n[AMQ-8354] Force producer flow control.\n\n[AMQ-8354] Add replication flow control.\n\n[AMQ-8354] Add an error log if a replication message is being sent to DLQ.\n\n[AMQ-8354] Add JMX metric to monitor replication flow control.\n\nmirrored queue does not mirror replication queues (#25)\n\nMessage expired failure when the destination doesn't exist\n\nFix Formatting\n\nfix flaky Replication Integration tests\n\nfix flaky test: ReplicaAcknowledgeReplicationEventTest","shortMessageHtmlLink":"[AMQ-8354] Add initial plugin skeleton"}},{"before":"c1b17359e430c329390075960cdd019958b089d2","after":"48177bb2c49f239eca0242aebe7e0a3f1f98e610","ref":"refs/heads/5.18.x-with-replica-plugin-support-rewrite","pushedAt":"2024-03-22T21:06:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-8354] Add helper methods needed for replica plugin.\n\n* added a \"queuePurged\" method to notify about a queue being purged, with appropriate stub implementations for EmptyBroker and ErrorBroker. This is needed for queue purge replication.\n\n* added ConnectionContext#setUserName to be able to differentiate replication context (the context we use to interact with the broker) from every other to prevent replication of replicated events.\n\n* added a new public \"getMatchingMessages\" method to be able to get messages by selector when the consumer is full. Used by the replica plugin for message compaction.\n\n* added \"getDispatched\" method to fetch the list of messages we are acknowledging. This is used by the replica plugin to correctly replicate ACKs\n\n* Bugfix in processDispatchNotification, getMatchingMessage and processMessageDispatchNotification to be able to replicate acks correctly. These code paths have not been used since pure master-slave feature was deleted, but is needed by the replica broker plugin.","shortMessageHtmlLink":"[AMQ-8354] Add helper methods needed for replica plugin."}},{"before":"c3ff7ef072d3b13ae185fffc85fe20397773b61b","after":"58908661e8e702edba08dd1cae4a99ce9ff34995","ref":"refs/heads/activemq-5.18.x","pushedAt":"2024-03-22T21:05:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-9459]: Added JVM Arg to open sun.nio.ch","shortMessageHtmlLink":"[AMQ-9459]: Added JVM Arg to open sun.nio.ch"}},{"before":"319445ad2facbf14de24a9933bd420f199594f69","after":"065873a3d18ae8ad6f617b552d020d2b9098ad95","ref":"refs/heads/5.18.x-commit-squash","pushedAt":"2024-03-20T18:45:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Revert minor fixes unrelated to replica plugin\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Revert minor fixes unrelated to replica plugin"}},{"before":"2073ba35da93d08be897cd8ed5e176d0f44a9c72","after":"319445ad2facbf14de24a9933bd420f199594f69","ref":"refs/heads/5.18.x-commit-squash","pushedAt":"2024-03-20T16:07:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Revert minor fixes unrelated to replica plugin\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Revert minor fixes unrelated to replica plugin"}},{"before":"fe0d6a699a0adb573b75105314604c6b447f0c9e","after":"2073ba35da93d08be897cd8ed5e176d0f44a9c72","ref":"refs/heads/5.18.x-commit-squash","pushedAt":"2024-03-20T00:30:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Revert minor fixes unrelated to replica plugin\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Revert minor fixes unrelated to replica plugin"}},{"before":null,"after":"2d1e9234d8803d4336bcb58a863448855cbf9327","ref":"refs/heads/5.18.x-commit-squash-rough","pushedAt":"2024-03-20T00:14:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Revert minor import move\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Revert minor import move"}},{"before":null,"after":"fe0d6a699a0adb573b75105314604c6b447f0c9e","ref":"refs/heads/5.18.x-commit-squash","pushedAt":"2024-03-19T18:30:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-8354] Add initial plugin skeleton\n\n[AMQ-8354] Replica Broker can connect to source broker\n\n[AMQ-8354] Replication of destination creation and removal\n\n[AMQ-8354] Replication of message send\n\n[AMQ-8354] Replication of purge queue and acknowledge message\n\n[AMQ-8354] Replication of transaction begin, prepare, forget, rollback, commit\n\n[AMQ-8354] stop taskRunner on broker stop\n\n[AMQ-8354] Ensure destinations are replicated on startup\n\n[AMQ-8354] Isolate the replication queue by letting to add consumers and producers only via the replication transport.\n\n[AMQ-8354] Support of durable subscribers\n\n[AMQ-8354] Test of replication of virtual topics and expired messages.\n\n[AMQ-8354] More tests for ReplicaSourceBroker\n\nAMQ-8354 Add scheduled messages support to the replica plugin\n\n[AMQ-8354] Move ReplicaBroker before ReplicaSourceBroker.\nAdd missed try-catch in replicateDestinationCreation.\nBug fix: not deleting destination from the list of destination to replicate when deleting the destination.\n\n[AMQ-8354] Atomic send message on primary broker\n\n[AMQ-8354] Different implementation of ack replication.\n\n[AMQ-8354] Add the license\n\n[AMQ-8354] Add exponential replica retries.\n\n[AMQ-8354]\nAdd an intermediate replication queue.\nMake the main replication queue non-persistent.\nAdd logic for adding and checking sequences on both sides.\n\n[AMQ-8354] Add batches for main replication queue.\n\n[AMQ-8354] Add compaction logic for send and ack events that cancel each other out.\n\n[AMQ-8354] Do not send messages to mainQueue if there are no consumers to apply message compaction on the main queue.\n\n[AMQ-8354]\nIncreased the size of batches.\nMade batches idempotent.\n\n[AMQ-8354] Add message compaction when there is no consumer.\n\n[AMQ-8354] Add replica batch acknowledge.\n\n[AMQ-8354]\nSplit threads for ack and for send.\nAdded logic to ignore Delivered and Unmatched acks.\n\n[AMQ-8354] Improve Batcher to make batches bigger.\n\n[AMQ-8354]\nReduce the delay between acks.\nReduce the amount of messages in ack batches.\n\n[AMQ-8354] Replace ReplicaStorage with Sequence.Queue in ReplicaSequencer.\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Add missed licence.\n\n[AMQ-8354] Add missed licence.\n\n[AMQ-9235] Update Jenkins JDK 19 -> JDK 20 (#994)\n\nJDK 20 compile succeeds\n\n[AMQ-9234] Remove JournalJDBC store and activeio dependency (#993)\n\nReimplement getAllMessageIds method to avoid pontential out of memory errors.\n\nConvert AdvisoryBroker to MutableBrokerFilter\n\nRevert \"Convert AdvisoryBroker to MutableBrokerFilter\"\n\nThis reverts commit a32ab41903abd286b758a6bb7ab61c2d156111e5.\n\nRollback the conversion of SchedulerBroker to MutableBrokerFilter.\n\nRemove getAllMessageIds.\n\nRework processDispatchNotification.\n\n[AMQ-8354] Fix replica sequence saving and parsing.\nFix BrokerStoppedException handling.\n\n[AMQ-8354] NoB support.\n\n[AMQ-8354] Extract constants to parameters.\n\n[AMQ-8354] Fix errors during DLQ messages replication.\n\n[AMQ-8354] Add JMX controllers for the failover\n\n[AMQ-8354] Fix btoker.stop() when there is a blocking operation on replica.\n\n[AMQ-8354] ReplicaBroker stop: close listener before close event consumer\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Block consumption from replication queues when wildcard selector used.\nBlock replication queue deletion.\n\n[AMQ-8354] Add deinitialization of ReplicaSequencer.\n\n[AMQ-8354] Disable replication of non-persistent messages.\n\n[AMQ-8354] Add failover support for replication\n\n[AMQ-8354] Fix compaction with additional messages.\nNow when we look for additional messages, we gracefully handle the processed messages.\n\n[AMQ-8354] Enable replication queue protection for replica.\nRemove source role as it's no longer supported.\n\n[AMQ-8354] ReplicationPlugin consumer is aborted by abortSlowAckConsumerStrategy\n\n[AMQ-8354] Fixed sequence recovery.\n\n[AMQ-8354] topic unsubscribe durable subscription event is not replicated\n\n[AMQ-8354] Replication queues purge notification\n\n[AMQ-8354] fix acknowledge replication message from AMQP protocol\n\n[AMQ-8354] Soft failover implementation\n\n[AMQ-8354] Change batch ack to individual acks.\n\n[AMQ-8354] Fix transactions in compactor.\nSimplify the logic to make it more error prone.\n\n[AMQ-8354] Replication event is out of order. Current sequence 1 belongs to message with id\n\n[AMQ-8354] Isolate context to prevent concurrent modifications.\n\n[AMQ-8354] Add web console access control.\n\n[AMQ-8354] Save Broker failover state and make failover more resilient to failure\n\n[AMQ-8354] Fix send to main queue when there is only one message in the batch.\nFix sequence validation for FAIL_OVER messages.\n\n[AMQ-8354] Remove scheduled messages replication support.\n\n[AMQ-8354] bug fix - Virtual destinations replication works incorrectly\n\n[AMQ-8354] Fix acks when they are a single message in a batch.\n\n[AMQ-8354] Ignore MessageAck and Transactional replication events if corresponding entities do not exist\n\n[AMQ-8354] Redelivery plugin support.\n\n[AMQ-8354] Refactoring.\nThe goals of it was:\n1. make sure the role field in ReplicaRoleManagementBroker and the role saved in the storage align.\n2. force and not force failovers follow the same flow as much as possible.\n3. The failover flows for source and replica look as similar as possible.\n4. existing code is reused as much as possible\n\nBugs that were fixed:\n1. connections are not blocked on start\n2. after failover JMX returns wrong role\n3. during soft failover there is a chance that the failover message is acked, but the role is not updated.\n4. race condition during soft failover that may lead to incorrect role change\n\n[AMQ-8354] Add handling failures during failover on replica side.\n\n[AMQ-8354] Fix Not authorized to access destination: topic://ActiveMQ.Plugin.Replication.Role.Advisory.Topic\n\n[AMQ-8354] Fix role switching when there is an ongoing failover already.\n\n[AMQ-8354] Less invasive implementation of advisory suppresor.\n\n[AMQ-8354] Small refactoring.\n\n[AMQ-8354] Fix and add tests.\n\n[AMQ-8354] Replication plugin basic functionality tests - part 1.\n\n[AMQ-8354] Replication plugin basic function tests - replication event handling\n\n[AMQ-8354] Replication plugin basic function test - Replication event Ack\n\n[AMQ-8354] plugin test: queue operations\n\n[AMQ-8354] plugin test: Topic operations\n\n[AMQ-8354] add message property replication test\n\n[AMQ-8354] replication NetworkConnector tests\n\n[AMQ-8354] plugin Connection level protocol connection tests\n\n[AMQ-8354] added Connection mode tests and amqp connection test\n\n[AMQ-8354] Add Replication Queue Operations Tests\n\n[AMQ-8354] Enable testDurableSubscribers\n\n[AMQ-8354] Replication test: hard failover\n\n[AMQ-8354] refactor integration tests\n\n[AMQ-8354] Replication Tests: soft failover tests\n\n[AMQ-8354] refactor integration tests\n\n[AMQ-8354] Fix integration tests.\n\n[AMQ-8354] add replication redelivery plugin test\n\n[AMQ-8354] fix Replica Plugin Queue Test\n\n[AMQ-8354] Remove unused imports.\n\n[AMQ-8354] Add missing licenses.\n\n[AMQ-8354] Fix classloader issue.\nImprove failover logs.\n\n[AMQ-8354] Add heart beat messages.\n\n[AMQ-8354] Add versioning.\n\n[AMQ-8354] Throw exception on replication errors.\n\n[AMQ-8354] Delete TODOs and FIXMEs\n\n[AMQ-8354] add replication lag and wait time metrics.\n\n[AMQ-9239] Host joram jms unit tests ahead of converting to jakarta.jms (#1002)\n\nMerging now for jakarta work, may backout later\n\nRemoving 5.16.x from list of supported versions\n\nfix typo in activemq launcher script\n\n[AMQ-8394] Don't disable jolokia server.\n\nadd replication plugin test profile: replica-plugin\n\nFix slow ack replication.\n\n[AMQ-8354] Fix Replication event is out of order on broker restart.\n\n[AMQ-8354] Force producer flow control.\n\n[AMQ-8354] Add replication flow control.\n\n[AMQ-8354] Add an error log if a replication message is being sent to DLQ.\n\n[AMQ-8354] Add JMX metric to monitor replication flow control.\n\nmirrored queue does not mirror replication queues (#25)\n\nMessage expired failure when the destination doesn't exist\n\nFix Formatting\n\nfix flaky Replication Integration tests\n\nfix flaky test: ReplicaAcknowledgeReplicationEventTest\n\nFixes after rebase\n\n* Removing a duplicate dispatchNotification method from Queue\n* Added getConnectedTimestamp implementation to DummyConnection since this has been added to the interface recently\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"[AMQ-8354] Add initial plugin skeleton"}},{"before":null,"after":"2bfe6b9b1f15fc83a10e18b7c8d7ca82a63fddc2","ref":"refs/heads/5.18.x-mod-with-replica-plugin","pushedAt":"2024-03-14T23:45:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Fixes after rebase\n\n* Removing a duplicate dispatchNotification method from Queue\n* Added getConnectedTimestamp implementation to DummyConnection since this has been added to the interface recently\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Fixes after rebase"}},{"before":null,"after":"c1b17359e430c329390075960cdd019958b089d2","ref":"refs/heads/5.18.x-with-replica-plugin-support-rewrite","pushedAt":"2024-03-14T22:36:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-8354] Add helper methods needed for replica plugin.\n\n* added a \"queuePurged\" method to notify about a queue being purged, with appropriate stub implementations for EmptyBroker and ErrorBroker. This is needed for queue purge replication.\n\n* added ConnectionContext#setUserName to be able to differentiate replication context (the context we use to interact with the broker) from every other to prevent replication of replicated events.\n\n* added a new public \"getMatchingMessages\" method to be able to get messages by selector when the consumer is full. Used by the replica plugin for message compaction.\n\n* added \"getDispatched\" method to fetch the list of messages we are acknowledging. This is used by the replica plugin to correctly replicate ACKs\n\n* Bugfix in processDispatchNotification, getMatchingMessage and processMessageDispatchNotification to be able to replicate acks correctly. These code paths have not been used since pure master-slave feature was deleted, but is needed by the replica broker plugin.","shortMessageHtmlLink":"[AMQ-8354] Add helper methods needed for replica plugin."}},{"before":"163f58303f0f0a0ac0a1c7172046c6037ef43a5c","after":"341071974138b8c685b52a7a2cb698cbb7b73bb3","ref":"refs/heads/main-mod-with-replica-plugin","pushedAt":"2024-03-14T21:25:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Nit - remove unused imports from ReplicaSourceBroker\n\nSigned-off-by: Kartik Ganesh ","shortMessageHtmlLink":"Nit - remove unused imports from ReplicaSourceBroker"}},{"before":null,"after":"c3ff7ef072d3b13ae185fffc85fe20397773b61b","ref":"refs/heads/activemq-5.18.x","pushedAt":"2024-03-14T21:19:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-9450] Expose Job Scheduler views with destination via JMX\n\n(cherry picked from commit 81e6b90ac8f4354279cb00356232bfde4ccd1f31)","shortMessageHtmlLink":"[AMQ-9450] Expose Job Scheduler views with destination via JMX"}},{"before":null,"after":"163f58303f0f0a0ac0a1c7172046c6037ef43a5c","ref":"refs/heads/main-mod-with-replica-plugin","pushedAt":"2024-03-14T20:48:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"fix flaky test: ReplicaAcknowledgeReplicationEventTest","shortMessageHtmlLink":"fix flaky test: ReplicaAcknowledgeReplicationEventTest"}},{"before":null,"after":"a9082739ddfd1dc370fd484137d70e4e39912cd6","ref":"refs/heads/main-with-replica-plugin-support-rewrite","pushedAt":"2024-03-13T23:37:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[AMQ-8354] Add helper methods needed for replica plugin.\n\n* added a \"queuePurged\" method to notify about a queue being purged, with appropriate stub implementations for EmptyBroker and ErrorBroker. This is needed for queue purge replication.\n\n* added ConnectionContext#setUserName to be able to differentiate replication context (the context we use to interact with the broker) from every other to prevent replication of replicated events.\n\n* added a new public \"getMatchingMessages\" method to be able to get messages by selector when the consumer is full. Used by the replica plugin for message compaction.\n\n* added \"getDispatched\" method to fetch the list of messages we are acknowledging. This is used by the replica plugin to correctly replicate ACKs\n\n* Bugfix in processDispatchNotification, getMatchingMessage and processMessageDispatchNotification to be able to replicate acks correctly. These code paths have not been used since pure master-slave feature was deleted, but is needed by the replica broker plugin.","shortMessageHtmlLink":"[AMQ-8354] Add helper methods needed for replica plugin."}},{"before":null,"after":"99bedce3ca0871cb6b1f8f2e508fba6001c7a635","ref":"refs/heads/main-with-replica-plugin-support","pushedAt":"2024-03-13T22:53:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"Fix slow ack replication.","shortMessageHtmlLink":"Fix slow ack replication."}},{"before":"fc13d61714c1554433fd06becceed55dbe9ef8e5","after":"72bbb0c521a3811971006c703030ce8fdc5e4f41","ref":"refs/heads/main","pushedAt":"2024-03-13T22:27:36.000Z","pushType":"push","commitsCount":216,"pusher":{"login":"kartg","name":"Kartik Ganesh","path":"/kartg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/85275476?s=80&v=4"},"commit":{"message":"[maven-release-plugin] prepare for next development iteration","shortMessageHtmlLink":"[maven-release-plugin] prepare for next development iteration"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEIh2j8AA","startCursor":null,"endCursor":null}},"title":"Activity ยท kartg/upstreaming-activemq"}