You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ja...@apache.org on 2014/03/06 04:52:44 UTC
git commit: KARAF-2808 - Child containers should be able to have
additional libs on the classpath
Repository: karaf
Updated Branches:
refs/heads/karaf-2.x 2eb81bb4d -> 8aab16946
KARAF-2808 - Child containers should be able to have additional libs on the classpath
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/8aab1694
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/8aab1694
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/8aab1694
Branch: refs/heads/karaf-2.x
Commit: 8aab169462373172951065cb8b30d6723653b54d
Parents: 2eb81bb
Author: Jonathan Anstey <ja...@gmail.com>
Authored: Thu Mar 6 00:21:00 2014 -0330
Committer: Jonathan Anstey <ja...@gmail.com>
Committed: Thu Mar 6 00:21:00 2014 -0330
----------------------------------------------------------------------
.../karaf/admin/internal/AdminServiceImpl.java | 43 +++++++++++++-------
1 file changed, 29 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/8aab1694/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
----------------------------------------------------------------------
diff --git a/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java b/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
index 6612a2b..845f699 100644
--- a/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
+++ b/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
@@ -394,21 +394,18 @@ public class AdminServiceImpl implements AdminService {
opts = DEFAULT_JAVA_OPTS;
}
String karafOpts = System.getProperty("karaf.opts", "");
-
- File libDir = new File(System.getProperty("karaf.home"), "lib");
- File[] jars = libDir.listFiles(new FilenameFilter() {
- public boolean accept(File dir, String name) {
- return name.endsWith(".jar");
- }
- });
- StringBuilder classpath = new StringBuilder();
- for (File jar : jars) {
- if (classpath.length() > 0) {
- classpath.append(System.getProperty("path.separator"));
- }
- classpath.append(jar.getCanonicalPath());
- }
String location = instance.loc;
+
+ File libDir = new File(System.getProperty("karaf.home"), "lib");
+ File childLibDir = new File(location, "lib");
+
+ StringBuilder classpath = classpathFromLibDir(libDir);
+ StringBuilder childClasspath = classpathFromLibDir(childLibDir);
+ if (childClasspath.length() > 0 && !libDir.equals(childLibDir)) {
+ classpath.append(System.getProperty("path.separator"));
+ classpath.append(childClasspath);
+ }
+
String command = "\""
+ new File(System.getProperty("java.home"), ScriptUtils.isWindows() ? "bin\\java.exe" : "bin/java").getCanonicalPath()
+ "\" " + opts
@@ -432,6 +429,24 @@ public class AdminServiceImpl implements AdminService {
instance.pid = process.getPid();
return null;
}
+
+ private StringBuilder classpathFromLibDir(File libDir) throws IOException {
+ File[] jars = libDir.listFiles(new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".jar");
+ }
+ });
+ StringBuilder classpath = new StringBuilder();
+ if (jars != null) {
+ for (File jar : jars) {
+ if (classpath.length() > 0) {
+ classpath.append(System.getProperty("path.separator"));
+ }
+ classpath.append(jar.getCanonicalPath());
+ }
+ }
+ return classpath;
+ }
});
}