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 2016/11/03 07:30:50 UTC

svn commit: r1767829 - in /qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server: SystemLauncher.java model/AbstractSystemConfig.java model/SystemConfig.java

Author: rgodfrey
Date: Thu Nov  3 07:30:50 2016
New Revision: 1767829

URL: http://svn.apache.org/viewvc?rev=1767829&view=rev
Log:
QPID-7486 : remove assumptions on Broker in SystemLauncher

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/SystemLauncher.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/SystemLauncher.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/SystemLauncher.java?rev=1767829&r1=1767828&r2=1767829&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/SystemLauncher.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/SystemLauncher.java Thu Nov  3 07:30:50 2016
@@ -54,7 +54,6 @@ import org.apache.qpid.server.logging.Lo
 import org.apache.qpid.server.logging.LoggingMessageLogger;
 import org.apache.qpid.server.logging.MessageLogger;
 import org.apache.qpid.server.logging.SystemOutMessageLogger;
-import org.apache.qpid.server.model.Container;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.SystemConfig;
 import org.apache.qpid.server.plugin.PluggableFactoryLoader;
@@ -283,7 +282,7 @@ public class SystemLauncher
 
 
         _systemConfig.open();
-        if (_systemConfig.getContainer(Container.class).getState() == State.ERRORED)
+        if (_systemConfig.getContainer().getState() == State.ERRORED)
         {
             throw new RuntimeException("Closing due to errors");
         }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java?rev=1767829&r1=1767828&r2=1767829&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java Thu Nov  3 07:30:50 2016
@@ -198,7 +198,7 @@ public abstract class AbstractSystemConf
     @Override
     public final <T extends Container<? extends T>> T getContainer(Class<T> clazz)
     {
-        Collection<? extends Container> children = getChildren(Container.class);
+        Collection<? extends T> children = getChildren(clazz);
         if(children == null || children.isEmpty())
         {
             return null;
@@ -208,16 +208,37 @@ public abstract class AbstractSystemConf
             throw new IllegalConfigurationException("More than one " + clazz.getSimpleName() + " has been registered in a single context");
         }
 
-        Container container = children.iterator().next();
-        if(clazz.isAssignableFrom(container.getClass()))
+        return children.iterator().next();
+
+    }
+
+    @Override
+    public final Container<?> getContainer()
+    {
+        final Collection<Class<? extends ConfiguredObject>> containerTypes =
+                getModel().getChildTypes(SystemConfig.class);
+        Class containerClass = null;
+        for(Class<? extends ConfiguredObject> clazz : containerTypes)
         {
-            return (T) container;
+            if(Container.class.isAssignableFrom(clazz))
+            {
+                if(containerClass == null)
+                {
+                    containerClass = clazz;
+                }
+                else
+                {
+                    throw new IllegalArgumentException("Model has more than one child Container class beneath SystemConfig");
+                }
+            }
         }
-        else
+
+        if(containerClass == null)
         {
-            throw new IllegalConfigurationException("Child is not of expected class, expected " + clazz.getSimpleName() + " but was " + container.getClass().getSimpleName());
+            throw new IllegalArgumentException("Model has no child Container class beneath SystemConfig");
         }
 
+        return getContainer(containerClass);
     }
 
     @Override

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java?rev=1767829&r1=1767828&r2=1767829&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java Thu Nov  3 07:30:50 2016
@@ -102,6 +102,8 @@ public interface SystemConfig<X extends
 
     EventLogger getEventLogger();
 
+    Container<?> getContainer();
+
     DurableConfigurationStore getConfigurationStore();
 
     Runnable getOnContainerResolveTask();



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