Author: orudyy
Date: Mon Aug 29 15:04:33 2016
New Revision: 1758241

URL: http://svn.apache.org/viewvc?rev=1758241&view=rev
Log:
QPID-7398: [Java Broker] Instantiate UserPreferences for newly created 
configured objects

Added:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/UserPreferencesCreator.java
      - copied, changed from r1757892, 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java
Modified:
    
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerImpl.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/AbstractConfiguredObjectTest.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCarImpl.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java
    
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0Test.java

Modified: 
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
 (original)
+++ 
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
 Mon Aug 29 15:04:33 2016
@@ -48,6 +48,7 @@ import org.apache.qpid.server.model.Queu
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.model.port.AmqpPort;
+import org.apache.qpid.server.model.preferences.UserPreferences;
 import org.apache.qpid.server.protocol.LinkRegistry;
 import org.apache.qpid.server.stats.StatisticsCounter;
 import org.apache.qpid.server.store.DurableConfigurationStore;
@@ -538,4 +539,11 @@ public class BDBHAReplicaVirtualHostImpl
     {
 
     }
+
+    @Override
+    public UserPreferences createUserPreferences(final ConfiguredObject<?> 
object)
+    {
+        throwUnsupportedForReplica();
+        return null;
+    }
 }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
 Mon Aug 29 15:04:33 2016
@@ -83,6 +83,7 @@ import org.apache.qpid.server.security.a
 import org.apache.qpid.server.security.auth.TaskPrincipal;
 import org.apache.qpid.server.security.encryption.ConfigurationSecretEncrypter;
 import org.apache.qpid.server.store.ConfiguredObjectRecord;
+import org.apache.qpid.server.store.preferences.UserPreferencesCreator;
 import org.apache.qpid.server.util.Action;
 import org.apache.qpid.server.util.ServerScopedRuntimeException;
 import org.apache.qpid.util.Strings;
@@ -845,6 +846,7 @@ public abstract class AbstractConfigured
                         doValidation(true, createExceptionHandler);
                         validateOnCreate();
                         registerWithParents();
+                        createUserPreferences();
                     }
                     catch (RuntimeException e)
                     {
@@ -890,6 +892,21 @@ public abstract class AbstractConfigured
 
     }
 
+    private void createUserPreferences()
+    {
+        if (this instanceof UserPreferencesCreator)
+        {
+            return;
+        }
+
+        UserPreferencesCreator preferenceCreator = 
getAncestor(UserPreferencesCreator.class);
+        if (preferenceCreator != null)
+        {
+            UserPreferences userPreferences = 
preferenceCreator.createUserPreferences(this);
+            setUserPreferences(userPreferences);
+        }
+    }
+
     private void initializeAttributes()
     {
         final AuthenticatedPrincipal currentUser = 
AuthenticatedPrincipal.getCurrentUser();
@@ -1901,7 +1918,7 @@ public abstract class AbstractConfigured
         return (T) _parents.get(clazz);
     }
 
-    public final <T extends ConfiguredObject> T getAncestor(final Class<T> 
clazz)
+    public final <T> T getAncestor(final Class<T> clazz)
     {
         return getModel().getAncestor(clazz, this);
     }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
 Mon Aug 29 15:04:33 2016
@@ -32,9 +32,11 @@ import org.apache.qpid.configuration.Com
 import org.apache.qpid.server.logging.EventLogger;
 import org.apache.qpid.server.logging.EventLoggerProvider;
 import org.apache.qpid.server.stats.StatisticsGatherer;
+import org.apache.qpid.server.store.preferences.UserPreferencesCreator;
 
 @ManagedObject( defaultType = Broker.BROKER_TYPE)
-public interface Broker<X extends Broker<X>> extends ConfiguredObject<X>, 
EventLoggerProvider, StatisticsGatherer, Container<X>
+public interface Broker<X extends Broker<X>> extends ConfiguredObject<X>, 
EventLoggerProvider, StatisticsGatherer, Container<X>,
+                                                     UserPreferencesCreator
 {
     String BROKER_TYPE = "Broker";
 

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerImpl.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerImpl.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/BrokerImpl.java
 Mon Aug 29 15:04:33 2016
@@ -61,6 +61,9 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.logging.messages.BrokerMessages;
 import org.apache.qpid.server.logging.messages.VirtualHostMessages;
 import org.apache.qpid.server.model.preferences.GenericPrincipal;
+import org.apache.qpid.server.model.preferences.Preference;
+import org.apache.qpid.server.model.preferences.UserPreferences;
+import org.apache.qpid.server.model.preferences.UserPreferencesImpl;
 import org.apache.qpid.server.plugin.QpidServiceLoader;
 import org.apache.qpid.server.plugin.SystemAddressSpaceCreator;
 import org.apache.qpid.server.plugin.SystemNodeCreator;
@@ -730,6 +733,11 @@ public class BrokerImpl extends Abstract
         }
     }
 
