diff --git a/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java b/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java
index c4e7f9b..b6a62d5 100644
--- a/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java
+++ b/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java
@@ -188,11 +188,21 @@ public class LauncherCommand extends OptionParsingCommand {
dependency.put("transitive", false);
URI[] uris = grapeEngine.resolve(null, dependency);
URLClassLoader loader = new URLClassLoader(new URL[] { uris[0].toURL() },
- getClass().getClassLoader().getParent().getParent());
+ systemClassLoader(getClass().getClassLoader()));
log.debug("resolved URIs " + Arrays.asList(loader.getURLs()));
return loader;
}
+ private ClassLoader systemClassLoader(ClassLoader classLoader) {
+ if (classLoader.getParent().getParent()!=null) {
+ if (classLoader.getParent().getParent().getParent()!=null) {
+ return classLoader.getParent().getParent().getParent();
+ }
+ return classLoader.getParent().getParent();
+ }
+ return classLoader.getParent();
+ }
+
private String getVersion() {
Package pkg = LauncherCommand.class.getPackage();
String version = (pkg != null ? pkg.getImplementationVersion()
diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml
index 3bc8f94..a235d24 100644
--- a/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml
+++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml
@@ -17,9 +17,9 @@
- 1.3.8.RELEASE
- 1.3.3.RELEASE
- 1.0.15.RELEASE
+ 2.0.4.RELEASE
+ 2.0.3.RELEASE
+ 1.0.22.RELEASE