You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2018/03/09 18:07:03 UTC

qpid-broker-j git commit: Revert "QPID-7197: [Broker-J] Generalize a validation of references to the object being deleted"

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master 39c228b52 -> 9bc70ef14


Revert "QPID-7197: [Broker-J] Generalize a validation of references to the object being deleted"

This reverts commit e776ae641c7f49c461c641b0e3533ea3c8ce47b2.

The WIP was committed by mistake


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/9bc70ef1
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/9bc70ef1
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/9bc70ef1

Branch: refs/heads/master
Commit: 9bc70ef14c470666759a6224abb372e078431173
Parents: 39c228b
Author: Alex Rudyy <or...@apache.org>
Authored: Fri Mar 9 18:06:22 2018 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Fri Mar 9 18:06:22 2018 +0000

----------------------------------------------------------------------
 .../server/model/AbstractConfiguredObject.java  | 110 -------------------
 .../qpid/server/model/port/AbstractPort.java    |   3 +
 .../qpid/server/security/AbstractKeyStore.java  |  25 +++++
 .../server/security/AbstractTrustStore.java     |  56 ++++++++++
 .../manager/AbstractAuthenticationManager.java  |  22 ++++
 .../qpid/server/model/BrokerTestHelper.java     |   2 -
 .../adapter/FileBasedGroupProviderImplTest.java |  14 ++-
 .../qpid/server/security/FileKeyStoreTest.java  |  30 +++--
 .../server/security/FileTrustStoreTest.java     |  31 +++---
 .../ManagedAuthenticationManagerTestBase.java   |   4 -
 ...sswordDatabaseAuthenticationManagerTest.java |  13 ++-
 11 files changed, 161 insertions(+), 149 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java b/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
index 13a4d4c..f6bbb78 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
@@ -29,7 +29,6 @@ import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Proxy;
 import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
 import java.security.AccessControlContext;
 import java.security.AccessControlException;
 import java.security.AccessController;
@@ -58,7 +57,6 @@ import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Predicate;
 import java.util.regex.Pattern;
 
 import javax.security.auth.Subject;
@@ -2227,7 +2225,6 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
         ConfiguredObject<?> proxyForValidation = createProxyForValidation(attributes);
         authoriseSetAttributes(proxyForValidation, attributes);
         validateChange(proxyForValidation, attributes.keySet());
-        validateReferredBy(getModel().getAncestor(getModel().getRootCategory(), this), this);
 
         // for DELETED state we should invoke transition method first to make sure that object can be deleted.
         // If method results in exception being thrown due to various integrity violations
@@ -2246,113 +2243,6 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im
         return deleteNoChecks();
     }
 