+    @Override
+    public UserPreferences createUserPreferences(final ConfiguredObject<?> 
object)
+    {
+        return new UserPreferencesImpl(_preferenceTaskExecutor, object, 
_preferenceStore, Collections.<Preference>emptySet());
+    }
 
     private void updateAccessControl()
     {

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Model.java
 Mon Aug 29 15:04:33 2016
@@ -76,13 +76,13 @@ public abstract class Model
         return descendants;
     }
 
-    public <C extends ConfiguredObject> C getAncestor(final Class<C> 
ancestorClass,
+    public <C> C getAncestor(final Class<C> ancestorClass,
                                                              final 
ConfiguredObject<?> object)
     {
         return getAncestor(ancestorClass, object.getCategoryClass(), object);
     }
 
-    public  <C extends ConfiguredObject> C getAncestor(final Class<C> 
ancestorClass,
+    public  <C> C getAncestor(final Class<C> ancestorClass,
                                                final Class<? extends 
ConfiguredObject> category,
                                                final ConfiguredObject<?> 
object)
     {
@@ -95,10 +95,10 @@ public abstract class Model
             for(Class<? extends ConfiguredObject> parentClass : 
getParentTypes(category))
             {
                 ConfiguredObject<?> parent = object.getParent(parentClass);
-                ConfiguredObject<?> ancestor = getAncestor(ancestorClass, 
parentClass, parent);
+                C ancestor = getAncestor(ancestorClass, parentClass, parent);
                 if(ancestor != null)
                 {
-                    return (C) ancestor;
+                    return ancestor;
                 }
             }
         }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
 Mon Aug 29 15:04:33 2016
@@ -36,13 +36,15 @@ import org.apache.qpid.server.queue.Queu
 import org.apache.qpid.server.stats.StatisticsGatherer;
 import org.apache.qpid.server.store.DurableConfigurationStore;
 import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.preferences.UserPreferencesCreator;
 import org.apache.qpid.server.transport.AMQPConnection;
 import org.apache.qpid.server.virtualhost.HouseKeepingTask;
 import org.apache.qpid.server.virtualhost.NodeAutoCreationPolicy;
 
 @ManagedObject( defaultType = "ProvidedStore", description = 
VirtualHost.CLASS_DESCRIPTION)
 public interface VirtualHost<X extends VirtualHost<X>> extends 
ConfiguredObject<X>, StatisticsGatherer,
-                                                               
EventLoggerProvider, NamedAddressSpace
+                                                               
EventLoggerProvider, NamedAddressSpace,
+                                                               
UserPreferencesCreator
 {
     String CLASS_DESCRIPTION = "<p>A virtualhost is a namespace in which 
messaging is performed. Virtualhosts are "
                                + "independent; the messaging goes on a within 
a virtualhost is independent of any "

Copied: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/UserPreferencesCreator.java
 (from r1757892, 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java)
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/UserPreferencesCreator.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/UserPreferencesCreator.java&p1=qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java&r1=1757892&r2=1758241&rev=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/preferences/UserPreferencesCreator.java
 Mon Aug 29 15:04:33 2016
@@ -15,18 +15,15 @@
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
+ *
  */
 
-package org.apache.qpid.server.model.testmodels.hierarchy;
+package org.apache.qpid.server.store.preferences;
 
-import org.apache.qpid.server.model.ManagedObject;
-import org.apache.qpid.server.model.ManagedOperation;
-import org.apache.qpid.server.model.Param;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.preferences.UserPreferences;
 
-@ManagedObject(category = false)
-public interface TestStandardCar<X extends TestStandardCar<X>> extends 
TestCar<X>
+public interface UserPreferencesCreator
 {
-
-    @ManagedOperation
-    Door openDoor(@Param(name = "door", defaultValue = "DRIVER") Door door);
+    UserPreferences createUserPreferences(ConfiguredObject<?> object);
 }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
 Mon Aug 29 15:04:33 2016
@@ -92,6 +92,9 @@ import org.apache.qpid.server.message.Se
 import org.apache.qpid.server.message.internal.InternalMessage;
 import org.apache.qpid.server.model.*;
 import org.apache.qpid.server.model.port.AmqpPort;
+import org.apache.qpid.server.model.preferences.Preference;
+import org.apache.qpid.server.model.preferences.UserPreferences;
+import org.apache.qpid.server.model.preferences.UserPreferencesImpl;
 import org.apache.qpid.server.plugin.ConnectionValidator;
 import org.apache.qpid.server.plugin.QpidServiceLoader;
 import org.apache.qpid.server.plugin.SystemNodeCreator;
@@ -2028,21 +2031,29 @@ public abstract class AbstractVirtualHos
         });
     }
 
