diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-04-04 22:34:26 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-04-04 22:34:26 +0000 |
| commit | 7344c8879c319c4ca6ab57963e6147d878a4e154 (patch) | |
| tree | 230bbd0d3b9aa28b0a6298ae5156a40c996ddcdb /qpid/java/systests/src | |
| parent | db86d03af2ce0f704398c2a9392e91e9637154ec (diff) | |
| download | qpid-python-7344c8879c319c4ca6ab57963e6147d878a4e154.tar.gz | |
QPID-5615 : [Java Broker] Migrate broker config store to use same API as VirtualHost config store
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1584931 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
39 files changed, 302 insertions, 321 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/client/ssl/SSLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/client/ssl/SSLTest.java index 7d5690b1bd..a7fd7d362d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/client/ssl/SSLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/client/ssl/SSLTest.java @@ -415,7 +415,7 @@ public class SSLTest extends QpidBrokerTestCase sslPortAttributes.put(Port.NAME, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT); sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); sslPortAttributes.put(Port.TRUST_STORES, Collections.singleton(TestBrokerConfiguration.ENTRY_NAME_SSL_TRUSTSTORE)); - getBrokerConfiguration().addPortConfiguration(sslPortAttributes); + getBrokerConfiguration().addObjectConfiguration(Port.class,sslPortAttributes); } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java index d3d952ea8c..ead6a36c13 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/AlertingTest.java @@ -24,20 +24,21 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import javax.jms.Connection; +import javax.jms.Queue; +import javax.jms.Session; + import org.apache.qpid.client.AMQDestination; import org.apache.qpid.client.AMQSession; import org.apache.qpid.server.management.plugin.HttpManagement; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory; import org.apache.qpid.systest.rest.RestTestHelper; import org.apache.qpid.test.utils.TestBrokerConfiguration; -import javax.jms.Connection; -import javax.jms.Queue; -import javax.jms.Session; - public class AlertingTest extends AbstractTestLogging { @@ -154,19 +155,19 @@ public class AlertingTest extends AbstractTestLogging RestTestHelper restTestHelper = new RestTestHelper(findFreePort()); TestBrokerConfiguration config = getBrokerConfiguration(); config.addHttpManagementConfiguration(); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.PORT, restTestHelper.getHttpPort()); - config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT); - config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_RMI_PORT); + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.PORT, restTestHelper.getHttpPort()); + config.removeObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_JMX_PORT); + config.removeObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_RMI_PORT); Map<String, Object> anonymousProviderAttributes = new HashMap<String, Object>(); anonymousProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE); anonymousProviderAttributes.put(AuthenticationProvider.NAME, "testAnonymous"); - config.addAuthenticationProviderConfiguration(anonymousProviderAttributes); + config.addObjectConfiguration(AuthenticationProvider.class, anonymousProviderAttributes); // set password authentication provider on http port for the tests - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); + config.setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); config.setSaved(false); restTestHelper.setUsernameAndPassword("webadmin", "webadmin"); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java index 6bd2b7569b..4952c4e10e 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java @@ -539,7 +539,7 @@ public class BrokerLoggingTest extends AbstractTestLogging sslPortAttributes.put(Port.NAME, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT); sslPortAttributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); - getBrokerConfiguration().addPortConfiguration(sslPortAttributes); + getBrokerConfiguration().addObjectConfiguration(Port.class, sslPortAttributes); startBroker(); @@ -833,7 +833,7 @@ public class BrokerLoggingTest extends AbstractTestLogging sslPortAttributes.put(Port.NAME, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT); sslPortAttributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); - getBrokerConfiguration().addPortConfiguration(sslPortAttributes); + getBrokerConfiguration().addObjectConfiguration(Port.class, sslPortAttributes); startBroker(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java index 7a1a6cd639..1baf998562 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/ExternalACLJMXTest.java @@ -20,6 +20,7 @@ package org.apache.qpid.server.security.acl; import org.apache.qpid.management.common.mbeans.ServerInformation; import org.apache.qpid.server.security.access.ObjectType; +import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.test.utils.JMXTestUtils; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -45,7 +46,7 @@ public class ExternalACLJMXTest extends AbstractACLTestCase public void setUp() throws Exception { //remove the normal 'test' vhost, we will configure the vhosts below - getBrokerConfiguration(0).removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + getBrokerConfiguration(0).removeObjectConfiguration(org.apache.qpid.server.model.VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); createTestVirtualHost(0, TEST_VHOST); createTestVirtualHost(0, TEST2_VHOST); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java index 85d3fc0cdc..c3c8e58cc7 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java @@ -96,7 +96,7 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase public void testExternalAuthenticationManagerOnNonSslPort() throws Exception { setCommonBrokerSSLProperties(true); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); super.setUp(); setClientKeystoreProperties(); @@ -202,7 +202,7 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase sslTrustStoreAttributes.put(TrustStore.PATH, BROKER_PEERSTORE); sslTrustStoreAttributes.put(TrustStore.PASSWORD, BROKER_PEERSTORE_PASSWORD); sslTrustStoreAttributes.put(TrustStore.PEERS_ONLY, true); - getBrokerConfiguration().addTrustStoreConfiguration(sslTrustStoreAttributes); + getBrokerConfiguration().addObjectConfiguration(TrustStore.class, sslTrustStoreAttributes); super.setUp(); @@ -283,7 +283,7 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase JMXTestUtils jmxUtils = new JMXTestUtils(this); setCommonBrokerSSLProperties(true); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER, ExternalAuthenticationManagerFactory.ATTRIBUTE_USE_FULL_DN, "true"); + getBrokerConfiguration().setObjectAttribute(AuthenticationProvider.class, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER, ExternalAuthenticationManagerFactory.ATTRIBUTE_USE_FULL_DN, "true"); getBrokerConfiguration().addJmxManagementConfiguration(); super.setUp(); @@ -343,14 +343,14 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase sslPortAttributes.put(Port.NAME, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT); sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); sslPortAttributes.put(Port.TRUST_STORES, trustStoreNames); - config.addPortConfiguration(sslPortAttributes); + config.addObjectConfiguration(Port.class, sslPortAttributes); Map<String, Object> externalAuthProviderAttributes = new HashMap<String, Object>(); externalAuthProviderAttributes.put(AuthenticationProvider.NAME, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); externalAuthProviderAttributes.put(AuthenticationProvider.TYPE, ExternalAuthenticationManagerFactory.PROVIDER_TYPE); - config.addAuthenticationProviderConfiguration(externalAuthProviderAttributes); + config.addObjectConfiguration(AuthenticationProvider.class, externalAuthProviderAttributes); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER); } private void setUntrustedClientKeystoreProperties() diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java index e70897c68e..ae5785ba89 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java @@ -31,6 +31,7 @@ import java.util.Map; import javax.jms.Connection; import javax.jms.JMSException; + import org.apache.qpid.AMQException; import org.apache.qpid.client.AMQConnection; import org.apache.qpid.server.model.AuthenticationProvider; @@ -49,7 +50,7 @@ public class MultipleAuthenticationManagersTest extends QpidBrokerTestCase Map<String, Object> externalAuthProviderAttributes = new HashMap<String, Object>(); externalAuthProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE); externalAuthProviderAttributes.put(AuthenticationProvider.NAME, TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER); - config.addAuthenticationProviderConfiguration(externalAuthProviderAttributes); + config.addObjectConfiguration(AuthenticationProvider.class, externalAuthProviderAttributes); Map<String, Object> sslPortAttributes = new HashMap<String, Object>(); sslPortAttributes.put(Port.TRANSPORTS, Collections.singleton(Transport.SSL)); @@ -58,7 +59,7 @@ public class MultipleAuthenticationManagersTest extends QpidBrokerTestCase sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); sslPortAttributes.put(Port.TRUST_STORES, Collections.singleton(TestBrokerConfiguration.ENTRY_NAME_SSL_TRUSTSTORE)); sslPortAttributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER); - config.addPortConfiguration(sslPortAttributes); + config.addObjectConfiguration(Port.class, sslPortAttributes); // set the ssl system properties setSystemProperty("javax.net.ssl.keyStore", KEYSTORE); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java index 6d53896371..f2e72be447 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/stats/StatisticsReportingTest.java @@ -20,6 +20,16 @@ */ package org.apache.qpid.server.stats; +import java.util.List; +import java.util.Map; + +import javax.jms.Connection; +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; + import org.apache.qpid.AMQException; import org.apache.qpid.client.AMQConnection; import org.apache.qpid.client.AMQDestination; @@ -28,20 +38,11 @@ import org.apache.qpid.client.AMQSession; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.util.LogMonitor; -import java.util.List; -import java.util.Map; - -import javax.jms.Connection; -import javax.jms.Destination; -import javax.jms.JMSException; -import javax.jms.MessageProducer; -import javax.jms.Session; -import javax.jms.TextMessage; - /** * Test generation of message/data statistics reporting and the ability * to control from the configuration file. @@ -72,7 +73,7 @@ public class StatisticsReportingTest extends QpidBrokerTestCase if (getName().equals("testEnabledStatisticsReporting")) { TestBrokerConfiguration config = getBrokerConfiguration(); - config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + config.removeObjectConfiguration(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); config.setBrokerAttribute(Broker.STATISTICS_REPORTING_PERIOD, STATISTICS_REPORTING_PERIOD_IN_SECONDS); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java index 9f244e78a4..1b7f443705 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/SplitStoreTest.java @@ -82,8 +82,8 @@ public class SplitStoreTest extends QpidBrokerTestCase messageStoreSettings.put(MessageStore.STORE_PATH, _messageStorePath); TestBrokerConfiguration config = getBrokerConfiguration(); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.CONFIGURATION_STORE_SETTINGS, configurationStoreSettings); + config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); + config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.CONFIGURATION_STORE_SETTINGS, configurationStoreSettings); super.startBroker(); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java index 3dea6fd5bb..25a3571787 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/store/StoreOverfullTest.java @@ -70,7 +70,7 @@ public class StoreOverfullTest extends QpidBrokerTestCase messageStoreSettings.put(MessageStore.UNDERFULL_SIZE, UNDERFULL_SIZE); TestBrokerConfiguration config = getBrokerConfiguration(); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); + config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java index f396c79351..cb6eae013e 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/ManagementLoggingTest.java @@ -21,18 +21,16 @@ package org.apache.qpid.systest.management.jmx; -import org.apache.qpid.server.configuration.BrokerProperties; +import java.util.Collections; +import java.util.List; + import org.apache.qpid.server.logging.AbstractTestLogging; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Transport; import org.apache.qpid.test.utils.JMXTestUtils; import org.apache.qpid.test.utils.TestBrokerConfiguration; -import org.apache.qpid.test.utils.TestSSLConstants; import org.apache.qpid.util.LogMonitor; -import java.util.Collections; -import java.util.List; - /** * Management Console Test Suite * @@ -314,8 +312,8 @@ public class ManagementLoggingTest extends AbstractTestLogging if(useManagementSSL) { // This test requires we have ssl, change the transport and add they keystore to the port config - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.TRANSPORTS, Collections.singleton(Transport.SSL)); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.TRANSPORTS, Collections.singleton(Transport.SSL)); + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); } startBroker(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java index db1e6f6617..922fb69845 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/UserManagementTest.java @@ -59,7 +59,7 @@ public class UserManagementTest extends QpidBrokerTestCase Map<String, Object> newAttributes = new HashMap<String, Object>(); newAttributes.put(AuthenticationProvider.TYPE, getAuthenticationManagerType()); newAttributes.put("path", _passwordFile.getAbsolutePath()); - getBrokerConfiguration().setObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, newAttributes); + getBrokerConfiguration().setObjectAttributes(AuthenticationProvider.class,TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, newAttributes); getBrokerConfiguration().addJmxManagementConfiguration(); _jmxUtils = new JMXTestUtils(this); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java index f87113465c..983b21da51 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java @@ -30,6 +30,7 @@ import java.util.UUID; import org.apache.qpid.server.BrokerOptions; import org.apache.qpid.server.management.plugin.HttpManagement; import org.apache.qpid.server.model.AccessControlProvider; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.State; import org.apache.qpid.server.security.access.FileAccessControlProviderConstants; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -58,7 +59,7 @@ public class AccessControlProviderRestTest extends QpidRestTestCase super.customizeConfiguration(); getRestTestHelper().configureTemporaryPasswordFile(this, ALLOWED_USER, DENIED_USER, OTHER_USER); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AnonymousAccessRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AnonymousAccessRestTest.java index 9bf815adf7..79406cc81e 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AnonymousAccessRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AnonymousAccessRestTest.java @@ -27,6 +27,7 @@ import java.util.Map; import org.apache.qpid.server.management.plugin.HttpManagement; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -53,12 +54,12 @@ public class AnonymousAccessRestTest extends QpidRestTestCase Map<String, Object> anonymousAuthProviderAttributes = new HashMap<String, Object>(); anonymousAuthProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE); anonymousAuthProviderAttributes.put(AuthenticationProvider.NAME, TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER); - config.addAuthenticationProviderConfiguration(anonymousAuthProviderAttributes); + config.addObjectConfiguration(AuthenticationProvider.class, anonymousAuthProviderAttributes); // set anonymous authentication provider on http port for the tests - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, false); + config.setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, false); // reset credentials getRestTestHelper().setUsernameAndPassword(null, null); @@ -91,7 +92,7 @@ public class AnonymousAccessRestTest extends QpidRestTestCase public void testGetWithPasswordAuthProvider() throws Exception { - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); startBrokerNow(); @@ -101,7 +102,7 @@ public class AnonymousAccessRestTest extends QpidRestTestCase public void testPutWithPasswordAuthProvider() throws Exception { - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); startBrokerNow(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java index 9ad08ef331..207c877fa6 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java @@ -43,7 +43,7 @@ import org.apache.qpid.server.model.Protocol; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.test.utils.TestBrokerConfiguration; public class Asserts diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java index d41e019c13..7dd52d3aa3 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java @@ -27,13 +27,13 @@ import java.util.Map; import java.util.UUID; import org.apache.qpid.server.BrokerOptions; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.User; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory; import org.apache.qpid.server.security.auth.manager.PlainPasswordFileAuthenticationManagerFactory; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -178,7 +178,7 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase attributes.put(AuthenticationProvider.NAME, providerName); attributes.put(PlainPasswordFileAuthenticationManagerFactory.ATTRIBUTE_PATH, file.getAbsoluteFile()); - UUID id = config.addAuthenticationProviderConfiguration(attributes); + UUID id = config.addObjectConfiguration(AuthenticationProvider.class, attributes); config.setSaved(false); startBroker(0, true); @@ -216,7 +216,7 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase attributes.put(AuthenticationProvider.NAME, providerName); attributes.put(PlainPasswordFileAuthenticationManagerFactory.ATTRIBUTE_PATH, file.getAbsoluteFile()); - UUID id = config.addAuthenticationProviderConfiguration(attributes); + UUID id = config.addObjectConfiguration(AuthenticationProvider.class, attributes); config.setSaved(false); startBroker(0, true); @@ -260,9 +260,9 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase { stopBroker(); getBrokerConfiguration().setSaved(false); - getBrokerConfiguration().removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); + getBrokerConfiguration().removeObjectConfiguration(AuthenticationProvider.class, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); startBroker(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BasicAuthRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BasicAuthRestTest.java index 81177b8c08..c9d5131b76 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BasicAuthRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BasicAuthRestTest.java @@ -30,6 +30,7 @@ import java.util.Collections; import javax.servlet.http.HttpServletResponse; import org.apache.qpid.server.management.plugin.HttpManagement; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Transport; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -57,8 +58,8 @@ public class BasicAuthRestTest extends QpidRestTestCase getRestTestHelper().setUseSsl(useSsl); if (useSsl) { - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.TRANSPORTS, Collections.singleton(Transport.SSL)); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.TRANSPORTS, Collections.singleton(Transport.SSL)); + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); } super.customizeConfiguration(); } @@ -85,7 +86,7 @@ public class BasicAuthRestTest extends QpidRestTestCase public void testBasicAuthWhenDisabledWithHttp() throws Exception { configure(false); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, false); + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, false); super.setUp(); // Try the attempt with authentication, it should fail because @@ -98,7 +99,7 @@ public class BasicAuthRestTest extends QpidRestTestCase { configure(false); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); super.setUp(); // Try the attempt with authentication, it should succeed because @@ -110,7 +111,7 @@ public class BasicAuthRestTest extends QpidRestTestCase public void testDisablingForHttps() throws Exception { configure(true); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, "httpsBasicAuthenticationEnabled", false); + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, "httpsBasicAuthenticationEnabled", false); super.setUp(); setSystemProperty("javax.net.ssl.trustStore", TRUSTSTORE); setSystemProperty("javax.net.ssl.trustStorePassword", TRUSTSTORE_PASSWORD); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsClientCertAuthTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsClientCertAuthTest.java index 3a85ad5431..6d6223048a 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsClientCertAuthTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsClientCertAuthTest.java @@ -68,13 +68,13 @@ public class BrokerRestHttpsClientCertAuthTest extends QpidRestTestCase Map<String, Object> externalProviderAttributes = new HashMap<String, Object>(); externalProviderAttributes.put(AuthenticationProvider.TYPE, ExternalAuthenticationManagerFactory.PROVIDER_TYPE); externalProviderAttributes.put(AuthenticationProvider.NAME, EXTERNAL_AUTHENTICATION_PROVIDER); - getBrokerConfiguration().addAuthenticationProviderConfiguration(externalProviderAttributes); + getBrokerConfiguration().addObjectConfiguration(AuthenticationProvider.class, externalProviderAttributes); // set password authentication provider on http port for the tests - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, + getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, EXTERNAL_AUTHENTICATION_PROVIDER); - getBrokerConfiguration().setObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, newAttributes); + getBrokerConfiguration().setObjectAttributes(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, newAttributes); } public void testGetWithHttps() throws Exception diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java index b7846bb09c..4c8997bec5 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestHttpsTest.java @@ -28,12 +28,12 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Protocol; import org.apache.qpid.server.model.Transport; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; import org.apache.qpid.test.utils.TestBrokerConfiguration; public class BrokerRestHttpsTest extends QpidRestTestCase @@ -56,7 +56,7 @@ public class BrokerRestHttpsTest extends QpidRestTestCase newAttributes.put(Port.PROTOCOLS, Collections.singleton(Protocol.HTTP)); newAttributes.put(Port.TRANSPORTS, Collections.singleton(Transport.SSL)); newAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); - getBrokerConfiguration().setObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT,newAttributes); + getBrokerConfiguration().setObjectAttributes(Port.class,TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT,newAttributes); } public void testGetWithHttps() throws Exception diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java index 473cf2beca..faf19d8bab 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java @@ -40,7 +40,7 @@ import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.plugin.MessageStoreFactory; import org.apache.qpid.test.client.UnroutableMessageTestExceptionListener; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -265,11 +265,6 @@ public class BrokerRestTest extends QpidRestTestCase assertNotNull("Unexpected value of attribute authenticationproviders", brokerDetails.get(BROKER_AUTHENTICATIONPROVIDERS_ATTRIBUTE)); @SuppressWarnings("unchecked") - Collection<String> supportedBrokerStoreTypes = (Collection<String>)brokerDetails.get(Broker.SUPPORTED_BROKER_STORE_TYPES); - Collection<String> expectedSupportedBrokerStoreTypes = new BrokerConfigurationStoreCreator().getStoreTypes(); - assertEquals("Unexpected supported broker store types", new HashSet<String>(expectedSupportedBrokerStoreTypes), new HashSet<String>(supportedBrokerStoreTypes)); - - @SuppressWarnings("unchecked") Collection<String> supportedVirtualHostStoreTypes = (Collection<String>)brokerDetails.get(Broker.SUPPORTED_VIRTUALHOST_STORE_TYPES); Collection<String> expectedSupportedVirtualHostStoreTypes = MessageStoreFactory.FACTORY_LOADER.getSupportedTypes(); assertEquals("Unexpected supported virtual host store types", new HashSet<String>(expectedSupportedVirtualHostStoreTypes), new HashSet<String>(supportedVirtualHostStoreTypes)); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java index d405a91ad4..ba1b1e2c26 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/ConnectionRestTest.java @@ -36,7 +36,7 @@ import org.apache.qpid.client.AMQSession; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Connection; import org.apache.qpid.server.model.Session; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; +import org.apache.qpid.server.model.AbstractConfiguredObject; public class ConnectionRestTest extends QpidRestTestCase { diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java index e0a06d15a2..3ec8818c8d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/GroupProviderRestTest.java @@ -29,13 +29,13 @@ import java.util.Properties; import java.util.UUID; import org.apache.qpid.server.BrokerOptions; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Group; import org.apache.qpid.server.model.GroupProvider; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.UUIDGenerator; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; import org.apache.qpid.server.security.group.FileGroupManagerFactory; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.test.utils.TestFileUtils; @@ -301,7 +301,7 @@ public class GroupProviderRestTest extends QpidRestTestCase assertFalse("Group file should not exist", file.exists()); TestBrokerConfiguration config = getBrokerConfiguration(); - config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_GROUP_FILE); + config.removeObjectConfiguration(GroupProvider.class, TestBrokerConfiguration.ENTRY_NAME_GROUP_FILE); UUID id = config.addGroupFileConfiguration(file.getAbsolutePath()); config.setSaved(false); startBroker(0, true); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java index f825ffbb0f..680f807a9b 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java @@ -26,15 +26,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.JsonMappingException; + import org.apache.qpid.server.model.KeyStore; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Transport; -import org.apache.qpid.server.model.adapter.AbstractKeyStoreAdapter; +import org.apache.qpid.server.security.AbstractKeyStoreAdapter; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.test.utils.TestSSLConstants; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.JsonMappingException; public class KeyStoreRestTest extends QpidRestTestCase { @@ -108,7 +109,7 @@ public class KeyStoreRestTest extends QpidRestTestCase sslKeyStoreAttributes.put(KeyStore.NAME, name); sslKeyStoreAttributes.put(KeyStore.PATH, TestSSLConstants.BROKER_KEYSTORE); sslKeyStoreAttributes.put(KeyStore.PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD); - getBrokerConfiguration().addKeyStoreConfiguration(sslKeyStoreAttributes); + getBrokerConfiguration().addObjectConfiguration(KeyStore.class,sslKeyStoreAttributes); //add the SSL port using it Map<String, Object> sslPortAttributes = new HashMap<String, Object>(); @@ -117,7 +118,7 @@ public class KeyStoreRestTest extends QpidRestTestCase sslPortAttributes.put(Port.NAME, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT); sslPortAttributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); sslPortAttributes.put(Port.KEY_STORE, name); - getBrokerConfiguration().addPortConfiguration(sslPortAttributes); + getBrokerConfiguration().addObjectConfiguration(Port.class,sslPortAttributes); super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java index 80dd7e11a4..a06b41498c 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PreferencesProviderRestTest.java @@ -27,12 +27,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.qpid.server.model.AbstractConfiguredObject; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.PreferencesProvider; import org.apache.qpid.server.model.State; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider; import org.apache.qpid.server.security.auth.manager.PlainPasswordFileAuthenticationManagerFactory; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -77,7 +77,7 @@ public class PreferencesProviderRestTest extends QpidRestTestCase anonymousAuthProviderAttributes.put(AuthenticationProvider.TYPE, PlainPasswordFileAuthenticationManagerFactory.PROVIDER_TYPE); anonymousAuthProviderAttributes.put(AuthenticationProvider.NAME, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER + "-2"); anonymousAuthProviderAttributes.put(PlainPasswordFileAuthenticationManagerFactory.ATTRIBUTE_PATH, _authenticationProviderFile.getAbsolutePath()); - getBrokerConfiguration().addAuthenticationProviderConfiguration(anonymousAuthProviderAttributes); + getBrokerConfiguration().addObjectConfiguration(AuthenticationProvider.class,anonymousAuthProviderAttributes); } public void testCreateAndGetProvider() throws Exception diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java index de5c2f561f..c0be10931c 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java @@ -26,10 +26,12 @@ import java.util.Map; import org.apache.qpid.server.management.plugin.HttpManagement; import org.apache.qpid.server.model.AuthenticationProvider; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Port; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory; -import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.test.utils.QpidBrokerTestCase; +import org.apache.qpid.test.utils.TestBrokerConfiguration; public class QpidRestTestCase extends QpidBrokerTestCase { @@ -52,7 +54,7 @@ public class QpidRestTestCase extends QpidBrokerTestCase getRestTestHelper().setUsernameAndPassword("webadmin", "webadmin"); //remove the normal 'test' vhost, we will configure the vhosts below - getBrokerConfiguration(0).removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + getBrokerConfiguration(0).removeObjectConfiguration(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); // Set up virtualhost config with queues and bindings to the amq.direct for (String virtualhost : EXPECTED_VIRTUALHOSTS) @@ -81,19 +83,19 @@ public class QpidRestTestCase extends QpidBrokerTestCase { TestBrokerConfiguration config = getBrokerConfiguration(); config.addHttpManagementConfiguration(); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.PORT, _restTestHelper.getHttpPort()); - config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT); - config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_RMI_PORT); + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.PORT, _restTestHelper.getHttpPort()); + config.removeObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_JMX_PORT); + config.removeObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_RMI_PORT); Map<String, Object> anonymousProviderAttributes = new HashMap<String, Object>(); anonymousProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE); anonymousProviderAttributes.put(AuthenticationProvider.NAME, ANONYMOUS_AUTHENTICATION_PROVIDER); - config.addAuthenticationProviderConfiguration(anonymousProviderAttributes); + config.addObjectConfiguration(AuthenticationProvider.class, anonymousProviderAttributes); // set password authentication provider on http port for the tests - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, + config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); + config.setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } public RestTestHelper getRestTestHelper() diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java index 297d15db13..3d4c6fe6cf 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QueueRestTest.java @@ -39,7 +39,7 @@ import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Consumer; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; -import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; +import org.apache.qpid.server.model.AbstractConfiguredObject; public class QueueRestTest extends QpidRestTestCase { diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java index 7050dcfc33..89611ab727 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java @@ -50,20 +50,21 @@ import javax.net.ssl.TrustManagerFactory; import javax.servlet.http.HttpServletResponse; import junit.framework.Assert; - import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.type.TypeReference; + import org.apache.qpid.server.BrokerOptions; +import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Binding; import org.apache.qpid.server.model.Queue; import org.apache.qpid.ssl.SSLContextFactory; import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.JsonMappingException; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.type.TypeReference; public class RestTestHelper { @@ -448,7 +449,7 @@ public class RestTestHelper { _passwdFile = createTemporaryPasswdFile(users); - testCase.getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, + testCase.getBrokerConfiguration().setObjectAttribute(AuthenticationProvider.class, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, "path", _passwdFile.getAbsolutePath()); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/SaslRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/SaslRestTest.java index 6ec2a02ba1..6a910df04d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/SaslRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/SaslRestTest.java @@ -35,12 +35,13 @@ import java.util.List; import java.util.Map; import org.apache.commons.codec.binary.Base64; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.JsonMappingException; + import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.security.auth.manager.Base64MD5PasswordFileAuthenticationManagerFactory; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.tools.security.Passwd; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.JsonMappingException; public class SaslRestTest extends QpidRestTestCase { @@ -378,6 +379,6 @@ public class SaslRestTest extends QpidRestTestCase Map<String, Object> newAttributes = new HashMap<String, Object>(); newAttributes.put("path", passwordFile.getAbsolutePath()); newAttributes.put(AuthenticationProvider.TYPE, Base64MD5PasswordFileAuthenticationManagerFactory.PROVIDER_TYPE); - getBrokerConfiguration().setObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, newAttributes); + getBrokerConfiguration().setObjectAttributes(AuthenticationProvider.class,TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, newAttributes); } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java index 7927bff07f..3d1a0af9eb 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/TrustStoreRestTest.java @@ -26,15 +26,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.JsonMappingException; + import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Transport; import org.apache.qpid.server.model.TrustStore; -import org.apache.qpid.server.model.adapter.AbstractKeyStoreAdapter; +import org.apache.qpid.server.security.AbstractKeyStoreAdapter; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.test.utils.TestSSLConstants; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.JsonMappingException; public class TrustStoreRestTest extends QpidRestTestCase { @@ -106,7 +107,7 @@ public class TrustStoreRestTest extends QpidRestTestCase sslTrustStoreAttributes.put(TrustStore.NAME, name); sslTrustStoreAttributes.put(TrustStore.PATH, TestSSLConstants.TRUSTSTORE); sslTrustStoreAttributes.put(TrustStore.PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD); - getBrokerConfiguration().addTrustStoreConfiguration(sslTrustStoreAttributes); + getBrokerConfiguration().addObjectConfiguration(TrustStore.class,sslTrustStoreAttributes); //add the SSL port using it Map<String, Object> sslPortAttributes = new HashMap<String, Object>(); @@ -116,7 +117,7 @@ public class TrustStoreRestTest extends QpidRestTestCase sslPortAttributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE); sslPortAttributes.put(Port.TRUST_STORES, Collections.singleton(name)); - getBrokerConfiguration().addPortConfiguration(sslPortAttributes); + getBrokerConfiguration().addObjectConfiguration(Port.class, sslPortAttributes); super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java index da9466e9a9..d98572807a 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java @@ -27,12 +27,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.map.JsonMappingException; + import org.apache.qpid.server.management.plugin.HttpManagement; import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.GroupProvider; import org.apache.qpid.server.model.KeyStore; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Protocol; import org.apache.qpid.server.model.TrustStore; @@ -48,8 +52,6 @@ import org.apache.qpid.systest.rest.QpidRestTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.test.utils.TestFileUtils; import org.apache.qpid.test.utils.TestSSLConstants; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.map.JsonMappingException; public class BrokerACLTest extends QpidRestTestCase { @@ -74,7 +76,7 @@ public class BrokerACLTest extends QpidRestTestCase "ACL DENY-LOG " + DENIED_USER + " CONFIGURE BROKER\n" + "ACL DENY-LOG ALL ALL"; - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/ExchangeRestACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/ExchangeRestACLTest.java index f20d9dfa47..2eaaf7d988 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/ExchangeRestACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/ExchangeRestACLTest.java @@ -20,14 +20,10 @@ */ package org.apache.qpid.systest.rest.acl; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.apache.qpid.server.management.plugin.HttpManagement; import org.apache.qpid.server.model.Binding; import org.apache.qpid.server.model.Exchange; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.security.acl.AbstractACLTestCase; import org.apache.qpid.systest.rest.QpidRestTestCase; @@ -35,6 +31,11 @@ import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class ExchangeRestACLTest extends QpidRestTestCase { private static final String ALLOWED_USER = "user1"; @@ -61,7 +62,7 @@ public class ExchangeRestACLTest extends QpidRestTestCase "ACL DENY-LOG " + DENIED_USER + " UNBIND EXCHANGE", "ACL DENY-LOG ALL ALL"); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/GroupRestACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/GroupRestACLTest.java index e6d5f8b1e0..d2eba6a924 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/GroupRestACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/GroupRestACLTest.java @@ -29,6 +29,7 @@ import java.util.Properties; import javax.servlet.http.HttpServletResponse; import org.apache.qpid.server.management.plugin.HttpManagement; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.security.acl.AbstractACLTestCase; import org.apache.qpid.systest.rest.QpidRestTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -60,7 +61,7 @@ public class GroupRestACLTest extends QpidRestTestCase protected void customizeConfiguration() throws IOException { super.customizeConfiguration(); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } @Override diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/LogViewerACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/LogViewerACLTest.java index dd6c7d6a28..86dc1ea17a 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/LogViewerACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/LogViewerACLTest.java @@ -23,6 +23,7 @@ package org.apache.qpid.systest.rest.acl; import java.io.IOException; import org.apache.qpid.server.management.plugin.HttpManagement; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.security.acl.AbstractACLTestCase; import org.apache.qpid.systest.rest.QpidRestTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; @@ -43,7 +44,7 @@ public class LogViewerACLTest extends QpidRestTestCase "ACL DENY-LOG " + DENIED_USER + " ACCESS_LOGS BROKER", "ACL DENY-LOG ALL ALL"); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/QueueRestACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/QueueRestACLTest.java index b712327329..dced81277e 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/QueueRestACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/QueueRestACLTest.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import org.apache.qpid.server.management.plugin.HttpManagement; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.security.acl.AbstractACLTestCase; import org.apache.qpid.systest.rest.QpidRestTestCase; @@ -51,7 +52,7 @@ public class QueueRestACLTest extends QpidRestTestCase "ACL DENY-LOG " + DENIED_USER + " DELETE QUEUE", "ACL DENY-LOG ALL ALL"); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserPreferencesRestACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserPreferencesRestACLTest.java index 4b4854e4b3..1ec40cfc14 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserPreferencesRestACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserPreferencesRestACLTest.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import org.apache.qpid.server.management.plugin.HttpManagement; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.model.PreferencesProvider; import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider; import org.apache.qpid.server.security.acl.AbstractACLTestCase; @@ -80,7 +81,7 @@ public class UserPreferencesRestACLTest extends QpidRestTestCase + " UPDATE USER", "ACL DENY-LOG " + DENIED_USER + " UPDATE USER", "ACL DENY-LOG ALL ALL"); TestBrokerConfiguration brokerConfiguration = getBrokerConfiguration(); - brokerConfiguration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, + brokerConfiguration.setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); Map<String, Object> attributes = new HashMap<String, Object>(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserRestACLTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserRestACLTest.java index 7c5042c750..f792197369 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserRestACLTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/UserRestACLTest.java @@ -28,12 +28,14 @@ import java.util.Properties; import javax.servlet.http.HttpServletResponse; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.JsonMappingException; + import org.apache.qpid.server.management.plugin.HttpManagement; +import org.apache.qpid.server.model.Plugin; import org.apache.qpid.server.security.acl.AbstractACLTestCase; import org.apache.qpid.systest.rest.QpidRestTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.map.JsonMappingException; public class UserRestACLTest extends QpidRestTestCase { @@ -62,7 +64,7 @@ public class UserRestACLTest extends QpidRestTestCase protected void customizeConfiguration() throws IOException { super.customizeConfiguration(); - getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); + getBrokerConfiguration().setObjectAttribute(Plugin.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT, HttpManagement.HTTP_BASIC_AUTHENTICATION_ENABLED, true); } @Override diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java index ee3a8c7260..e6e7484b28 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java @@ -20,8 +20,34 @@ */ package org.apache.qpid.test.client.destination; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import javax.jms.Connection; +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.QueueBrowser; +import javax.jms.QueueReceiver; +import javax.jms.QueueSession; +import javax.jms.Session; +import javax.jms.TextMessage; +import javax.jms.Topic; +import javax.jms.TopicSession; +import javax.jms.TopicSubscriber; +import javax.naming.Context; +import javax.naming.InitialContext; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.qpid.client.AMQAnyDestination; import org.apache.qpid.client.AMQConnection; import org.apache.qpid.client.AMQDestination; @@ -35,17 +61,6 @@ import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; import org.apache.qpid.transport.ExecutionErrorCode; -import javax.jms.*; -import javax.naming.Context; -import javax.naming.InitialContext; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Properties; - public class AddressBasedDestinationTest extends QpidBrokerTestCase { private static final Logger _logger = LoggerFactory.getLogger(AddressBasedDestinationTest.class); @@ -55,7 +70,7 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase public void setUp() throws Exception { TestBrokerConfiguration config = getBrokerConfiguration(); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.QUEUE_MAXIMUM_DELIVERY_ATTEMPTS, 0); + config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.QUEUE_MAXIMUM_DELIVERY_ATTEMPTS, 0); super.setUp(); _connection = getConnection() ; diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java index 4026b7a6cb..17485c5445 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/timeouts/SyncWaitDelayTest.java @@ -31,13 +31,14 @@ import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.store.MessageStore; import org.apache.qpid.server.store.SlowMessageStore; import org.apache.qpid.test.utils.QpidBrokerTestCase; import org.apache.qpid.test.utils.TestBrokerConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * This tests that when the commit takes a long time(due to POST_COMMIT_DELAY) that the commit does not timeout @@ -66,7 +67,7 @@ public class SyncWaitDelayTest extends QpidBrokerTestCase messageStoreSettings.put(SlowMessageStore.DELAYS, slowMessageStoreDelays); TestBrokerConfiguration config = getBrokerConfiguration(); - config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); + config.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings); super.setUp(); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java index 2ffca48f56..6081dfeebf 100755 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java @@ -17,36 +17,6 @@ */ package org.apache.qpid.test.utils; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -import javax.jms.BytesMessage; -import javax.jms.Connection; -import javax.jms.Destination; -import javax.jms.JMSException; -import javax.jms.MapMessage; -import javax.jms.Message; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.ObjectMessage; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.StreamMessage; -import javax.jms.TextMessage; -import javax.jms.Topic; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; - import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.qpid.AMQException; @@ -71,6 +41,23 @@ import org.apache.qpid.url.URLSyntaxException; import org.apache.qpid.util.FileUtils; import org.apache.qpid.util.SystemUtils; +import javax.jms.*; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.lang.IllegalStateException; + /** * Qpid base class for system testing test cases. */ @@ -232,17 +219,17 @@ public class QpidBrokerTestCase extends QpidTestCase } if (actualPort != DEFAULT_PORT) { - configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.PORT, actualPort); - configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_RMI_PORT, Port.PORT, getManagementPort(actualPort)); - configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.PORT, getManagementPort(actualPort) + JMXPORT_CONNECTORSERVER_OFFSET); + configuration.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.PORT, actualPort); + configuration.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_RMI_PORT, Port.PORT, getManagementPort(actualPort)); + configuration.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_JMX_PORT, Port.PORT, getManagementPort(actualPort) + JMXPORT_CONNECTORSERVER_OFFSET); String workDir = System.getProperty("QPID_WORK") + File.separator + TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST + File.separator + actualPort; - Map<String, Object> virtualHostSettings = configuration.getObjectAttributes(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); + Map<String, Object> virtualHostSettings = configuration.getObjectAttributes(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST); @SuppressWarnings("unchecked") Map<String, Object> storeSettings = (Map<String, Object>)virtualHostSettings.get(VirtualHost.MESSAGE_STORE_SETTINGS); storeSettings.put(MessageStore.STORE_PATH, workDir); - configuration.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, storeSettings); + configuration.setObjectAttribute(VirtualHost.class, TestBrokerConfiguration.ENTRY_NAME_VIRTUAL_HOST, VirtualHost.MESSAGE_STORE_SETTINGS, storeSettings); } return configuration; @@ -851,7 +838,7 @@ public class QpidBrokerTestCase extends QpidTestCase messageStoreSettings.put(MessageStore.STORE_PATH, storeDir); attributes.put(VirtualHost.MESSAGE_STORE_SETTINGS, messageStoreSettings ); int port = getPort(brokerPort); - getBrokerConfiguration(port).addVirtualHostConfiguration(attributes); + getBrokerConfiguration(port).addObjectConfiguration(VirtualHost.class, attributes); } /** diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java index 31a650baad..59b4d496fa 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java @@ -20,33 +20,34 @@ */ package org.apache.qpid.test.utils; -import java.io.ByteArrayOutputStream; +import static org.mockito.Mockito.mock; + import java.io.File; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import java.util.UUID; -import org.apache.qpid.server.configuration.ConfigurationEntry; -import org.apache.qpid.server.configuration.IllegalConfigurationException; +import org.apache.qpid.server.BrokerOptions; import org.apache.qpid.server.configuration.store.MemoryConfigurationEntryStore; +import org.apache.qpid.server.configuration.updater.TaskExecutor; +import org.apache.qpid.server.logging.EventLogger; +import org.apache.qpid.server.logging.LogRecorder; import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.model.AuthenticationProvider; +import org.apache.qpid.server.model.Broker; +import org.apache.qpid.server.model.ConfiguredObject; +import org.apache.qpid.server.model.ConfiguredObjectFactory; import org.apache.qpid.server.model.GroupProvider; -import org.apache.qpid.server.model.KeyStore; import org.apache.qpid.server.model.Plugin; -import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.PreferencesProvider; -import org.apache.qpid.server.model.TrustStore; +import org.apache.qpid.server.model.SystemContext; import org.apache.qpid.server.model.UUIDGenerator; -import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.plugin.PluginFactory; import org.apache.qpid.server.security.access.FileAccessControlProviderConstants; import org.apache.qpid.server.security.group.FileGroupManagerFactory; -import org.apache.qpid.util.FileUtils; +import org.apache.qpid.server.store.ConfiguredObjectRecord; +import org.apache.qpid.server.store.ConfiguredObjectRecordImpl; +import org.apache.qpid.server.store.handler.ConfiguredObjectRecordHandler; public class TestBrokerConfiguration { @@ -73,17 +74,30 @@ public class TestBrokerConfiguration public TestBrokerConfiguration(String storeType, String intialStoreLocation) { - _store = new MemoryConfigurationEntryStore(intialStoreLocation, null, Collections.<String,String>emptyMap()); + _store = new MemoryConfigurationEntryStore(new SystemContext(new TaskExecutor(), new ConfiguredObjectFactory(), + mock(EventLogger.class), mock(LogRecorder.class), + mock(BrokerOptions.class)), + intialStoreLocation, + null, Collections.<String,String>emptyMap()); } public boolean setBrokerAttribute(String name, Object value) { - return setObjectAttribute(_store.getRootEntry(), name, value); + ConfiguredObjectRecord entry = findObject(Broker.class, null); + if (entry == null) + { + return false; + } + + return setObjectAttribute(entry, name, value); } - public boolean setObjectAttribute(String objectName, String attributeName, Object value) + public boolean setObjectAttribute(final Class<? extends ConfiguredObject> category, + String objectName, + String attributeName, + Object value) { - ConfigurationEntry entry = findObjectByName(objectName); + ConfiguredObjectRecord entry = findObject(category, objectName); if (entry == null) { return false; @@ -91,9 +105,11 @@ public class TestBrokerConfiguration return setObjectAttribute(entry, attributeName, value); } - public boolean setObjectAttributes(String objectName, Map<String, Object> attributes) + public boolean setObjectAttributes(final Class<? extends ConfiguredObject> category, + String objectName, + Map<String, Object> attributes) { - ConfigurationEntry entry = findObjectByName(objectName); + ConfiguredObjectRecord entry = findObject(category, objectName); if (entry == null) { return false; @@ -107,37 +123,38 @@ public class TestBrokerConfiguration return true; } - public UUID[] removeObjectConfiguration(String name) + public UUID[] removeObjectConfiguration(final Class<? extends ConfiguredObject> category, + String name) { - ConfigurationEntry entry = findObjectByName(name); + final ConfiguredObjectRecord entry = findObject(category, name); if (entry != null) { - return _store.remove(entry.getId()); + return _store.remove(entry); } return null; } - public UUID addObjectConfiguration(String name, String type, Map<String, Object> attributes) + public UUID addObjectConfiguration(Class<? extends ConfiguredObject> type, Map<String, Object> attributes) { UUID id = UUIDGenerator.generateRandomUUID(); - addObjectConfiguration(id, type, attributes); + addObjectConfiguration(id, type.getSimpleName(), attributes); return id; } public UUID addJmxManagementConfiguration() { Map<String, Object> attributes = new HashMap<String, Object>(); - attributes.put(PluginFactory.PLUGIN_TYPE, MANAGEMENT_JMX_PLUGIN_TYPE); + attributes.put(Plugin.TYPE, MANAGEMENT_JMX_PLUGIN_TYPE); attributes.put(Plugin.NAME, ENTRY_NAME_JMX_MANAGEMENT); - return addObjectConfiguration(ENTRY_NAME_JMX_MANAGEMENT, Plugin.class.getSimpleName(), attributes); + return addObjectConfiguration(Plugin.class, attributes); } public UUID addHttpManagementConfiguration() { Map<String, Object> attributes = new HashMap<String, Object>(); - attributes.put(PluginFactory.PLUGIN_TYPE, MANAGEMENT_HTTP_PLUGIN_TYPE); + attributes.put(Plugin.TYPE, MANAGEMENT_HTTP_PLUGIN_TYPE); attributes.put(Plugin.NAME, ENTRY_NAME_HTTP_MANAGEMENT); - return addObjectConfiguration(ENTRY_NAME_HTTP_MANAGEMENT, Plugin.class.getSimpleName(), attributes); + return addObjectConfiguration(Plugin.class, attributes); } public UUID addGroupFileConfiguration(String groupFilePath) @@ -147,7 +164,7 @@ public class TestBrokerConfiguration attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE); attributes.put(FileGroupManagerFactory.PATH, groupFilePath); - return addGroupProviderConfiguration(attributes); + return addObjectConfiguration(GroupProvider.class, attributes); } public UUID addAclFileConfiguration(String aclFilePath) @@ -157,161 +174,107 @@ public class TestBrokerConfiguration attributes.put(AccessControlProvider.TYPE, FileAccessControlProviderConstants.ACL_FILE_PROVIDER_TYPE); attributes.put(FileAccessControlProviderConstants.PATH, aclFilePath); - return addAccessControlConfiguration(attributes); + return addObjectConfiguration(AccessControlProvider.class, attributes); } - public UUID addPortConfiguration(Map<String, Object> attributes) + private boolean setObjectAttributes(ConfiguredObjectRecord entry, Map<String, Object> attributes) { - String name = (String) attributes.get(Port.NAME); - return addObjectConfiguration(name, Port.class.getSimpleName(), attributes); + Map<String, Object> newAttributes = new HashMap<String, Object>(entry.getAttributes()); + newAttributes.putAll(attributes); + ConfiguredObjectRecord newEntry = new ConfiguredObjectRecordImpl(entry.getId(), entry.getType(), newAttributes, + entry.getParents()); + _store.update(false, newEntry); + return true; } - public UUID addVirtualHostConfiguration(Map<String, Object> attributes) + private ConfiguredObjectRecord findObject(final Class<? extends ConfiguredObject> category, final String objectName) { - String name = (String) attributes.get(VirtualHost.NAME); - return addObjectConfiguration(name, VirtualHost.class.getSimpleName(), attributes); + final RecordFindingVisitor visitor = new RecordFindingVisitor(category, objectName); + _store.visitConfiguredObjectRecords(visitor); + return visitor.getFoundRecord(); } - public UUID addAuthenticationProviderConfiguration(Map<String, Object> attributes) + private void addObjectConfiguration(UUID id, String type, Map<String, Object> attributes) { - String name = (String) attributes.get(AuthenticationProvider.NAME); - return addObjectConfiguration(name, AuthenticationProvider.class.getSimpleName(), attributes); - } + ConfiguredObjectRecord entry = new ConfiguredObjectRecordImpl(id, type, attributes, Collections.singletonMap(Broker.class.getSimpleName(), findObject(Broker.class,null))); - public UUID addGroupProviderConfiguration(Map<String, Object> attributes) - { - String name = (String) attributes.get(GroupProvider.NAME); - return addObjectConfiguration(name, GroupProvider.class.getSimpleName(), attributes); + _store.update(true, entry); } - public UUID addAccessControlConfiguration(Map<String, Object> attributes) + private boolean setObjectAttribute(ConfiguredObjectRecord entry, String attributeName, Object value) { - String name = (String) attributes.get(AccessControlProvider.NAME); - return addObjectConfiguration(name, AccessControlProvider.class.getSimpleName(), attributes); + Map<String, Object> attributes = new HashMap<String, Object>(entry.getAttributes()); + attributes.put(attributeName, value); + ConfiguredObjectRecord newEntry = new ConfiguredObjectRecordImpl(entry.getId(), entry.getType(), attributes, entry.getParents()); + _store.update(false, newEntry); + return true; } - public UUID addTrustStoreConfiguration(Map<String, Object> attributes) + public boolean isSaved() { - String name = (String) attributes.get(TrustStore.NAME); - return addObjectConfiguration(name, TrustStore.class.getSimpleName(), attributes); + return _saved; } - public UUID addKeyStoreConfiguration(Map<String, Object> attributes) + public void setSaved(boolean saved) { - String name = (String) attributes.get(KeyStore.NAME); - return addObjectConfiguration(name, KeyStore.class.getSimpleName(), attributes); + _saved = saved; } - private boolean setObjectAttributes(ConfigurationEntry entry, Map<String, Object> attributes) + public void addPreferencesProviderConfiguration(String authenticationProvider, Map<String, Object> attributes) { - Map<String, Object> newAttributes = new HashMap<String, Object>(entry.getAttributes()); - newAttributes.putAll(attributes); - ConfigurationEntry newEntry = new ConfigurationEntry(entry.getId(), entry.getType(), newAttributes, - entry.getChildrenIds(), _store); - _store.save(newEntry); - return true; + ConfiguredObjectRecord authProviderRecord = findObject(AuthenticationProvider.class, authenticationProvider); + ConfiguredObjectRecord pp = new ConfiguredObjectRecordImpl(UUIDGenerator.generateRandomUUID(), + PreferencesProvider.class.getSimpleName(), attributes, Collections.<String, ConfiguredObjectRecord>singletonMap(AuthenticationProvider.class.getSimpleName(),authProviderRecord)); + + _store.create(pp); } - private ConfigurationEntry findObjectByName(String objectName) + public Map<String,Object> getObjectAttributes(final Class<? extends ConfiguredObject> category, final String name) { - ConfigurationEntry root = _store.getRootEntry(); - return findObjectByName(root, objectName); + return findObject(category, name).getAttributes(); } - private ConfigurationEntry findObjectByName(ConfigurationEntry entry, String objectName) + private static class RecordFindingVisitor implements ConfiguredObjectRecordHandler { - Map<String, Object> attributes = entry.getAttributes(); - if (attributes != null) + private final Class<? extends ConfiguredObject> _category; + private final String _objectName; + public ConfiguredObjectRecord _foundRecord; + private int _version; + + public RecordFindingVisitor(final Class<? extends ConfiguredObject> category, final String objectName) { - String name = (String) attributes.get("name"); - if (objectName.equals(name)) - { - return entry; - } + _category = category; + _objectName = objectName; } - Set<UUID> childrenIds = entry.getChildrenIds(); - for (UUID uuid : childrenIds) + + @Override + public void begin(final int configVersion) { - ConfigurationEntry child = _store.getEntry(uuid); - ConfigurationEntry result = findObjectByName(child, objectName); - if (result != null) - { - return result; - } + _version = configVersion; } - return null; - } - - private void addObjectConfiguration(UUID id, String type, Map<String, Object> attributes) - { - ConfigurationEntry entry = new ConfigurationEntry(id, type, attributes, Collections.<UUID> emptySet(), _store); - ConfigurationEntry root = _store.getRootEntry(); - - Map<String, Collection<ConfigurationEntry>> children = root.getChildren(); - verifyChildWithNameDoesNotExist(id, type, attributes, children); - - Set<UUID> childrenIds = new HashSet<UUID>(root.getChildrenIds()); - childrenIds.add(id); - ConfigurationEntry newRoot = new ConfigurationEntry(root.getId(), root.getType(), root.getAttributes(), childrenIds, - _store); - _store.save(newRoot, entry); - } - - private void verifyChildWithNameDoesNotExist(UUID id, String type, - Map<String, Object> attributes, - Map<String, Collection<ConfigurationEntry>> children) - { - Collection<ConfigurationEntry> childrenOfType = children.get(type); - - if(childrenOfType != null) + @Override + public boolean handle(final ConfiguredObjectRecord object) { - String name = (String) attributes.get("name"); - for(ConfigurationEntry ce : childrenOfType) + if (object.getType().equals(_category.getSimpleName()) + && (_objectName == null + || _objectName.equals(object.getAttributes().get(ConfiguredObject.NAME)))) { - Object ceName = ce.getAttributes().get("name"); - if(name.equals(ceName) && !id.equals(ce.getId())) - { - throw new IllegalConfigurationException("A " + type + " with name " + name + " already exists with a different ID"); - } + _foundRecord = object; + return false; } + return true; } - } - private boolean setObjectAttribute(ConfigurationEntry entry, String attributeName, Object value) - { - Map<String, Object> attributes = new HashMap<String, Object>(entry.getAttributes()); - attributes.put(attributeName, value); - ConfigurationEntry newEntry = new ConfigurationEntry(entry.getId(), entry.getType(), attributes, entry.getChildrenIds(), - _store); - _store.save(newEntry); - return true; - } - - public boolean isSaved() - { - return _saved; - } - - public void setSaved(boolean saved) - { - _saved = saved; - } - - public void addPreferencesProviderConfiguration(String authenticationProvider, Map<String, Object> attributes) - { - ConfigurationEntry pp = new ConfigurationEntry(UUIDGenerator.generateRandomUUID(), - PreferencesProvider.class.getSimpleName(), attributes, Collections.<UUID> emptySet(), _store); - ConfigurationEntry ap = findObjectByName(authenticationProvider); - Set<UUID> children = new HashSet<UUID>(); - children.addAll(ap.getChildrenIds()); - children.add(pp.getId()); - ConfigurationEntry newAp = new ConfigurationEntry(ap.getId(), ap.getType(), ap.getAttributes(), children, _store); - _store.save(newAp, pp); - } + @Override + public int end() + { + return _version; + } - public Map<String, Object> getObjectAttributes(String name) - { - return findObjectByName(name).getAttributes(); + public ConfiguredObjectRecord getFoundRecord() + { + return _foundRecord; + } } } |
