You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2019/11/21 11:59:18 UTC

[qpid-broker-j] branch master updated: QPID-8382 : Allow for making attribute injectors type specific

This is an automated email from the ASF dual-hosted git repository.

rgodfrey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git


The following commit(s) were added to refs/heads/master by this push:
     new cf12504  QPID-8382 : Allow for making attribute injectors type specific
cf12504 is described below

commit cf1250432e74b7793182b7b7970fe07419647e09
Author: rgodfrey <rg...@apache.org>
AuthorDate: Thu Nov 21 12:58:47 2019 +0100

    QPID-8382 : Allow for making attribute injectors type specific
---
 .../qpid/server/model/BrokerAttributeInjector.java | 16 ++++++------
 .../server/model/ConfiguredObjectTypeRegistry.java | 29 ++++++++++++----------
 .../plugin/ConfiguredObjectAttributeInjector.java  |  6 +++++
 3 files changed, 29 insertions(+), 22 deletions(-)

diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/BrokerAttributeInjector.java b/broker-core/src/main/java/org/apache/qpid/server/model/BrokerAttributeInjector.java
index a2d5278..8208973 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/BrokerAttributeInjector.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/BrokerAttributeInjector.java
@@ -50,15 +50,7 @@ public class BrokerAttributeInjector implements ConfiguredObjectAttributeInjecto
 {
     private static final Logger LOGGER = LoggerFactory.getLogger(BrokerAttributeInjector.class);
 
-    private final InjectedAttributeOrStatistic.TypeValidator _typeValidator =
-            new InjectedAttributeOrStatistic.TypeValidator()
-            {
-                @Override
-                public boolean appliesToType(final Class<? extends ConfiguredObject<?>> type)
-                {
-                    return Broker.class.isAssignableFrom(type);
-                }
-            };
+    private final InjectedAttributeOrStatistic.TypeValidator _typeValidator = Broker.class::isAssignableFrom;
 
     private final Class<?> _hotSpotDiagnosticMXBeanClass;
     private final PlatformManagedObject _hotSpotDiagnosticMXBean;
@@ -86,6 +78,12 @@ public class BrokerAttributeInjector implements ConfiguredObjectAttributeInjecto
     }
 
     @Override
+    public InjectedAttributeStatisticOrOperation.TypeValidator getTypeValidator()
+    {
+        return _typeValidator;
+    }
+
+    @Override
     public Collection<ConfiguredObjectInjectedAttribute<?, ?>> getInjectedAttributes()
     {
         List<ConfiguredObjectInjectedAttribute<?, ?>> attributes = new ArrayList<>();
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java b/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
index 65b8d23..79b5fc6 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
@@ -815,27 +815,30 @@ public class ConfiguredObjectTypeRegistry
 
         for (ConfiguredObjectAttributeInjector injector : _attributeInjectors)
         {
-            for (ConfiguredObjectInjectedAttribute<?, ?> attr : injector.getInjectedAttributes())
+            if (injector.getTypeValidator().appliesToType((Class<? extends ConfiguredObject<?>>) clazz))
             {
-                if (attr.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
+                for (ConfiguredObjectInjectedAttribute<?, ?> attr : injector.getInjectedAttributes())
                 {
-                    attributeSet.add(attr);
+                    if (attr.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
+                    {
+                        attributeSet.add(attr);
+                    }
                 }
-            }
 
-            for (ConfiguredObjectInjectedStatistic<?, ?> attr : injector.getInjectedStatistics())
-            {
-                if (attr.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
+                for (ConfiguredObjectInjectedStatistic<?, ?> attr : injector.getInjectedStatistics())
                 {
-                    statisticSet.add(attr);
+                    if (attr.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
+                    {
+                        statisticSet.add(attr);
+                    }
                 }
-            }
 
-            for (ConfiguredObjectInjectedOperation<?> operation : injector.getInjectedOperations())
-            {
-                if (operation.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
+                for (ConfiguredObjectInjectedOperation<?> operation : injector.getInjectedOperations())
                 {
-                    operationsSet.add(operation);
+                    if (operation.appliesToConfiguredObjectType((Class<? extends ConfiguredObject<?>>) clazz))
+                    {
+                        operationsSet.add(operation);
+                    }
                 }
             }
         }
diff --git a/broker-core/src/main/java/org/apache/qpid/server/plugin/ConfiguredObjectAttributeInjector.java b/broker-core/src/main/java/org/apache/qpid/server/plugin/ConfiguredObjectAttributeInjector.java
index 779884a..13d9dd9 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/plugin/ConfiguredObjectAttributeInjector.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/plugin/ConfiguredObjectAttributeInjector.java
@@ -25,10 +25,16 @@ import java.util.Collection;
 import org.apache.qpid.server.model.ConfiguredObjectInjectedAttribute;
 import org.apache.qpid.server.model.ConfiguredObjectInjectedOperation;
 import org.apache.qpid.server.model.ConfiguredObjectInjectedStatistic;
+import org.apache.qpid.server.model.InjectedAttributeStatisticOrOperation;
 
 public interface ConfiguredObjectAttributeInjector extends Pluggable
 {
     Collection<ConfiguredObjectInjectedAttribute<?,?>> getInjectedAttributes();
     Collection<ConfiguredObjectInjectedStatistic<?,?>> getInjectedStatistics();
     Collection<ConfiguredObjectInjectedOperation<?>> getInjectedOperations();
+
+    default InjectedAttributeStatisticOrOperation.TypeValidator getTypeValidator()
+    {
+        return type -> true;
+    }
 }


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