+    @Override
+    public UserPreferences createUserPreferences(ConfiguredObject<?> object)
+    {
+        if (_preferenceTaskExecutor == null || 
!_preferenceTaskExecutor.isRunning())
+        {
+            throw new IllegalStateException("Cannot create user preferences in 
not fully initialized virtual host");
+        }
+        return new UserPreferencesImpl(_preferenceTaskExecutor, object, 
_preferenceStore, Collections.<Preference>emptySet());
+    }
+
     private void stopPreferenceTaskExecutor()
     {
-        TaskExecutor preferenceTaskExecutor = _preferenceTaskExecutor;
-        if (preferenceTaskExecutor != null)
+        if (_preferenceTaskExecutor != null)
         {
-            preferenceTaskExecutor.stop();
+            _preferenceTaskExecutor.stop();
         }
     }
 
     private void closePreferenceStore()
     {
-        PreferenceStore ps = _preferenceStore;
-        if (ps != null)
+        if (_preferenceStore != null)
         {
-            ps.close();
+            _preferenceStore.close();
         }
     }
 
@@ -2420,6 +2431,13 @@ public abstract class AbstractVirtualHos
 
         getBroker().assignTargetSizes();
 
+        final PreferenceStoreUpdater updater = new 
PreferenceStoreUpdaterImpl();
+        Collection<PreferenceRecord> records = 
_preferenceStore.openAndLoad(updater);
+        _preferenceTaskExecutor = new TaskExecutorImpl("virtualhost-" + 
getName() + "-preferences", null);
+        _preferenceTaskExecutor.start();
+        PreferencesRecoverer preferencesRecoverer = new 
PreferencesRecoverer(_preferenceTaskExecutor);
+        preferencesRecoverer.recoverPreferences(this, records, 
_preferenceStore);
+
         if (_createDefaultExchanges)
         {
             return doAfter(createDefaultExchanges(), new Runnable()
@@ -2464,13 +2482,6 @@ public abstract class AbstractVirtualHos
         State finalState = State.ERRORED;
         try
         {
-            final PreferenceStoreUpdater updater = new 
PreferenceStoreUpdaterImpl();
-            Collection<PreferenceRecord> records = 
_preferenceStore.openAndLoad(updater);
-            _preferenceTaskExecutor = new TaskExecutorImpl("virtualhost-" + 
getName() + "-preferences", null);
-            _preferenceTaskExecutor.start();
-            PreferencesRecoverer preferencesRecoverer = new 
PreferencesRecoverer(_preferenceTaskExecutor);
-            preferencesRecoverer.recoverPreferences(this, records, 
_preferenceStore);
-
             initialiseHouseKeeping(getHousekeepingCheckPeriod());
             finalState = State.ACTIVE;
             _acceptsConnections.set(true);

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
 Mon Aug 29 15:04:33 2016
@@ -50,6 +50,7 @@ import org.apache.qpid.server.model.Queu
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHostNode;
 import org.apache.qpid.server.model.port.AmqpPort;
+import org.apache.qpid.server.model.preferences.UserPreferences;
 import org.apache.qpid.server.protocol.LinkRegistry;
 import org.apache.qpid.server.stats.StatisticsCounter;
 import org.apache.qpid.server.store.DurableConfigurationStore;
@@ -551,4 +552,11 @@ class RedirectingVirtualHostImpl
     {
 
     }
+
+    @Override
+    public UserPreferences createUserPreferences(final ConfiguredObject<?> 
object)
+    {
+        throwUnsupportedForRedirector();
+        return null;
+    }
 }

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/BrokerTestHelper.java
 Mon Aug 29 15:04:33 2016
@@ -252,7 +252,7 @@ public class BrokerTestHelper
 
     public static Exchange<?> createExchange(String hostName, final boolean 
durable, final EventLogger eventLogger) throws Exception
     {
-        final VirtualHost virtualHost = 
mockWithSystemPrincipal(VirtualHost.class, SYSTEM_PRINCIPAL);
+        final VirtualHost virtualHost =  
mockWithSystemPrincipal(VirtualHost.class, SYSTEM_PRINCIPAL);
         when(virtualHost.getName()).thenReturn(hostName);
         when(virtualHost.getEventLogger()).thenReturn(eventLogger);
         
when(virtualHost.getDurableConfigurationStore()).thenReturn(mock(DurableConfigurationStore.class));
@@ -261,6 +261,7 @@ public class BrokerTestHelper
         when(virtualHost.getModel()).thenReturn(objectFactory.getModel());
         when(virtualHost.getTaskExecutor()).thenReturn(TASK_EXECUTOR);
         when(virtualHost.getChildExecutor()).thenReturn(TASK_EXECUTOR);
+        when(virtualHost.getCategoryClass()).thenReturn(VirtualHost.class);
         final Map<String,Object> attributes = new HashMap<String, Object>();
         attributes.put(org.apache.qpid.server.model.Exchange.ID, 
UUIDGenerator.generateExchangeUUID("amp.direct", virtualHost.getName()));
         attributes.put(org.apache.qpid.server.model.Exchange.NAME, 
"amq.direct");

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImplTest.java
 Mon Aug 29 15:04:33 2016
@@ -53,6 +53,7 @@ public class FileBasedGroupProviderImplT
         when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
         when(_broker.getModel()).thenReturn(BrokerModel.getInstance());
         when(_broker.getId()).thenReturn(UUID.randomUUID());
+        when(_broker.getCategoryClass()).thenReturn(Broker.class);
     }
 
     @Override

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/AbstractConfiguredObjectTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/AbstractConfiguredObjectTest.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/AbstractConfiguredObjectTest.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/AbstractConfiguredObjectTest.java
 Mon Aug 29 15:04:33 2016
@@ -337,6 +337,23 @@ public class AbstractConfiguredObjectTes
 
     }
 
+    public void testUserPreferencesCreatedOnEngineCreation()
+    {
+        Map<String, Object> carAttributes = new HashMap<>();
+        carAttributes.put(ConfiguredObject.NAME, "myCar");
+        carAttributes.put(ConfiguredObject.TYPE, 
TestStandardCarImpl.TEST_STANDARD_CAR_TYPE);
+
+        TestCar car = _model.getObjectFactory().create(TestCar.class, 
carAttributes);
+
+        Map<String, Object> engineAttributes = new HashMap<>();
+        engineAttributes.put(ConfiguredObject.NAME, "myEngine");
+        engineAttributes.put(ConfiguredObject.TYPE, 
TestElecEngineImpl.TEST_ELEC_ENGINE_TYPE);
+
+        TestEngine engine = (TestEngine) car.createChild(TestEngine.class, 
engineAttributes);
+
+        assertNotNull("Unexpected user preferences", 
engine.getUserPreferences());
+    }
+
     public void testDuplicateChildRejected_Name()
     {
         doDuplicateChildCheck(ConfiguredObject.NAME);

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCar.java
 Mon Aug 29 15:04:33 2016
@@ -22,9 +22,10 @@ package org.apache.qpid.server.model.tes
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedOperation;
 import org.apache.qpid.server.model.Param;
+import org.apache.qpid.server.store.preferences.UserPreferencesCreator;
 
 @ManagedObject(category = false)
-public interface TestStandardCar<X extends TestStandardCar<X>> extends 
TestCar<X>
+public interface TestStandardCar<X extends TestStandardCar<X>> extends 
TestCar<X>, UserPreferencesCreator
 {
 
     @ManagedOperation

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCarImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCarImpl.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCarImpl.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/TestStandardCarImpl.java
 Mon Aug 29 15:04:33 2016
@@ -33,6 +33,12 @@ import org.apache.qpid.server.model.Conf
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
+import org.apache.qpid.server.model.Model;
+import org.apache.qpid.server.model.preferences.Preference;
+import org.apache.qpid.server.model.preferences.UserPreferences;
+import org.apache.qpid.server.model.preferences.UserPreferencesImpl;
+import 
org.apache.qpid.server.store.preferences.NoopPreferenceStoreFactoryService;
+import org.apache.qpid.server.store.preferences.PreferenceStore;
 
 @ManagedObject( category = false,
                 type = TestStandardCarImpl.TEST_STANDARD_CAR_TYPE,
@@ -41,6 +47,7 @@ public class TestStandardCarImpl extends
         implements TestStandardCar<TestStandardCarImpl>
 {
     public static final String TEST_STANDARD_CAR_TYPE = "testpertrolcar";
+    private final PreferenceStore _preferenceStore;
 
     @ManagedAttributeField
     private Colour _bodyColour;
@@ -51,12 +58,13 @@ public class TestStandardCarImpl extends
     @ManagedObjectFactoryConstructor
     public TestStandardCarImpl(final Map<String, Object> attributes)
     {
-        super(parentsMap(), attributes, newTaskExecutor(), 
TestModel.getInstance());
+        this(attributes, TestModel.getInstance());
     }
 
-    public TestStandardCarImpl(final Map<String, Object> attributes, TestModel 
model)
+    public TestStandardCarImpl(final Map<String, Object> attributes, Model 
model)
     {
         super(parentsMap(), attributes, newTaskExecutor(), model);
+        _preferenceStore = new 
NoopPreferenceStoreFactoryService().createInstance(this, null);
     }
 
 
@@ -99,4 +107,10 @@ public class TestStandardCarImpl extends
     {
         return _interiorColour;
     }
+
+    @Override
+    public UserPreferences createUserPreferences(final ConfiguredObject<?> 
object)
+    {
+        return new UserPreferencesImpl(getTaskExecutor(), object, 
_preferenceStore, Collections.<Preference>emptySet());
+    }
 }

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/lifecycle/TestConfiguredObject.java
 Mon Aug 29 15:04:33 2016
@@ -267,5 +267,17 @@ public class TestConfiguredObject extend
         {
             return _configuredObjectTypeRegistry;
         }
+
+        @Override
+        public  <C> C getAncestor(final Class<C> ancestorClass,
+                                  final Class<? extends ConfiguredObject> 
category,
+                                  final ConfiguredObject<?> object)
+        {
+            if (object == null)
+            {
+                return null;
+            }
+            return super.getAncestor(ancestorClass, category, object);
+        }
     }
 }

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaKeyStoreTest.java
 Mon Aug 29 15:04:33 2016
@@ -24,6 +24,7 @@ import static org.apache.qpid.test.utils
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
@@ -83,6 +84,7 @@ public class NonJavaKeyStoreTest extends
         when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
         when(_broker.getModel()).thenReturn(_model);
         when(_broker.getEventLogger()).thenReturn(new 
EventLogger(_messageLogger));
+        when(((Broker) _broker).getCategoryClass()).thenReturn(Broker.class);
         _testResources = new ArrayList<>();
     }
 

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/NonJavaTrustStoreTest.java
 Mon Aug 29 15:04:33 2016
@@ -54,6 +54,7 @@ public class NonJavaTrustStoreTest exten
         when(_broker.getChildExecutor()).thenReturn(_taskExecutor);
         when(_broker.getModel()).thenReturn(_model);
         when(_broker.getEventLogger()).thenReturn(new EventLogger());
+        when(((Broker) _broker).getCategoryClass()).thenReturn(Broker.class);
     }
 
     public void testCreationOfTrustStoreFromValidCertificate() throws Exception

Modified: 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0Test.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0Test.java?rev=1758241&r1=1758240&r2=1758241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0Test.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0Test.java
 Mon Aug 29 15:04:33 2016
@@ -102,6 +102,7 @@ public class ProtocolEngine_1_0_0Test ex
         when(_broker.getTaskExecutor()).thenReturn(taskExecutor);
         when(_broker.getId()).thenReturn(UUID.randomUUID());
         when(_broker.getEventLogger()).thenReturn(new EventLogger());
+        when(((Broker) _broker).getCategoryClass()).thenReturn(Broker.class);
         _port = mock(AmqpPort.class);
         when(_port.getChildExecutor()).thenReturn(taskExecutor);
         when(_port.getCategoryClass()).thenReturn(Port.class);



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

Reply via email to