summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/node-launcher-equinox
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2008-11-28 10:39:49 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2008-11-28 10:39:49 +0000
commit2dc8930c63368076d695c3f050fcd8815e7d0c2a (patch)
treef42e0a87595c96e37b28d5a0c6712ecb9236747d /java/sca/modules/node-launcher-equinox
parentcdf9b141765f5397bfd8927c8c8454fa8157ad65 (diff)
Ensure that all of the jars are located correctly when the node launcher is run from the command line.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@721420 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/node-launcher-equinox')
-rw-r--r--java/sca/modules/node-launcher-equinox/pom.xml1
-rw-r--r--java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java24
2 files changed, 17 insertions, 8 deletions
diff --git a/java/sca/modules/node-launcher-equinox/pom.xml b/java/sca/modules/node-launcher-equinox/pom.xml
index e3a9ac4e2e..6acabf1136 100644
--- a/java/sca/modules/node-launcher-equinox/pom.xml
+++ b/java/sca/modules/node-launcher-equinox/pom.xml
@@ -102,6 +102,7 @@
<archive>
<manifest>
<mainClass>org.apache.tuscany.sca.node.equinox.launcher.NodeMain</mainClass>
+ <addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
diff --git a/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java b/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java
index 95d733aba2..db53eb7852 100644
--- a/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java
+++ b/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java
@@ -527,13 +527,17 @@ final class NodeLauncherUtil {
* @param filter
* @throws MalformedURLException
*/
- private static void collectClasspathEntries(File directory, Set<URL> urls, FilenameFilter filter) throws MalformedURLException {
+ private static void collectClasspathEntries(File directory, Set<URL> urls, FilenameFilter filter, boolean recursive) throws MalformedURLException {
File[] files = directory.listFiles(filter);
if (files != null) {
int count = 0;
for (File file: files) {
- urls.add(file.toURI().toURL());
- count++;
+ if (recursive && file.isDirectory()) {
+ collectClasspathEntries(file, urls, filter, recursive);
+ } else {
+ urls.add(file.toURI().toURL());
+ count++;
+ }
}
if (count != 0) {
logger.info("Runtime classpath: "+ count + " JAR" + (count > 1? "s":"")+ " from " + directory.toString());
@@ -590,14 +594,14 @@ final class NodeLauncherUtil {
// Collect files under the given directory
jarDirectoryURLs.add(directoryURL);
- collectClasspathEntries(directoryFile, jarURLs, filter);
+ collectClasspathEntries(directoryFile, jarURLs, filter, false);
// Collect files under <directory>/modules
File modulesDirectory = new File(directoryFile, "modules");
URL modulesDirectoryURL = modulesDirectory.toURI().toURL();
if (!jarDirectoryURLs.contains(modulesDirectoryURL) && modulesDirectory.exists()) {
jarDirectoryURLs.add(modulesDirectoryURL);
- collectClasspathEntries(modulesDirectory, jarURLs, filter);
+ collectClasspathEntries(modulesDirectory, jarURLs, filter, true);
}
// Collect files under <directory>/lib
@@ -605,7 +609,7 @@ final class NodeLauncherUtil {
URL libDirectoryURL = libDirectory.toURI().toURL();
if (!jarDirectoryURLs.contains(libDirectoryURL) && libDirectory.exists()) {
jarDirectoryURLs.add(libDirectoryURL);
- collectClasspathEntries(libDirectory, jarURLs, filter);
+ collectClasspathEntries(libDirectory, jarURLs, filter, true);
}
}
}
@@ -649,7 +653,7 @@ final class NodeLauncherUtil {
// (e.g. the Tuscany modules directory)
URL jarDirectoryURL = jarDirectory.toURI().toURL();
jarDirectoryURLs.add(jarDirectoryURL);
- collectClasspathEntries(jarDirectory, jarURLs, new StandAloneJARFileNameFilter());
+ collectClasspathEntries(jarDirectory, jarURLs, new StandAloneJARFileNameFilter(), true);
File homeDirectory = jarDirectory.getParentFile();
if (homeDirectory != null && homeDirectory.exists()) {
@@ -770,6 +774,10 @@ final class NodeLauncherUtil {
public boolean accept(File dir, String name) {
name = name.toLowerCase();
+ if(new File(dir, name).isDirectory()) {
+ return true;
+ }
+
// Filter out the Tomcat and Webapp hosts
if (name.startsWith("tuscany-host-tomcat") ||
name.startsWith("tuscany-host-webapp")) {
@@ -918,7 +926,7 @@ final class NodeLauncherUtil {
URL libDirectoryURL = libDirectory.toURI().toURL();
if (!jarDirectoryURLs.contains(libDirectoryURL) && libDirectory.exists()) {
jarDirectoryURLs.add(libDirectoryURL);
- collectClasspathEntries(libDirectory, jarURLs, filter);
+ collectClasspathEntries(libDirectory, jarURLs, filter, false);
}
}
}