-    private void validateReferredBy(final ConfiguredObject<?> object,
-                                    final ConfiguredObject<?> lookupReference)
-    {
-        if (isReferredBy(object, lookupReference))
-        {
-            throw new IntegrityViolationException(String.format("Configured object %s is referred by %s",
-                                                                lookupReference,
-                                                                object));
-        }
-
-        getModel().getChildTypes(object.getCategoryClass())
-                  .forEach(childClass -> object.getChildren(childClass)
-                                               .forEach(child -> validateReferredBy(child, lookupReference)));
-
-
-    }
-
-    private boolean isReferredBy(final ConfiguredObject<?> object,
-                                 final ConfiguredObject<?> lookupReference)
-    {
-        if (object instanceof AbstractConfiguredObject)
-        {
-            return getModel().getTypeRegistry()
-                             .getAttributes(object.getClass())
-                             .stream()
-                             .anyMatch(attribute -> {
-
-                                 Object value = object.getAttribute(attribute.getName());
-                                 Class<?> type = attribute.getType();
-                                 Type genericType = attribute.getGenericType();
-
-                                 return isReferred(value, type, genericType, lookupReference);
-                             });
-        }
-        else
-        {
-            return object.getAttributeNames().stream().anyMatch(name -> {
-                Object value = object.getAttribute(name);
-                if (value != null)
-                {
-                   Class<?> type = value.getClass();
-                   return isReferred(value, type, type, lookupReference);
-                }
-                return false;
-            });
-        }
-
-    }
-
-    private boolean isReferred(final Object value,
-                               final Class<?> type,
-                               final Type genericType,
-                               final ConfiguredObject<?> lookupReference)
-    {
-        final Class<? extends ConfiguredObject> lookupCategory = lookupReference.getCategoryClass();
-        if (lookupCategory.isAssignableFrom(type) && value == lookupReference)
-        {
-            return true;
-        }
-        else if (hasMemberOfType(genericType, lookupCategory))
-        {
-            if (value instanceof Collection)
-            {
-                return ((Collection<?>) value).stream().anyMatch(m -> m == lookupReference);
-            }
-            else if (value instanceof Object[])
-            {
-                return Arrays.stream((Object[]) value).anyMatch(m -> m == lookupReference);
-            }
-            else if (value instanceof Map)
-            {
-                return ((Map<?, ?>) value).entrySet()
-                                          .stream()
-                                          .anyMatch(e -> e.getKey() == lookupReference
-                                                         || e.getValue() == lookupReference);
-            }
-        }
-        return false;
-    }
-
-    private boolean hasMemberOfType(Type returnType, Class<?> classType)
-    {
-        if (returnType instanceof ParameterizedType)
-        {
-            Type[] types = ((ParameterizedType) returnType).getActualTypeArguments();
-            return Arrays.stream(types).anyMatch((Predicate<? super Type>) type -> {
-                if (type instanceof Class && classType.isAssignableFrom((Class) type))
-                {
-                    return true;
-                }
-                else if (type instanceof ParameterizedType)
-                {
-                    Type rawType = ((ParameterizedType) type).getRawType();
-                    return rawType instanceof Class && classType.isAssignableFrom((Class) rawType);
-                }
-                else if (type instanceof TypeVariable)
-                {
-                    Type[] bounds = ((TypeVariable) type).getBounds();
-                    return Arrays.stream(bounds).anyMatch(boundType -> hasMemberOfType(boundType, classType));
-
-                }
-                return false;
-            });
-        }
-        return false;
-    }
-
     protected ListenableFuture<Void> deleteNoChecks()
     {
         final String simpleClassName = AbstractConfiguredObject.this.getClass().getSimpleName();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java b/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
index 6f08b44..45efb41 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java
@@ -300,6 +300,9 @@ public abstract class AbstractPort<X extends AbstractPort<X>> extends AbstractCo
 
         Collection<Transport> transports = updated.getTransports();
 
+        Collection<Protocol> protocols = updated.getProtocols();
+
+
         boolean usesSsl = isUsingTLSTransport(transports);
         if (usesSsl)
         {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java b/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java
index d240849..453399a 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/security/AbstractKeyStore.java
@@ -80,6 +80,31 @@ public abstract class AbstractKeyStore<X extends AbstractKeyStore<X>>
     }
 
     @Override
+    protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
+    {
+        super.validateChange(proxyForValidation, changedAttributes);
+
+        if (changedAttributes.contains(ConfiguredObject.DESIRED_STATE) && proxyForValidation.getDesiredState() == State.DELETED)
+        {
+            // verify that it is not in use
+            String storeName = getName();
+
+            Collection<Port> ports = new ArrayList<>(getBroker().getPorts());
+            for (Port port : ports)
+            {
+                if (port.getKeyStore() == this)
+                {
+                    throw new IntegrityViolationException(String.format(
+                            "Key store '%s' can't be deleted as it is in use by a port: %s",
+                            storeName,
+                            port.getName()));
+                }
+            }
+        }
+
+    }
+
+    @Override
     protected ListenableFuture<Void> onClose()
     {
         if(_checkExpiryTaskFuture != null)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/main/java/org/apache/qpid/server/security/AbstractTrustStore.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/security/AbstractTrustStore.java b/broker-core/src/main/java/org/apache/qpid/server/security/AbstractTrustStore.java
index e0760a4..fe4655a 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/security/AbstractTrustStore.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/security/AbstractTrustStore.java
@@ -107,6 +107,62 @@ public abstract class AbstractTrustStore<X extends AbstractTrustStore<X>>
         return _eventLogger;
     }
 
+
+    @Override
+    protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
+    {
+        super.validateChange(proxyForValidation, changedAttributes);
+
+        if (changedAttributes.contains(ConfiguredObject.DESIRED_STATE)
+            && proxyForValidation.getDesiredState() == State.DELETED)
+        {
+            // verify that it is not in use
+            String storeName = getName();
+
+            Collection<Port<?>> ports = new ArrayList<>(_broker.getPorts());
+            for (Port<?> port : ports)
+            {
+                Collection<TrustStore> trustStores = port.getTrustStores();
+                if (trustStores != null)
+                {
+                    for (TrustStore store : trustStores)
+                    {
+                        if (storeName.equals(store.getAttribute(TrustStore.NAME)))
+                        {
+                            throw new IntegrityViolationException(String.format(
+                                    "Trust store '%s' can't be deleted as it is in use by a port: %s",
+                                    storeName,
+                                    port.getName()));
+                        }
+                    }
+                }
+            }
+
+            Collection<AuthenticationProvider> authenticationProviders =
+                    new ArrayList<>(_broker.getAuthenticationProviders());
+            for (AuthenticationProvider authProvider : authenticationProviders)
+            {
+                TrustStore otherTrustStore = null;
+                if (authProvider instanceof SimpleLDAPAuthenticationManager)
+                {
+                    otherTrustStore = ((SimpleLDAPAuthenticationManager) authProvider).getTrustStore();
+                }
+                else if (authProvider instanceof OAuth2AuthenticationProvider)
+                {
+                    otherTrustStore = ((OAuth2AuthenticationProvider) authProvider).getTrustStore();
+                }
+
+                if (otherTrustStore == this)
+                {
+                    throw new IntegrityViolationException(String.format(
+                            "Trust store '%s' can't be deleted as it is in use by an authentication manager: '%s'",
+                            getName(),
+                            authProvider.getName()));
+                }
+            }
+        }
+    }
+
     @Override
     protected ListenableFuture<Void> onClose()
     {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java b/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java
index 337b109..5b8b219 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java
@@ -81,6 +81,28 @@ public abstract class AbstractAuthenticationManager<T extends AbstractAuthentica
     }
 
     @Override
+    protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
+    {
+        super.validateChange(proxyForValidation, changedAttributes);
+
+        if (changedAttributes.contains(ConfiguredObject.DESIRED_STATE) && proxyForValidation.getDesiredState() == State.DELETED)
+        {
+            String providerName = getName();
+            // verify that provider is not in use
+            Collection<Port> ports = new ArrayList<>(_container.getChildren(Port.class));
+            for (Port<?> port : ports)
+            {
+                if (port.getAuthenticationProvider() == this)
+                {
+                    throw new IntegrityViolationException(String.format("Authentication provider '%s' is set on port %s",
+                                                                        providerName,
+                                                                        port.getName()));
+                }
+            }
+        }
+    }
+
+    @Override
     public List<String> getAvailableMechanisms(boolean secure)
     {
         List<String> mechanisms = getMechanisms();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java b/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
index 6376ff1..f1958ff 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
@@ -149,8 +149,6 @@ public class BrokerTestHelper
         when(broker.getChildExecutor()).thenReturn(TASK_EXECUTOR);
         when(systemConfig.getChildExecutor()).thenReturn(TASK_EXECUTOR);
         when(systemConfig.createPreferenceStore()).thenReturn(mock(PreferenceStore.class));
-        when(systemConfig.getChildren(Broker.class)).thenReturn(Collections.singleton(broker));
-        when(broker.getTypeClass()).thenReturn(Broker.class);
 
         return broker;
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java b/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
index b11d19b..6f6e4d3 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
@@ -44,9 +44,9 @@ import com.google.common.collect.Sets;
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
 import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
-import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 import org.apache.qpid.server.model.Group;
@@ -58,6 +58,7 @@ import org.apache.qpid.test.utils.TestFileUtils;
 
 public class FileBasedGroupProviderImplTest extends QpidTestCase
 {
+    private TaskExecutor _taskExecutor;
     private Broker<?> _broker;
     private File _groupFile;
     private ConfiguredObjectFactory _objectFactory;
@@ -66,9 +67,15 @@ public class FileBasedGroupProviderImplTest extends QpidTestCase
     public void setUp() throws Exception
     {
         super.setUp();
+        _taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
 
-        _broker = BrokerTestHelper.createBrokerMock();
-        _objectFactory = _broker.getObjectFactory();
+        final Model model = BrokerModel.getInstance();
+        _objectFactory = new ConfiguredObjectFactoryImpl(model);
+
+        _broker = mock(Broker.class);
+        when(_broker.getTaskExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getModel()).thenReturn(model);
     }
 
     @Override
@@ -80,6 +87,7 @@ public class FileBasedGroupProviderImplTest extends QpidTestCase
             {
                 _groupFile.delete();
             }
+           _taskExecutor.stop();
         }
         finally
         {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java b/broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java
index a0496b3..e950ef4 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/security/FileKeyStoreTest.java
@@ -23,7 +23,6 @@ package org.apache.qpid.server.security;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -31,21 +30,27 @@ import java.util.Map;
 import javax.net.ssl.KeyManager;
 
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.configuration.updater.CurrentThreadTaskExecutor;
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.BrokerTestHelper;
+import org.apache.qpid.server.model.BrokerModel;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.IntegrityViolationException;
 import org.apache.qpid.server.model.KeyStore;
+import org.apache.qpid.server.model.Model;
 import org.apache.qpid.server.model.Port;
-import org.apache.qpid.server.util.DataUrlUtils;
-import org.apache.qpid.server.util.FileUtils;
 import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.test.utils.TestSSLConstants;
+import org.apache.qpid.server.util.DataUrlUtils;
+import org.apache.qpid.server.util.FileUtils;
 
 public class FileKeyStoreTest extends QpidTestCase
 {
-    private Broker _broker;
-    private ConfiguredObjectFactory _factory;
+    private final Broker _broker = mock(Broker.class);
+    private final TaskExecutor _taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
+    private final Model _model = BrokerModel.getInstance();
+    private final ConfiguredObjectFactory _factory = _model.getObjectFactory();
 
 
     @Override
@@ -53,8 +58,12 @@ public class FileKeyStoreTest extends QpidTestCase
     {
         super.setUp();
 
-        _broker = BrokerTestHelper.createBrokerMock();
-        _factory = _broker.getObjectFactory();
+        when(_broker.getTaskExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getModel()).thenReturn(_model);
+        when(_broker.getCategoryClass()).thenReturn(Broker.class);
+        when(_broker.getEventLogger()).thenReturn(new EventLogger());
+        when(_broker.getTypeClass()).thenReturn(Broker.class);
     }
 
     public void testCreateKeyStoreFromFile_Success() throws Exception
@@ -288,11 +297,8 @@ public class FileKeyStoreTest extends QpidTestCase
 
         Port<?> port = mock(Port.class);
         when(port.getKeyStore()).thenReturn(fileKeyStore);
-        when(port.getAttributeNames()).thenReturn(Arrays.asList("keyStore"));
-        when(port.getAttribute("keyStore")).thenReturn(fileKeyStore);
 
-        when(_broker.getPorts()).thenReturn(Collections.singleton(port));
-        when(_broker.getChildren(Port.class)).thenReturn(Collections.singleton(port));
+        when(_broker.getPorts()).thenReturn(Collections.<Port<?>>singletonList(port));
 
         try
         {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java b/broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java
index 5af4f35..9d184be 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/security/FileTrustStoreTest.java
@@ -27,7 +27,6 @@ import java.security.KeyStore;
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateExpiredException;
 import java.security.cert.X509Certificate;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -43,7 +42,6 @@ import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
-import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.IntegrityViolationException;
 import org.apache.qpid.server.model.Model;
@@ -59,16 +57,23 @@ import org.apache.qpid.test.utils.TestSSLConstants;
 
 public class FileTrustStoreTest extends QpidTestCase
 {
-    private Broker _broker;
-    private ConfiguredObjectFactory _factory;
+    private final Broker _broker = mock(Broker.class);
+    private final TaskExecutor _taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
+    private final Model _model = BrokerModel.getInstance();
+    private final ConfiguredObjectFactory _factory = _model.getObjectFactory();
 
     @Override
     public void setUp() throws Exception
     {
         super.setUp();
 
-        _broker = BrokerTestHelper.createBrokerMock();
-        _factory = _broker.getObjectFactory();
+        when(_broker.getTaskExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
+
+        when(_broker.getModel()).thenReturn(_model);
+        when(_broker.getCategoryClass()).thenReturn(Broker.class);
+        when(_broker.getEventLogger()).thenReturn(new EventLogger());
+        when(_broker.getTypeClass()).thenReturn(Broker.class);
     }
 
     public void testCreateTrustStoreFromFile_Success() throws Exception
@@ -309,10 +314,9 @@ public class FileTrustStoreTest extends QpidTestCase
 
         SimpleLDAPAuthenticationManager ldap = mock(SimpleLDAPAuthenticationManager.class);
         when(ldap.getTrustStore()).thenReturn(fileTrustStore);
-        when(ldap.getAttributeNames()).thenReturn(Arrays.asList("trustStore"));
-        when(ldap.getAttribute("trustStore")).thenReturn(fileTrustStore);
-        when(_broker.getAuthenticationProviders()).thenReturn(Collections.<AuthenticationProvider<?>>singleton(ldap));
-        when(_broker.getChildren(AuthenticationProvider.class)).thenReturn(Collections.singleton(ldap));
+
+        Collection<AuthenticationProvider<?>> authenticationProviders = Collections.<AuthenticationProvider<?>>singletonList(ldap);
+        when(_broker.getAuthenticationProviders()).thenReturn(authenticationProviders);
 
         try
         {
@@ -335,12 +339,9 @@ public class FileTrustStoreTest extends QpidTestCase
         TrustStore<?> fileTrustStore = _factory.create(TrustStore.class, attributes,  _broker);
 
         Port<?> port = mock(Port.class);
-        when(port.getTrustStores()).thenReturn(Collections.singleton(fileTrustStore));
-        when(port.getAttribute("trustStore")).thenReturn(fileTrustStore);
-        when(port.getAttributeNames()).thenReturn(Collections.singleton("trustStore"));
+        when(port.getTrustStores()).thenReturn(Collections.<TrustStore>singletonList(fileTrustStore));
 
-        when(_broker.getPorts()).thenReturn(Collections.singleton(port));
-        when(_broker.getChildren(Port.class)).thenReturn(Collections.singletonList(port));
+        when(_broker.getPorts()).thenReturn(Collections.<Port<?>>singletonList(port));
 
         try
         {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ManagedAuthenticationManagerTestBase.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ManagedAuthenticationManagerTestBase.java b/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ManagedAuthenticationManagerTestBase.java
index e369a6e..444c6be 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ManagedAuthenticationManagerTestBase.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/ManagedAuthenticationManagerTestBase.java
@@ -24,7 +24,6 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -72,7 +71,6 @@ abstract class ManagedAuthenticationManagerTestBase extends QpidTestCase
         attributesMap.put(AuthenticationProvider.ID, UUID.randomUUID());
         _authManager = createAuthManager(attributesMap);
         _authManager.open();
-        when(_broker.getChildren(AuthenticationProvider.class)).thenReturn(Collections.singleton(_authManager));
     }
 
 
@@ -276,8 +274,6 @@ abstract class ManagedAuthenticationManagerTestBase extends QpidTestCase
         AmqpPort port = mock(AmqpPort.class);
         when(port.getAuthenticationProvider()).thenReturn(_authManager);
         when(port.getName()).thenReturn("mockPort");
-        when(port.getAttributeNames()).thenReturn(Arrays.asList("authenticationProvider"));
-        when(port.getAttribute("authenticationProvider")).thenReturn(_authManager);
 
         final List<AmqpPort> portList = Collections.singletonList(port);
         when(_broker.getChildren(eq(Port.class))).thenReturn(portList);

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9bc70ef1/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordDatabaseAuthenticationManagerTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordDatabaseAuthenticationManagerTest.java b/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordDatabaseAuthenticationManagerTest.java
index 57d4e7f..aeb48ea 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordDatabaseAuthenticationManagerTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/security/auth/manager/PlainPasswordDatabaseAuthenticationManagerTest.java
@@ -39,7 +39,6 @@ import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.model.AuthenticationProvider;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
-import org.apache.qpid.server.model.BrokerTestHelper;
 import org.apache.qpid.server.model.ConfiguredObjectFactory;
 import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl;
 import org.apache.qpid.server.model.Model;
@@ -51,6 +50,7 @@ import org.apache.qpid.test.utils.TestFileUtils;
 
 public class PlainPasswordDatabaseAuthenticationManagerTest extends QpidTestCase
 {
+    private TaskExecutor _taskExecutor;
     private Broker<?> _broker;
     private File _passwordFile;
     private ConfiguredObjectFactory _objectFactory;
@@ -59,10 +59,16 @@ public class PlainPasswordDatabaseAuthenticationManagerTest extends QpidTestCase
     public void setUp() throws Exception
     {
         super.setUp();
+        _taskExecutor = CurrentThreadTaskExecutor.newStartedInstance();
 
+        final Model model = BrokerModel.getInstance();
+        _objectFactory = new ConfiguredObjectFactoryImpl(model);
 
-        _broker = BrokerTestHelper.createBrokerMock();
-        _objectFactory = _broker.getObjectFactory();
+        _broker = mock(Broker.class);
+        when(_broker.getTaskExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
+        when(_broker.getModel()).thenReturn(model);
+        when(_broker.getEventLogger()).thenReturn(mock(EventLogger.class));
     }
 
     @Override
@@ -74,6 +80,7 @@ public class PlainPasswordDatabaseAuthenticationManagerTest extends QpidTestCase
             {
                 _passwordFile.delete();
             }
+            _taskExecutor.stop();
         }
         finally
         {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org