From e7eafff56e6a1b67e7aafe7725956c93b7eec379 Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Tue, 20 May 2014 11:45:55 +0000 Subject: 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 --- .../server/model/ConfiguredObjectTypeRegistry.java | 22 ++++++++++++++++------ 1 file 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> NAME_COMPARATOR = new Comparator>() { @Override @@ -88,15 +91,22 @@ public class ConfiguredObjectTypeRegistry { for (Class 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()); } } } -- cgit v1.2.1