summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2014-05-20 11:45:55 +0000
committerRobert Gemmell <robbie@apache.org>2014-05-20 11:45:55 +0000
commite7eafff56e6a1b67e7aafe7725956c93b7eec379 (patch)
treeb5f742d40386dffb31f69faf2ab05f6181e839e8 /qpid/java
parent886bed0d4e36bffe03a52e6d7ee2b8aa04b44a20 (diff)
downloadqpid-python-e7eafff56e6a1b67e7aafe7725956c93b7eec379.tar.gz
QPID-5762: log a warning but allow the model processing to continue when there are unsatisfied dependencies, enabling startup if the associated pluggable services are not being used
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1596214 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java22
1 files changed, 16 insertions, 6 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
index 99887a2ea9..950638cd63 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
@@ -35,6 +35,7 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
+import org.apache.log4j.Logger;
import org.apache.qpid.server.plugin.ConfiguredObjectRegistration;
import org.apache.qpid.server.plugin.QpidServiceLoader;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
@@ -42,6 +43,8 @@ import org.apache.qpid.util.Strings;
public class ConfiguredObjectTypeRegistry
{
+ private static final Logger LOGGER = Logger.getLogger(ConfiguredObjectTypeRegistry.class);
+
private static final Comparator<ConfiguredObjectAttributeOrStatistic<?,?>> NAME_COMPARATOR = new Comparator<ConfiguredObjectAttributeOrStatistic<?, ?>>()
{
@Override
@@ -88,15 +91,22 @@ public class ConfiguredObjectTypeRegistry
{
for (Class<? extends ConfiguredObject> configuredObjectClass : registration.getConfiguredObjectClasses())
{
- process(configuredObjectClass);
- ManagedObject annotation = configuredObjectClass.getAnnotation(ManagedObject.class);
- if (annotation.category())
+ try
{
- categories.add(configuredObjectClass);
+ process(configuredObjectClass);
+ ManagedObject annotation = configuredObjectClass.getAnnotation(ManagedObject.class);
+ if (annotation.category())
+ {
+ categories.add(configuredObjectClass);
+ }
+ if (!"".equals(annotation.type()))
+ {
+ types.add(configuredObjectClass);
+ }
}
- if (!"".equals(annotation.type()))
+ catch(NoClassDefFoundError ncdfe)
{
- types.add(configuredObjectClass);
+ LOGGER.warn("A class definition could not be found while processing the model for '" + configuredObjectClass.getName() + "': " + ncdfe.getMessage());
}
}
}