From 6015e24b5edf53d48c107e86bb94652327cb43a8 Mon Sep 17 00:00:00 2001 From: Justin Bertram Date: Mon, 1 Oct 2018 16:15:36 -0500 Subject: [PATCH] Revert "ARTEMIS-2094 - Fix Configuration change loss when network Issue" This reverts commit cce0e1927c258ce6f3c3c3cb0d90bad5337b7d12. --- .../core/server/impl/ActiveMQServerImpl.java | 63 ++++++++++--------- .../tests/integration/jms/RedeployTest.java | 22 +------ .../test/resources/reload-backup-changed.xml | 14 ----- .../test/resources/reload-backup-original.xml | 14 ----- .../test/resources/reload-live-changed.xml | 14 ----- .../test/resources/reload-live-original.xml | 14 ----- 6 files changed, 33 insertions(+), 108 deletions(-) diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java index a5591d06b3d..b5a49eec307 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java @@ -2602,7 +2602,15 @@ public void run() { } // Deploy the rest of the stuff - deployReloadableConfigFromConfiguration(configuration); + + // Deploy predefined addresses + deployAddressesFromConfiguration(); + + // Deploy any predefined queues + deployQueuesFromConfiguration(); + + // Undeploy any addresses and queues not in config + undeployAddressesAndQueueNotInConfiguration(); // We need to call this here, this gives any dependent server a chance to deploy its own addresses // this needs to be done before clustering is fully activated @@ -2822,8 +2830,6 @@ private void deployAddressSettingsFromConfiguration() { } } - - private JournalLoadInformation[] loadJournals() throws Exception { JournalLoader journalLoader = activation.createJournalLoader(postOffice, pagingManager, storageManager, queueFactory, nodeManager, managementService, groupingHandler, configuration, parentServer); @@ -3474,38 +3480,33 @@ private final class ConfigurationFileReloader implements ReloadCallback { @Override public void reload(URL uri) throws Exception { - Configuration config = new FileConfigurationParser().parseMainConfig(uri.openStream()); - LegacyJMSConfiguration legacyJMSConfiguration = new LegacyJMSConfiguration(config); - legacyJMSConfiguration.parseConfiguration(uri.openStream()); - configuration.setSecurityRoles(config.getSecurityRoles()); - configuration.setAddressesSettings(config.getAddressesSettings()); - configuration.setDivertConfigurations(config.getDivertConfigurations()); - configuration.setAddressConfigurations(config.getAddressConfigurations()); - configuration.setQueueConfigurations(config.getQueueConfigurations()); if (isActive()) { - deployReloadableConfigFromConfiguration(configuration); - } - } - } - - private void deployReloadableConfigFromConfiguration(Configuration config) throws Exception { - ActiveMQServerLogger.LOGGER.reloadingConfiguration("security"); - securityRepository.swap(config.getSecurityRoles().entrySet()); - - ActiveMQServerLogger.LOGGER.reloadingConfiguration("address settings"); - addressSettingsRepository.swap(config.getAddressesSettings().entrySet()); + Configuration config = new FileConfigurationParser().parseMainConfig(uri.openStream()); + LegacyJMSConfiguration legacyJMSConfiguration = new LegacyJMSConfiguration(config); + legacyJMSConfiguration.parseConfiguration(uri.openStream()); + + ActiveMQServerLogger.LOGGER.reloadingConfiguration("security"); + securityRepository.swap(config.getSecurityRoles().entrySet()); + configuration.setSecurityRoles(config.getSecurityRoles()); + + ActiveMQServerLogger.LOGGER.reloadingConfiguration("address settings"); + addressSettingsRepository.swap(config.getAddressesSettings().entrySet()); + configuration.setAddressesSettings(config.getAddressesSettings()); + + ActiveMQServerLogger.LOGGER.reloadingConfiguration("diverts"); + for (DivertConfiguration divertConfig : config.getDivertConfigurations()) { + if (postOffice.getBinding(new SimpleString(divertConfig.getName())) == null) { + deployDivert(divertConfig); + } + } - ActiveMQServerLogger.LOGGER.reloadingConfiguration("diverts"); - for (DivertConfiguration divertConfig : config.getDivertConfigurations()) { - if (postOffice.getBinding(new SimpleString(divertConfig.getName())) == null) { - deployDivert(divertConfig); + ActiveMQServerLogger.LOGGER.reloadingConfiguration("addresses"); + undeployAddressesAndQueueNotInConfiguration(config); + deployAddressesFromConfiguration(config); + configuration.setAddressConfigurations(config.getAddressConfigurations()); + configuration.setQueueConfigurations(config.getQueueConfigurations()); } } - - ActiveMQServerLogger.LOGGER.reloadingConfiguration("addresses"); - undeployAddressesAndQueueNotInConfiguration(config); - deployAddressesFromConfiguration(config); - deployQueuesFromListCoreQueueConfiguration(config.getQueueConfigurations()); } public Set getActivateCallbacks() { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java index c4c66060abd..cec56a0b071 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/RedeployTest.java @@ -21,7 +21,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; -import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -44,7 +43,6 @@ import org.apache.activemq.artemis.core.security.Role; import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ; import org.apache.activemq.artemis.core.server.impl.AddressInfo; -import org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy; import org.apache.activemq.artemis.core.settings.impl.AddressSettings; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.apache.activemq.artemis.junit.Wait; @@ -207,13 +205,6 @@ public void run() { @Test public void testRedeployWithFailover() throws Exception { - Set original = new HashSet<>(); - original.add(new Role("a", false, true, false, false, false, false, false, false, false, false)); - Set changed = new HashSet<>(); - changed.add(new Role("b", false, true, false, false, false, false, false, false, false, false)); - - - EmbeddedActiveMQ live = new EmbeddedActiveMQ(); EmbeddedActiveMQ backup = new EmbeddedActiveMQ(); @@ -241,11 +232,6 @@ public void testRedeployWithFailover() throws Exception { assertTrue(Wait.waitFor(() -> backup.getActiveMQServer().isReplicaSync(), 15000, 200)); - assertEquals("Test address settings original - live", AddressFullMessagePolicy.BLOCK, live.getActiveMQServer().getAddressSettingsRepository().getMatch("myQueue").getAddressFullMessagePolicy()); - assertEquals("Test address settings original - backup", AddressFullMessagePolicy.BLOCK, backup.getActiveMQServer().getAddressSettingsRepository().getMatch("myQueue").getAddressFullMessagePolicy()); - assertEquals("Test security settings original - live", original, live.getActiveMQServer().getSecurityRepository().getMatch("myQueue")); - assertEquals("Test security settings original - backup", original, backup.getActiveMQServer().getSecurityRepository().getMatch("myQueue")); - final ReusableLatch liveReloadLatch = new ReusableLatch(1); Runnable liveTick = () -> liveReloadLatch.countDown(); live.getActiveMQServer().getReloadManager().setTick(liveTick); @@ -273,13 +259,9 @@ public void testRedeployWithFailover() throws Exception { Session session = connection.createSession(); Queue queue = session.createQueue("myQueue2"); MessageProducer producer = session.createProducer(queue); - producer.send(session.createTextMessage("text1")); + producer.send(session.createTextMessage("text")); } - assertFalse(backup.getActiveMQServer().isActive()); - assertEquals("Test address settings redeploy - live", AddressFullMessagePolicy.PAGE, live.getActiveMQServer().getAddressSettingsRepository().getMatch("myQueue").getAddressFullMessagePolicy()); - assertEquals("Test security settings redeploy - live", changed, live.getActiveMQServer().getSecurityRepository().getMatch("myQueue")); - live.stop(); assertTrue(Wait.waitFor(() -> (backup.getActiveMQServer().isActive()), 5000, 100)); @@ -295,8 +277,6 @@ public void testRedeployWithFailover() throws Exception { Assert.assertNotNull("Queue wasn't deployed accordingly", consumer.receive(5000)); Assert.assertNotNull(consumer.receive(5000)); } - assertEquals("Test address settings redeploy - backup", changed, backup.getActiveMQServer().getSecurityRepository().getMatch("myQueue")); - assertEquals("Test security settings redeploy - backup", AddressFullMessagePolicy.PAGE, backup.getActiveMQServer().getAddressSettingsRepository().getMatch("myQueue").getAddressFullMessagePolicy()); } finally { live.stop(); backup.stop(); diff --git a/tests/integration-tests/src/test/resources/reload-backup-changed.xml b/tests/integration-tests/src/test/resources/reload-backup-changed.xml index a4d94f71e1e..8ea924120dd 100644 --- a/tests/integration-tests/src/test/resources/reload-backup-changed.xml +++ b/tests/integration-tests/src/test/resources/reload-backup-changed.xml @@ -78,19 +78,5 @@ under the License. - - - - PAGE - FORCE - FORCE - - - - - - - - diff --git a/tests/integration-tests/src/test/resources/reload-backup-original.xml b/tests/integration-tests/src/test/resources/reload-backup-original.xml index 5dd92b34d14..54a01a9293c 100644 --- a/tests/integration-tests/src/test/resources/reload-backup-original.xml +++ b/tests/integration-tests/src/test/resources/reload-backup-original.xml @@ -73,19 +73,5 @@ under the License. - - - - BLOCK - FORCE - FORCE - - - - - - - - diff --git a/tests/integration-tests/src/test/resources/reload-live-changed.xml b/tests/integration-tests/src/test/resources/reload-live-changed.xml index f60326329f6..17120ce9ea0 100644 --- a/tests/integration-tests/src/test/resources/reload-live-changed.xml +++ b/tests/integration-tests/src/test/resources/reload-live-changed.xml @@ -78,19 +78,5 @@ under the License. - - - - PAGE - FORCE - FORCE - - - - - - - - diff --git a/tests/integration-tests/src/test/resources/reload-live-original.xml b/tests/integration-tests/src/test/resources/reload-live-original.xml index 3979c9af37c..9051d5803b5 100644 --- a/tests/integration-tests/src/test/resources/reload-live-original.xml +++ b/tests/integration-tests/src/test/resources/reload-live-original.xml @@ -73,19 +73,5 @@ under the License. - - - - BLOCK - FORCE - FORCE - - - - - - - -