modules/enterprise/server/plugins/groovy-script/src/main/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializer.groovy
| 7 ++++
modules/enterprise/server/plugins/groovy-script/src/test/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializerTest.groovy
| 17 +++++++---
2 files changed, 20 insertions(+), 4 deletions(-)
New commits:
commit cb6fd0c410135b62995de1a34692f2759ea63ddb
Author: John Sanda <jsanda(a)redhat.com>
Date: Mon Aug 23 07:17:21 2010 -0400
Adding support for specifying lib directories to be added to script classpath
Every jar file found in a lib directory is added to the script's classpath.
diff --git
a/modules/enterprise/server/plugins/groovy-script/src/main/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializer.groovy
b/modules/enterprise/server/plugins/groovy-script/src/main/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializer.groovy
index 584c364..1c366d7 100644
---
a/modules/enterprise/server/plugins/groovy-script/src/main/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializer.groovy
+++
b/modules/enterprise/server/plugins/groovy-script/src/main/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializer.groovy
@@ -6,5 +6,12 @@ class ClasspathInitializer {
def initClasspath(String paths, String libDirs, scriptClassLoader) {
paths.eachLine { scriptClassLoader.addClasspath(it.trim()) }
+
+ libDirs.eachLine { path ->
+ def dir = new File(path.trim())
+ dir.eachFileMatch( ~/.*\.jar/) { jarFile ->
+ scriptClassLoader.addClasspath(jarFile.absolutePath)
+ }
+ }
}
}
diff --git
a/modules/enterprise/server/plugins/groovy-script/src/test/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializerTest.groovy
b/modules/enterprise/server/plugins/groovy-script/src/test/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializerTest.groovy
index 028f72c..480dc45 100644
---
a/modules/enterprise/server/plugins/groovy-script/src/test/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializerTest.groovy
+++
b/modules/enterprise/server/plugins/groovy-script/src/test/groovy/org/rhq/enterprise/server/plugins/groovy/ClasspathInitializerTest.groovy
@@ -25,9 +25,18 @@ class ClasspathInitializerTest {
assertEquals(actual, expected, "Failed to add paths or add them in correct order
to classpath")
}
-// @Test
-// void addJarsInEachLibDirToClasspath() {
-//
-// }
+ @Test
+ void addJarsInEachLibDirToClasspath() {
+ def libDir = this.class.getResource('.').toURI().path +
"test-libs"
+
+ def actual = new HashSet()
+
+ def classLoader = [addClasspath: {String path -> actual << path }]
+
+ new ClasspathInitializer().initClasspath('', libDir, classLoader)
+
+ assertTrue(actual.contains("$libDir/dep1.jar".toString()), "Failed to
add JAR <dep1.jar> file to classpath")
+ assertTrue(actual.contains("$libDir/dep2.jar".toString()), "Failed to
add JAR file <dep2.jar> to classpath")
+ }
}
diff --git
a/modules/enterprise/server/plugins/groovy-script/src/test/resources/org/rhq/enterprise/server/plugins/groovy/test-libs/dep1.jar
b/modules/enterprise/server/plugins/groovy-script/src/test/resources/org/rhq/enterprise/server/plugins/groovy/test-libs/dep1.jar
new file mode 100644
index 0000000..e69de29
diff --git
a/modules/enterprise/server/plugins/groovy-script/src/test/resources/org/rhq/enterprise/server/plugins/groovy/test-libs/dep2.jar
b/modules/enterprise/server/plugins/groovy-script/src/test/resources/org/rhq/enterprise/server/plugins/groovy/test-libs/dep2.jar
new file mode 100644
index 0000000..e69de29
Show replies by date