From d730d1a684c6868ba24745c1ccd220c14b84c74f Mon Sep 17 00:00:00 2001 From: Clebert Suconic Date: Thu, 16 Mar 2023 20:36:09 -0400 Subject: [PATCH] NO-JIRA Testsuite speedup: proper JDBC drop from derby --- .../impl/HAPolicyConfigurationTest.java | 9 + .../server/impl/jdbc/JdbcNodeManagerTest.java | 48 ++--- .../artemis/tests/util/ActiveMQTestBase.java | 182 ++++++++++-------- .../amqp/AmqpClientTestSupport.java | 2 +- .../integration/client/HeuristicXATest.java | 2 +- .../cluster/JdbcNodeManagerTest.java | 7 +- .../federation/FederatedTestBase.java | 2 +- .../jdbc/store/journal/JDBCJournalTest.java | 32 ++- .../MultiprotocolJMSClientTestSupport.java | 2 +- .../largemessage/LargeMessageTestBase.java | 3 - .../management/BridgeControlTest.java | 2 +- .../BridgeControlUsingCoreTest.java | 2 +- .../ClusterConnectionControl2Test.java | 2 +- .../ClusterConnectionControlTest.java | 2 +- .../ConnectionRouterControlTest.java | 2 +- .../management/ManagementTestBase.java | 4 +- .../openwire/OpenWireTestBase.java | 2 +- ...ectionFactoryConfigurationStorageTest.java | 161 ---------------- .../persistence/JMSStorageManagerTest.java | 158 ++++++++++++++- .../persistence/StorageManagerTestBase.java | 31 --- .../integration/routing/ElasticQueueTest.java | 2 +- .../integration/xa/BasicXaRecoveryTest.java | 12 +- .../tests/util/JMSClusteredTestBase.java | 4 +- .../artemis/tests/util/JMSTestBase.java | 2 +- 24 files changed, 309 insertions(+), 366 deletions(-) delete mode 100644 tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSConnectionFactoryConfigurationStorageTest.java diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java index 13974dd2df..dfb48ea4be 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/HAPolicyConfigurationTest.java @@ -53,12 +53,21 @@ import org.apache.activemq.artemis.quorum.UnavailableStateException; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.hamcrest.MatcherAssert; import org.hamcrest.core.IsInstanceOf; +import org.junit.After; import org.junit.Test; import static org.hamcrest.CoreMatchers.instanceOf; public class HAPolicyConfigurationTest extends ActiveMQTestBase { + @Override + @After + public void tearDown() throws Exception { + super.tearDown(); + + shutdownDerby(); + } + @Test public void shouldNotUseJdbcNodeManagerWithoutHAPolicy() throws Exception { Configuration configuration = createConfiguration("database-store-no-hapolicy-config.xml"); diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/impl/jdbc/JdbcNodeManagerTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/impl/jdbc/JdbcNodeManagerTest.java index 47e76609de..4afb68ac92 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/impl/jdbc/JdbcNodeManagerTest.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/impl/jdbc/JdbcNodeManagerTest.java @@ -16,26 +16,26 @@ */ package org.apache.activemq.artemis.core.server.impl.jdbc; -import java.sql.DriverManager; +import java.lang.invoke.MethodHandles; import java.util.Arrays; import java.util.Collection; -import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import org.apache.activemq.artemis.core.config.storage.DatabaseStorageConfiguration; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; -import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @RunWith(Parameterized.class) public class JdbcNodeManagerTest extends ActiveMQTestBase { + private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + @Parameterized.Parameter public boolean useAuthentication; private DatabaseStorageConfiguration dbConf; @@ -50,43 +50,18 @@ public class JdbcNodeManagerTest extends ActiveMQTestBase { public void configure() { if (useAuthentication) { System.setProperty("derby.connection.requireAuthentication", "true"); - System.setProperty("derby.user." + getJdbcUser(), getJdbcPassword()); + System.setProperty("derby.user." + getJDBCUser(), getJDBCPassword()); } dbConf = createDefaultDatabaseStorageConfiguration(); - dbConf.setJdbcUser(getJdbcUser()); - dbConf.setJdbcPassword(getJdbcPassword()); + dbConf.setJdbcUser(getJDBCUser()); + dbConf.setJdbcPassword(getJDBCPassword()); leaseLockExecutor = Executors.newSingleThreadScheduledExecutor(); + runAfter(leaseLockExecutor::shutdownNow); } - @After - public void shutdownExecutors() throws InterruptedException { - try { - final CountDownLatch latch = new CountDownLatch(1); - leaseLockExecutor.execute(latch::countDown); - Assert.assertTrue("the scheduler of the lease lock has some pending task in ", latch.await(10, TimeUnit.SECONDS)); - } finally { - leaseLockExecutor.shutdownNow(); - } - } - @After @Override - public void shutdownDerby() { - try { - if (useAuthentication) { - DriverManager.getConnection("jdbc:derby:;shutdown=true", getJdbcUser(), getJdbcPassword()); - } else { - DriverManager.getConnection("jdbc:derby:;shutdown=true"); - } - } catch (Exception ignored) { - } - if (useAuthentication) { - System.clearProperty("derby.connection.requireAuthentication"); - System.clearProperty("derby.user." + getJdbcUser()); - } - } - - protected String getJdbcUser() { + protected String getJDBCUser() { if (useAuthentication) { return System.getProperty("jdbc.user", "testuser"); } else { @@ -94,7 +69,8 @@ public class JdbcNodeManagerTest extends ActiveMQTestBase { } } - protected String getJdbcPassword() { + @Override + protected String getJDBCPassword() { if (useAuthentication) { return System.getProperty("jdbc.password", "testpassword"); } else { diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java index 3ae98e4998..b48077ee30 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java @@ -38,12 +38,8 @@ import java.io.ObjectOutputStream; import java.io.OutputStream; import java.lang.management.ManagementFactory; import java.lang.ref.WeakReference; -import java.sql.Connection; -import java.sql.Driver; import java.sql.DriverManager; -import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Statement; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -138,8 +134,6 @@ import org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy; import org.apache.activemq.artemis.core.settings.impl.AddressSettings; import org.apache.activemq.artemis.core.settings.impl.PageFullMessagePolicy; import org.apache.activemq.artemis.core.transaction.impl.XidImpl; -import org.apache.activemq.artemis.jdbc.store.drivers.JDBCUtils; -import org.apache.activemq.artemis.jdbc.store.sql.SQLProvider; import org.apache.activemq.artemis.json.JsonObject; import org.apache.activemq.artemis.nativo.jlibaio.LibaioContext; import org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager; @@ -160,6 +154,7 @@ import org.apache.activemq.artemis.utils.actors.OrderedExecutorFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.invoke.MethodHandles; + import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; @@ -178,12 +173,6 @@ import org.junit.runner.Description; */ public abstract class ActiveMQTestBase extends Assert { - public MBeanServer getMBeanServer() { - MBeanServer mBeanServer = MBeanServerFactory.createMBeanServer(); - runAfter(() -> MBeanServerFactory.releaseMBeanServer(mBeanServer)); - return mBeanServer; - } - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); static { @@ -235,29 +224,64 @@ public abstract class ActiveMQTestBase extends Assert { // There is a verification about thread leakages. We only fail a single thread when this happens private static Set alreadyFailedThread = new HashSet<>(); - private LinkedList runAfter; + private List runAfter; - protected synchronized void runAfter(RunnableEx run) { - Assert.assertNotNull(run); + /** + * Use this method to cleanup your resources by passing lambdas. + * Exceptions thrown from your lambdas will just be logged and not passed as failures. + * @param lambda A RunnableEX instance that will be passed possibly from a lambda method + */ + protected void runAfter(RunnableEx lambda) { + runAfterEx(() -> { + try { + lambda.run(); + } catch (Throwable e) { + logger.warn("Lambda {} is throwing an exception", lambda.toString(), e); + } + }); + } + + /** + * Use this method to cleanup your resources and validating exceptional results by passing lambdas. + * Exceptions thrown from your lambdas will be sent straight to JUNIT. + * If more than one lambda threw an exception they will all be executed, however only the exception of the first one will + * sent to the junit runner. + * @param lambda A RunnableEX instance that will be passed possibly from a lambda method + */ + protected synchronized void runAfterEx(RunnableEx lambda) { + Assert.assertNotNull(lambda); if (runAfter == null) { - runAfter = new LinkedList(); + runAfter = new ArrayList<>(); } - runAfter.add(run); + runAfter.add(lambda); } @After - public void runAfter() { - if (runAfter != null) { - runAfter.forEach((r) -> { + public synchronized void runAfter() throws Throwable { + ArrayList throwables = new ArrayList<>(); + List localRunAfter = runAfter; + runAfter = null; + if (localRunAfter != null) { + localRunAfter.forEach((r) -> { try { r.run(); - } catch (Exception e) { + } catch (Throwable e) { logger.warn(e.getMessage(), e); + throwables.add(e); } }); } + + if (!throwables.isEmpty()) { + throw throwables.get(0); + } } + public MBeanServer createMBeanServer() { + MBeanServer mBeanServer = MBeanServerFactory.createMBeanServer(); + runAfter(() -> MBeanServerFactory.releaseMBeanServer(mBeanServer)); + return mBeanServer; + } protected void clearServers() { servers.clear(); @@ -300,16 +324,50 @@ public abstract class ActiveMQTestBase extends Assert { } }; - @After - public void shutdownDerby() { + // Static variable used by dropDerby + private static final String EXPECTED_DERBY_DROP_STATE = "08006"; + + // Static variable used by dropDerby + private static final String EXPECTED_DERBY_SHUTDOWN_STATE = "XJ015"; + + /** This method will be passed as a lambda into runAfter from createDefaultDatabaseStorageConfiguration */ + protected final void dropDerby() throws Exception { + String user = getJDBCUser(); + String password = getJDBCPassword(); try { - DriverManager.getConnection("jdbc:derby:" + getEmbeddedDataBaseName() + ";destroy=true"); - } catch (Exception ignored) { + if (user == null) { + DriverManager.getConnection("jdbc:derby:" + getEmbeddedDataBaseName() + ";drop=true"); + } else { + DriverManager.getConnection("jdbc:derby:" + getEmbeddedDataBaseName() + ";drop=true", user, password); + } + } catch (SQLException sqlE) { + if (!sqlE.getSQLState().equals(EXPECTED_DERBY_DROP_STATE)) { + logger.warn("{} / {}", sqlE.getMessage(), sqlE.getSQLState()); + throw sqlE; + } else { + logger.info("{} / {}", sqlE.getMessage(), sqlE.getSQLState()); + + } } + } + + /** Some tests may be using file database as they share the database with a process. + * these tests will call shutdown Derby only */ + protected void shutdownDerby() throws SQLException { + String user = getJDBCUser(); + String password = getJDBCPassword(); try { - DriverManager.getConnection("jdbc:derby:;shutdown=true"); - } catch (Exception ignored) { - // it always throws an exception on shutdown + if (user == null) { + DriverManager.getConnection("jdbc:derby:;shutdown=true;deregister=false"); + } else { + DriverManager.getConnection("jdbc:derby:;shutdown=true;deregister=false", user, password); + } + } catch (SQLException sqlE) { + Assert.assertEquals("XJ015", sqlE.getSQLState()); + logger.debug("{} / {}", sqlE.getMessage(), sqlE.getSQLState()); + if (!sqlE.getSQLState().equals(EXPECTED_DERBY_SHUTDOWN_STATE)) { + throw sqlE; + } } } @@ -560,9 +618,22 @@ public abstract class ActiveMQTestBase extends Assert { configuration.setStoreConfiguration(createDefaultDatabaseStorageConfiguration()); } + private boolean derbyDropped = false; + protected DatabaseStorageConfiguration createDefaultDatabaseStorageConfiguration() { DatabaseStorageConfiguration dbStorageConfiguration = new DatabaseStorageConfiguration(); - dbStorageConfiguration.setJdbcConnectionUrl(getTestJDBCConnectionUrl()); + String connectionURI = getTestJDBCConnectionUrl(); + + /** The connectionURI could be passed into the testsuite as a system property (say you are testing against Oracle). + * So, we only schedule the drop on Derby if we are using a derby memory database */ + if (connectionURI.contains("derby") && connectionURI.contains("memory") && !derbyDropped) { + // some tests will reinitialize the server and call this method more than one time + // and we should only schedule one task + derbyDropped = true; + runAfterEx(this::dropDerby); + runAfterEx(this::shutdownDerby); + } + dbStorageConfiguration.setJdbcConnectionUrl(connectionURI); dbStorageConfiguration.setBindingsTableName("BINDINGS"); dbStorageConfiguration.setMessageTableName("MESSAGE"); dbStorageConfiguration.setLargeMessageTableName("LARGE_MESSAGE"); @@ -590,55 +661,6 @@ public abstract class ActiveMQTestBase extends Assert { return Long.getLong("jdbc.lock.renew", 200); } - public void destroyTables(List tableNames) throws Exception { - Driver driver = getDriver(getJDBCClassName()); - Connection connection = driver.connect(getTestJDBCConnectionUrl(), null); - Statement statement = connection.createStatement(); - try { - for (String tableName : tableNames) { - connection.setAutoCommit(false); - SQLProvider sqlProvider = JDBCUtils.getSQLProvider(getJDBCClassName(), tableName, SQLProvider.DatabaseStoreType.LARGE_MESSAGE); - try (ResultSet rs = connection.getMetaData().getTables(null, null, sqlProvider.getTableName(), null)) { - if (rs.next()) { - statement.execute("DROP TABLE " + sqlProvider.getTableName()); - } - connection.commit(); - } catch (SQLException e) { - connection.rollback(); - } - } - connection.setAutoCommit(true); - } catch (Throwable e) { - e.printStackTrace(); - } finally { - connection.close(); - } - } - - private Driver getDriver(String className) throws Exception { - try { - Driver driver = (Driver) Class.forName(className).newInstance(); - - // Shutdown the derby if using the derby embedded driver. - if (className.equals("org.apache.derby.jdbc.EmbeddedDriver")) { - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - try { - DriverManager.getConnection("jdbc:derby:;shutdown=true"); - } catch (Exception e) { - } - } - }); - } - return driver; - } catch (ClassNotFoundException cnfe) { - throw new RuntimeException("Could not find class: " + className); - } catch (Exception e) { - throw new RuntimeException("Unable to instantiate driver class: ", e); - } - } - protected Map generateInVMParams(final int node) { Map params = new HashMap<>(); @@ -672,7 +694,7 @@ public abstract class ActiveMQTestBase extends Assert { protected final OrderedExecutorFactory getOrderedExecutor() { final ExecutorService executor = Executors.newCachedThreadPool(ActiveMQThreadFactory.defaultThreadFactory(getClass().getName())); - executorSet.add(executor); + runAfter(executor::shutdownNow); return new OrderedExecutorFactory(executor); } @@ -897,7 +919,7 @@ public abstract class ActiveMQTestBase extends Assert { return "memory:" + getTestDir(); } - protected final String getTestJDBCConnectionUrl() { + private String getTestJDBCConnectionUrl() { return System.getProperty("jdbc.connection.url", "jdbc:derby:" + getEmbeddedDataBaseName() + ";create=true"); } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java index e1c2365d64..a8a4488aaf 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpClientTestSupport.java @@ -95,7 +95,7 @@ public class AmqpClientTestSupport extends AmqpTestSupport { protected ActiveMQServer server; - protected MBeanServer mBeanServer = getMBeanServer(); + protected MBeanServer mBeanServer = createMBeanServer(); @Before @Override diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java index 9566f45de0..9ec448001a 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/HeuristicXATest.java @@ -412,7 +412,7 @@ public class HeuristicXATest extends ActiveMQTestBase { @Before public void setUp() throws Exception { super.setUp(); - mbeanServer = getMBeanServer(); + mbeanServer = createMBeanServer(); locator = createInVMNonHALocator(); } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/JdbcNodeManagerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/JdbcNodeManagerTest.java index 8c0ea8e6c0..d3047dee20 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/JdbcNodeManagerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/JdbcNodeManagerTest.java @@ -42,7 +42,6 @@ public class JdbcNodeManagerTest extends NodeManagerTest { return th; }; Thread[] threads = new Thread[actions.length]; - List executors = new ArrayList<>(actions.length); List nodeManagers = new ArrayList<>(actions.length * 2); AtomicBoolean failedRenew = new AtomicBoolean(false); for (NodeManagerAction action : actions) { @@ -55,8 +54,8 @@ public class JdbcNodeManagerTest extends NodeManagerTest { NodeRunner nodeRunner = new NodeRunner(nodeManager, action); nodeRunners.add(nodeRunner); nodeManagers.add(nodeManager); - executors.add(scheduledExecutorService); - executors.add(executor); + runAfter(scheduledExecutorService::shutdownNow); + runAfter(executor::shutdownNow); } for (int i = 0, nodeRunnersSize = nodeRunners.size(); i < nodeRunnersSize; i++) { NodeRunner nodeRunner = nodeRunners.get(i); @@ -89,8 +88,6 @@ public class JdbcNodeManagerTest extends NodeManagerTest { } }); - // stop executors - executors.forEach(ExecutorService::shutdownNow); for (NodeRunner nodeRunner : nodeRunners) { if (nodeRunner.e != null) { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java index 08c29f61e7..0ba2b8bcb3 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedTestBase.java @@ -52,7 +52,7 @@ public class FederatedTestBase extends ActiveMQTestBase { public void setUp() throws Exception { super.setUp(); for (int i = 0; i < numberOfServers(); i++) { - MBeanServer mBeanServer = getMBeanServer(); + MBeanServer mBeanServer = createMBeanServer(); mBeanServers.add(mBeanServer); Configuration config = createDefaultConfig(i, false).setSecurityEnabled(false); for (int j = 0; j < numberOfServers(); j++) { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jdbc/store/journal/JDBCJournalTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jdbc/store/journal/JDBCJournalTest.java index 41712b9dbc..c947a46b52 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jdbc/store/journal/JDBCJournalTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jdbc/store/journal/JDBCJournalTest.java @@ -16,7 +16,7 @@ */ package org.apache.activemq.artemis.tests.integration.jdbc.store.journal; -import java.sql.DriverManager; +import java.lang.invoke.MethodHandles; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; @@ -46,10 +46,14 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @RunWith(Parameterized.class) public class JDBCJournalTest extends ActiveMQTestBase { + private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + @Rule public ThreadLeakCheckRule threadLeakCheckRule = new ThreadLeakCheckRule(); @@ -74,27 +78,16 @@ public class JDBCJournalTest extends ActiveMQTestBase { @After @Override public void tearDown() throws Exception { + super.tearDown(); journal.destroy(); - try { - if (useAuthentication) { - DriverManager.getConnection("jdbc:derby:;shutdown=true", getJdbcUser(), getJdbcPassword()); - } else { - DriverManager.getConnection("jdbc:derby:;shutdown=true"); - } - } catch (Exception ignored) { - } - if (useAuthentication) { - System.clearProperty("derby.connection.requireAuthentication"); - System.clearProperty("derby.user." + getJdbcUser()); - } scheduledExecutorService.shutdownNow(); - scheduledExecutorService.awaitTermination(5, TimeUnit.SECONDS); scheduledExecutorService = null; executorService.shutdown(); executorService = null; } - protected String getJdbcUser() { + @Override + protected String getJDBCUser() { if (useAuthentication) { return System.getProperty("jdbc.user", "testuser"); } else { @@ -102,7 +95,8 @@ public class JDBCJournalTest extends ActiveMQTestBase { } } - protected String getJdbcPassword() { + @Override + protected String getJDBCPassword() { if (useAuthentication) { return System.getProperty("jdbc.password", "testpassword"); } else { @@ -115,9 +109,9 @@ public class JDBCJournalTest extends ActiveMQTestBase { dbConf = createDefaultDatabaseStorageConfiguration(); if (useAuthentication) { System.setProperty("derby.connection.requireAuthentication", "true"); - System.setProperty("derby.user." + getJdbcUser(), getJdbcPassword()); - dbConf.setJdbcUser(getJdbcUser()); - dbConf.setJdbcPassword(getJdbcPassword()); + System.setProperty("derby.user." + getJDBCUser(), getJDBCPassword()); + dbConf.setJdbcUser(getJDBCUser()); + dbConf.setJdbcPassword(getJDBCPassword()); } sqlProvider = JDBCUtils.getSQLProvider( dbConf.getJdbcDriverClassName(), diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/multiprotocol/MultiprotocolJMSClientTestSupport.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/multiprotocol/MultiprotocolJMSClientTestSupport.java index 3a45e6d849..59b49fc3b5 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/multiprotocol/MultiprotocolJMSClientTestSupport.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/multiprotocol/MultiprotocolJMSClientTestSupport.java @@ -70,7 +70,7 @@ public abstract class MultiprotocolJMSClientTestSupport extends ActiveMQTestBase protected ActiveMQServer server; - protected MBeanServer mBeanServer = getMBeanServer(); + protected MBeanServer mBeanServer = createMBeanServer(); protected ConnectionSupplier AMQPConnection = () -> createConnection(); protected ConnectionSupplier CoreConnection = () -> createCoreConnection(); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/largemessage/LargeMessageTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/largemessage/LargeMessageTestBase.java index 36417c3bb4..5aeadb2c62 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/largemessage/LargeMessageTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/largemessage/LargeMessageTestBase.java @@ -78,9 +78,6 @@ public abstract class LargeMessageTestBase extends ActiveMQTestBase { @Override public void tearDown() throws Exception { super.tearDown(); - if (storeType == StoreConfiguration.StoreType.DATABASE) { - destroyTables(Arrays.asList("BINDINGS", "LARGE_MESSAGE", "MESSAGE", "NODE_MANAGER_STORE")); - } } @Parameterized.Parameters(name = "storeType={0}") diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java index 4c262c1c33..213f6366b2 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlTest.java @@ -138,7 +138,7 @@ public class BridgeControlTest extends ManagementTestBase { Configuration conf_0 = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName())).addConnectorConfiguration(connectorConfig.getName(), connectorConfig).addQueueConfiguration(sourceQueueConfig).addBridgeConfiguration(bridgeConfig); - server_1 = addServer(ActiveMQServers.newActiveMQServer(conf_1, getMBeanServer(), false)); + server_1 = addServer(ActiveMQServers.newActiveMQServer(conf_1, createMBeanServer(), false)); addServer(server_1); server_1.start(); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java index 5c2eea3ed2..b24db885a7 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/BridgeControlUsingCoreTest.java @@ -115,7 +115,7 @@ public class BridgeControlUsingCoreTest extends ManagementTestBase { Configuration conf_0 = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY)).addConnectorConfiguration(connectorConfig.getName(), connectorConfig).addQueueConfiguration(sourceQueueConfig).addBridgeConfiguration(bridgeConfig); - server_1 = addServer(ActiveMQServers.newActiveMQServer(conf_1, getMBeanServer(), false)); + server_1 = addServer(ActiveMQServers.newActiveMQServer(conf_1, createMBeanServer(), false)); server_1.start(); server_0 = addServer(ActiveMQServers.newActiveMQServer(conf_0, mbeanServer, false)); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControl2Test.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControl2Test.java index 67e1567f7d..73b825ece8 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControl2Test.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControl2Test.java @@ -117,7 +117,7 @@ public class ClusterConnectionControl2Test extends ManagementTestBase { Configuration conf_0 = createBasicConfig(1).addClusterConfiguration(clusterConnectionConfig_0).addAcceptorConfiguration(acceptorConfig_0).addConnectorConfiguration("netty", connectorConfig_0).addDiscoveryGroupConfiguration(discoveryName, discoveryGroupConfig).addBroadcastGroupConfiguration(broadcastGroupConfig); - mbeanServer_1 = getMBeanServer(); + mbeanServer_1 = createMBeanServer(); server1 = addServer(ActiveMQServers.newActiveMQServer(conf_1, mbeanServer_1, false)); server0 = addServer(ActiveMQServers.newActiveMQServer(conf_0, mbeanServer, false)); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControlTest.java index 1356f5cfca..56dc99dbc4 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControlTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ClusterConnectionControlTest.java @@ -205,7 +205,7 @@ public class ClusterConnectionControlTest extends ManagementTestBase { Configuration conf_0 = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName())).addConnectorConfiguration(connectorConfig.getName(), connectorConfig).addClusterConfiguration(clusterConnectionConfig1).addClusterConfiguration(clusterConnectionConfig2).addDiscoveryGroupConfiguration(discoveryGroupName, discoveryGroupConfig); - mbeanServer_1 = getMBeanServer(); + mbeanServer_1 = createMBeanServer(); server_1 = addServer(ActiveMQServers.newActiveMQServer(conf_1, mbeanServer_1, false)); server_1.start(); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ConnectionRouterControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ConnectionRouterControlTest.java index 71fd814c89..47cecd08cd 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ConnectionRouterControlTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ConnectionRouterControlTest.java @@ -43,7 +43,7 @@ public class ConnectionRouterControlTest extends RoutingTestBase { public void setUp() throws Exception { super.setUp(); - mbeanServer = getMBeanServer(); + mbeanServer = createMBeanServer(); } @Override diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ManagementTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ManagementTestBase.java index 1f65d596ed..eb6b42d17e 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ManagementTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ManagementTestBase.java @@ -34,7 +34,7 @@ import org.junit.Before; public abstract class ManagementTestBase extends ActiveMQTestBase { - protected MBeanServer mbeanServer = getMBeanServer(); + protected MBeanServer mbeanServer = createMBeanServer(); @@ -70,7 +70,7 @@ public abstract class ManagementTestBase extends ActiveMQTestBase { public void setUp() throws Exception { super.setUp(); - getMBeanServer(); + createMBeanServer(); } @Override diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/OpenWireTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/OpenWireTestBase.java index 7044d91cef..a8d2cdf6c8 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/OpenWireTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/OpenWireTestBase.java @@ -113,7 +113,7 @@ public class OpenWireTestBase extends ActiveMQTestBase { securityManager.getConfiguration().addRole("openwireDestinationManager", "advisoryReceiver"); } - mbeanServer = getMBeanServer(); + mbeanServer = createMBeanServer(); server.setMBeanServer(mbeanServer); addServer(server); server.start(); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSConnectionFactoryConfigurationStorageTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSConnectionFactoryConfigurationStorageTest.java deleted file mode 100644 index 567e7246df..0000000000 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSConnectionFactoryConfigurationStorageTest.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.tests.integration.persistence; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.activemq.artemis.api.core.ActiveMQBuffer; -import org.apache.activemq.artemis.api.core.ActiveMQBuffers; -import org.apache.activemq.artemis.api.core.Pair; -import org.apache.activemq.artemis.core.config.StoreConfiguration; -import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants; -import org.apache.activemq.artemis.jms.persistence.config.PersistedConnectionFactory; -import org.apache.activemq.artemis.jms.server.config.ConnectionFactoryConfiguration; -import org.apache.activemq.artemis.jms.server.config.impl.ConnectionFactoryConfigurationImpl; -import org.apache.activemq.artemis.utils.RandomUtil; -import org.junit.Before; -import org.junit.Test; - -public class JMSConnectionFactoryConfigurationStorageTest extends StorageManagerTestBase { - - private Map mapExpectedCFs; - - public JMSConnectionFactoryConfigurationStorageTest(StoreConfiguration.StoreType storeType) { - super(storeType); - } - - @Override - @Before - public void setUp() throws Exception { - super.setUp(); - - mapExpectedCFs = new HashMap<>(); - } - - protected void addSetting(PersistedConnectionFactory setting) throws Exception { - mapExpectedCFs.put(setting.getName(), setting); - jmsJournal.storeConnectionFactory(setting); - } - - @Test - public void testSettings() throws Exception { - - createJMSStorage(); - - List transportConfigs = new ArrayList<>(); - - for (int i = 0; i < 5; i++) { - transportConfigs.add("c1-" + i); - transportConfigs.add("c2-" + i); - } - - ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl().setName("some-name").setConnectorNames(transportConfigs); - - addSetting(new PersistedConnectionFactory(config)); - - jmsJournal.stop(); - - createJMSStorage(); - - List cfs = jmsJournal.recoverConnectionFactories(); - - assertEquals(1, cfs.size()); - - assertEquals("some-name", cfs.get(0).getName()); - - PersistedConnectionFactory cf1 = cfs.get(0); - - assertEquals(10, cf1.getConfig().getConnectorNames().size()); - - List configs = cf1.getConfig().getConnectorNames(); - for (int i = 0, j = 0; i < 10; i += 2, j++) { - assertEquals(configs.get(i), "c1-" + j); - assertEquals(configs.get(i + 1), "c2-" + j); - } - } - - @Test - public void testSizeOfCF() throws Exception { - - String[] str = new String[5]; - for (int i = 0; i < 5; i++) { - str[i] = "str" + i; - } - - ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl().setName("some-name").setConnectorNames(new ArrayList()).setBindings(""); - - int size = config.getEncodeSize(); - - ActiveMQBuffer buffer = ActiveMQBuffers.fixedBuffer(size); - - config.encode(buffer); - - assertEquals(size, buffer.writerIndex()); - - PersistedConnectionFactory persistedCF = new PersistedConnectionFactory(config); - - size = persistedCF.getEncodeSize(); - - buffer = ActiveMQBuffers.fixedBuffer(size); - - persistedCF.encode(buffer); - - assertEquals(size, buffer.writerIndex()); - - } - - @Test - public void testSettingsWithConnectorConfigs() throws Exception { - - createJMSStorage(); - - String[] str = new String[5]; - for (int i = 0; i < 5; i++) { - str[i] = "str" + i; - } - - List connectorConfigs = new ArrayList<>(); - Map liveParams = new HashMap<>(); - liveParams.put(TransportConstants.PORT_PROP_NAME, 5665); - Map backupParams = new HashMap<>(); - backupParams.put(TransportConstants.PORT_PROP_NAME, 5775); - Map liveParams2 = new HashMap<>(); - liveParams2.put(TransportConstants.PORT_PROP_NAME, 6665); - - ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl().setName("some-name").setConnectorNames(connectorConfigs).setBindings(str).setCallTimeout(RandomUtil.randomPositiveLong()); - List> connectors = new ArrayList<>(); - connectors.add(new Pair(RandomUtil.randomString(), null)); - //config.setConnectorNames(connectors); - - addSetting(new PersistedConnectionFactory(config)); - - jmsJournal.stop(); - - createJMSStorage(); - - List cfs = jmsJournal.recoverConnectionFactories(); - - assertEquals(1, cfs.size()); - - assertEquals("some-name", cfs.get(0).getName()); - - assertEquals(config.getCallTimeout(), cfs.get(0).getConfig().getCallTimeout()); - } -} diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSStorageManagerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSStorageManagerTest.java index 6186206e65..88edb20fde 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSStorageManagerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/JMSStorageManagerTest.java @@ -16,21 +16,159 @@ */ package org.apache.activemq.artemis.tests.integration.persistence; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; -import org.apache.activemq.artemis.core.config.StoreConfiguration; +import org.apache.activemq.artemis.api.core.ActiveMQBuffer; +import org.apache.activemq.artemis.api.core.ActiveMQBuffers; +import org.apache.activemq.artemis.api.core.Pair; +import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants; +import org.apache.activemq.artemis.jms.persistence.JMSStorageManager; import org.apache.activemq.artemis.jms.persistence.config.PersistedBindings; +import org.apache.activemq.artemis.jms.persistence.config.PersistedConnectionFactory; import org.apache.activemq.artemis.jms.persistence.config.PersistedDestination; import org.apache.activemq.artemis.jms.persistence.config.PersistedType; +import org.apache.activemq.artemis.jms.persistence.impl.journal.JMSJournalStorageManagerImpl; +import org.apache.activemq.artemis.jms.server.config.ConnectionFactoryConfiguration; +import org.apache.activemq.artemis.jms.server.config.impl.ConnectionFactoryConfigurationImpl; +import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; +import org.apache.activemq.artemis.utils.RandomUtil; +import org.apache.activemq.artemis.utils.TimeAndCounterIDGenerator; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; -public class JMSStorageManagerTest extends StorageManagerTestBase { +public class JMSStorageManagerTest extends ActiveMQTestBase { - public JMSStorageManagerTest(StoreConfiguration.StoreType storeType) { - super(storeType); + private Map mapExpectedCFs; + + protected JMSStorageManager jmsJournal; + + public JMSStorageManagerTest() { + super(); } + @Override + @Before + public void setUp() throws Exception { + super.setUp(); + + mapExpectedCFs = new HashMap<>(); + } + + protected void addSetting(PersistedConnectionFactory setting) throws Exception { + mapExpectedCFs.put(setting.getName(), setting); + jmsJournal.storeConnectionFactory(setting); + } + + @Test + public void testSettings() throws Exception { + + createJMSStorage(); + + List transportConfigs = new ArrayList<>(); + + for (int i = 0; i < 5; i++) { + transportConfigs.add("c1-" + i); + transportConfigs.add("c2-" + i); + } + + ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl().setName("some-name").setConnectorNames(transportConfigs); + + addSetting(new PersistedConnectionFactory(config)); + + jmsJournal.stop(); + + createJMSStorage(); + + List cfs = jmsJournal.recoverConnectionFactories(); + + assertEquals(1, cfs.size()); + + assertEquals("some-name", cfs.get(0).getName()); + + PersistedConnectionFactory cf1 = cfs.get(0); + + assertEquals(10, cf1.getConfig().getConnectorNames().size()); + + List configs = cf1.getConfig().getConnectorNames(); + for (int i = 0, j = 0; i < 10; i += 2, j++) { + assertEquals(configs.get(i), "c1-" + j); + assertEquals(configs.get(i + 1), "c2-" + j); + } + } + + @Test + public void testSizeOfCF() throws Exception { + + String[] str = new String[5]; + for (int i = 0; i < 5; i++) { + str[i] = "str" + i; + } + + ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl().setName("some-name").setConnectorNames(new ArrayList()).setBindings(""); + + int size = config.getEncodeSize(); + + ActiveMQBuffer buffer = ActiveMQBuffers.fixedBuffer(size); + + config.encode(buffer); + + assertEquals(size, buffer.writerIndex()); + + PersistedConnectionFactory persistedCF = new PersistedConnectionFactory(config); + + size = persistedCF.getEncodeSize(); + + buffer = ActiveMQBuffers.fixedBuffer(size); + + persistedCF.encode(buffer); + + assertEquals(size, buffer.writerIndex()); + + } + + @Test + public void testSettingsWithConnectorConfigs() throws Exception { + + createJMSStorage(); + + String[] str = new String[5]; + for (int i = 0; i < 5; i++) { + str[i] = "str" + i; + } + + List connectorConfigs = new ArrayList<>(); + Map liveParams = new HashMap<>(); + liveParams.put(TransportConstants.PORT_PROP_NAME, 5665); + Map backupParams = new HashMap<>(); + backupParams.put(TransportConstants.PORT_PROP_NAME, 5775); + Map liveParams2 = new HashMap<>(); + liveParams2.put(TransportConstants.PORT_PROP_NAME, 6665); + + ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl().setName("some-name").setConnectorNames(connectorConfigs).setBindings(str).setCallTimeout(RandomUtil.randomPositiveLong()); + List> connectors = new ArrayList<>(); + connectors.add(new Pair(RandomUtil.randomString(), null)); + //config.setConnectorNames(connectors); + + addSetting(new PersistedConnectionFactory(config)); + + jmsJournal.stop(); + + createJMSStorage(); + + List cfs = jmsJournal.recoverConnectionFactories(); + + assertEquals(1, cfs.size()); + + assertEquals("some-name", cfs.get(0).getName()); + + assertEquals(config.getCallTimeout(), cfs.get(0).getConfig().getCallTimeout()); + } + + //https://issues.jboss.org/browse/HORNETQ-812 @Test public void testJNDIPersistence() throws Exception { @@ -76,4 +214,16 @@ public class JMSStorageManagerTest extends StorageManagerTestBase { } + + /** + * @throws Exception + */ + protected void createJMSStorage() throws Exception { + jmsJournal = new JMSJournalStorageManagerImpl(null, new TimeAndCounterIDGenerator(), createDefaultInVMConfig(), null); + runAfter(jmsJournal::stop); + jmsJournal.start(); + jmsJournal.load(); + } + + } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/StorageManagerTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/StorageManagerTestBase.java index 2aae25c78e..bb9fc9556b 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/StorageManagerTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/persistence/StorageManagerTestBase.java @@ -31,13 +31,10 @@ import org.apache.activemq.artemis.core.persistence.QueueBindingInfo; import org.apache.activemq.artemis.core.persistence.StorageManager; import org.apache.activemq.artemis.core.persistence.impl.journal.JDBCJournalStorageManager; import org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager; -import org.apache.activemq.artemis.jms.persistence.JMSStorageManager; -import org.apache.activemq.artemis.jms.persistence.impl.journal.JMSJournalStorageManagerImpl; import org.apache.activemq.artemis.tests.unit.core.server.impl.fakes.FakeJournalLoader; import org.apache.activemq.artemis.tests.unit.core.server.impl.fakes.FakePostOffice; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.apache.activemq.artemis.utils.ExecutorFactory; -import org.apache.activemq.artemis.utils.TimeAndCounterIDGenerator; import org.apache.activemq.artemis.utils.critical.EmptyCriticalAnalyzer; import org.junit.After; import org.junit.Before; @@ -55,8 +52,6 @@ public abstract class StorageManagerTestBase extends ActiveMQTestBase { protected StorageManager journal; - protected JMSStorageManager jmsJournal; - protected StoreConfiguration.StoreType storeType; public StorageManagerTestBase(StoreConfiguration.StoreType storeType) { @@ -73,10 +68,6 @@ public abstract class StorageManagerTestBase extends ActiveMQTestBase { @Before @SuppressWarnings("unused") public void setUp() throws Exception { - if (storeType == StoreConfiguration.StoreType.DATABASE) { - Object unused = Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); - } - super.setUp(); execFactory = getOrderedExecutor(); @@ -99,20 +90,8 @@ public abstract class StorageManagerTestBase extends ActiveMQTestBase { journal = null; } - if (jmsJournal != null) { - try { - jmsJournal.stop(); - } catch (Exception e) { - if (exception != null) - exception = e; - } - - jmsJournal = null; - } - scheduledExecutorService.shutdown(); - destroyTables(Arrays.asList(new String[]{"MESSAGE", "BINDINGS", "LARGE_MESSAGE", "NODE_MANAGER_STORE"})); super.tearDown(); if (exception != null) throw exception; @@ -154,14 +133,4 @@ public abstract class StorageManagerTestBase extends ActiveMQTestBase { return jsm; } - /** - * @throws Exception - */ - protected void createJMSStorage() throws Exception { - jmsJournal = new JMSJournalStorageManagerImpl(null, new TimeAndCounterIDGenerator(), createDefaultInVMConfig(), null); - addActiveMQComponent(jmsJournal); - jmsJournal.start(); - jmsJournal.load(); - } - } diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/routing/ElasticQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/routing/ElasticQueueTest.java index 0cf350e736..095be8d50e 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/routing/ElasticQueueTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/routing/ElasticQueueTest.java @@ -365,7 +365,7 @@ public class ElasticQueueTest extends ActiveMQTestBase { } } - MBeanServer mBeanServer = getMBeanServer(); + MBeanServer mBeanServer = createMBeanServer(); // hardwire authenticaton to map USER to EQ_USER etc final ActiveMQSecurityManager5 customSecurityManager = new ActiveMQSecurityManager5() { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/xa/BasicXaRecoveryTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/xa/BasicXaRecoveryTest.java index 568aabc4f1..2516b6c6bd 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/xa/BasicXaRecoveryTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/xa/BasicXaRecoveryTest.java @@ -43,7 +43,6 @@ import org.apache.activemq.artemis.jms.client.ActiveMQTextMessage; import org.apache.activemq.artemis.tests.integration.management.ManagementControlHelper; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.apache.activemq.artemis.utils.UUIDGenerator; -import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -108,7 +107,7 @@ public class BasicXaRecoveryTest extends ActiveMQTestBase { configuration = createDefaultInVMConfig().setJMXManagementEnabled(true); } - mbeanServer = getMBeanServer(); + mbeanServer = createMBeanServer(); server = createServer(true, configuration, -1, -1, addressSettings); server.setMBeanServer(mbeanServer); @@ -120,15 +119,6 @@ public class BasicXaRecoveryTest extends ActiveMQTestBase { createClients(true, false); } - @Override - @After - public void tearDown() throws Exception { - super.tearDown(); - if (storeType == StoreConfiguration.StoreType.DATABASE) { - destroyTables(Arrays.asList("BINDINGS", "LARGE_MESSAGE", "MESSAGE", "NODE_MANAGER_STORE")); - } - } - @Test public void testBasicSendWithCommit() throws Exception { diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSClusteredTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSClusteredTestBase.java index 07c599f1b8..3b60af218b 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSClusteredTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSClusteredTestBase.java @@ -118,7 +118,7 @@ public class JMSClusteredTestBase extends ActiveMQTestBase { JMSConfigurationImpl jmsconfig = new JMSConfigurationImpl(); - mBeanServer2 = getMBeanServer(); + mBeanServer2 = createMBeanServer(); server2 = addServer(ActiveMQServers.newActiveMQServer(configuration, mBeanServer2, enablePersistence())); jmsServer2 = new JMSServerManagerImpl(server2, jmsconfig); context2 = new InVMNamingContext(); @@ -133,7 +133,7 @@ public class JMSClusteredTestBase extends ActiveMQTestBase { JMSConfigurationImpl jmsconfig = new JMSConfigurationImpl(); - mBeanServer1 = getMBeanServer(); + mBeanServer1 = createMBeanServer(); server1 = addServer(ActiveMQServers.newActiveMQServer(configuration, mBeanServer1, enablePersistence())); jmsServer1 = new JMSServerManagerImpl(server1, jmsconfig); context1 = new InVMNamingContext(); diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSTestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSTestBase.java index b70de08a3b..739162a208 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSTestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/util/JMSTestBase.java @@ -126,7 +126,7 @@ public class JMSTestBase extends ActiveMQTestBase { public void setUp() throws Exception { super.setUp(); - mbeanServer = getMBeanServer(); + mbeanServer = createMBeanServer(); Configuration config = createDefaultConfig(true).setSecurityEnabled(useSecurity()). addConnectorConfiguration("invm", new TransportConfiguration(INVM_CONNECTOR_FACTORY)).