From 548a34b9f365510ccbf50e51a83514b21027b974 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Sat, 16 Nov 2013 01:09:44 +0100 Subject: [PATCH] [Minor] throw exception if declared dependency is missing Instead of running into a NPE, now an exception is thrown so the user knows which component is missing which dependency. --- .../runtime/component/ComponentDependencyAnalyzer.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/li/strolch/runtime/component/ComponentDependencyAnalyzer.java b/src/main/java/li/strolch/runtime/component/ComponentDependencyAnalyzer.java index dfb5afaba..92d37ec46 100644 --- a/src/main/java/li/strolch/runtime/component/ComponentDependencyAnalyzer.java +++ b/src/main/java/li/strolch/runtime/component/ComponentDependencyAnalyzer.java @@ -1,5 +1,6 @@ package li.strolch.runtime.component; +import java.text.MessageFormat; import java.util.HashSet; import java.util.Iterator; import java.util.Map; @@ -7,6 +8,7 @@ import java.util.Set; import li.strolch.runtime.configuration.ComponentConfiguration; import li.strolch.runtime.configuration.StrolchConfiguration; +import li.strolch.runtime.configuration.StrolchConfigurationException; public class ComponentDependencyAnalyzer { @@ -109,6 +111,11 @@ public class ComponentDependencyAnalyzer { Set dependencies = configuration.getDependencies(); for (String dependencyName : dependencies) { ComponentController dependency = this.controllerMap.get(dependencyName); + if (dependency == null) { + String msg = "Component {0} is missing required dependency {1}"; //$NON-NLS-1$ + msg = MessageFormat.format(msg, name, dependencyName); + throw new StrolchConfigurationException(msg); + } controller.addUpstreamDependency(dependency); } }