diff options
| author | Robert Gemmell <robbie@apache.org> | 2014-05-20 11:45:55 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2014-05-20 11:45:55 +0000 |
| commit | e7eafff56e6a1b67e7aafe7725956c93b7eec379 (patch) | |
| tree | b5f742d40386dffb31f69faf2ab05f6181e839e8 /qpid/java | |
| parent | 886bed0d4e36bffe03a52e6d7ee2b8aa04b44a20 (diff) | |
| download | qpid-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.java | 22 |
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()); } } } |
