Skip to content

Commit cae62a8

Browse files
committed
Merge branch 'improve-java3d-detection'
2 parents 66945ec + 8f37fc5 commit cae62a8

File tree

2 files changed

+31
-25
lines changed

2 files changed

+31
-25
lines changed

src/main/java/org/scijava/java3d/DefaultJava3DService.java

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -91,34 +91,33 @@ protected void onEvent(@SuppressWarnings("unused") final UIShownEvent evt) {
9191
// -- Helper methods --
9292

9393
private void checkLibExtDirectory(final ArrayList<File> files,
94-
final String dir)
94+
final String dirPath)
9595
{
96-
checkFile(files, new File(dir, "j3dcore.jar"));
97-
checkFile(files, new File(dir, "vecmath.jar"));
98-
checkFile(files, new File(dir, "j3dutils.jar"));
99-
checkFilePattern( files, dir, "j3d-core*");
100-
checkFilePattern( files, dir, "vecmath*");
101-
checkFilePattern( files, dir, "jogl*");
102-
// Maybe libJ3DUtils.jnilib libJ3DAudio.jnilib
103-
}
104-
105-
private void checkFilePattern(ArrayList<File> files, String dir, String argPattern) {
106-
final String pattern = argPattern.replace(".","\\.").replace("*",".*");
107-
108-
if( dir.isEmpty() ) dir = ".";
109-
else if( (new File(dir)).exists() ) {
110-
for( File f : new File( dir ).listFiles( new FilenameFilter(){
111-
public boolean accept( File dir, String name ) {
112-
return name.matches( pattern );
113-
}
114-
})){
115-
files.add(f);
116-
}
117-
}
96+
final File dirFile = new File(dirPath.isEmpty() ? "." : dirPath);
97+
if (!dirFile.exists()) return;
98+
99+
checkFilePattern(files, dirFile, "gluegen-rt(-[0-9].*)?\\.jar");
100+
checkFilePattern(files, dirFile, "j3d-core(-[0-9].*)?\\.jar");
101+
checkFilePattern(files, dirFile, "j3d-core-utils(-[0-9].*)?\\.jar");
102+
checkFilePattern(files, dirFile, "j3dcore(-[0-9].*)?\\.jar");
103+
checkFilePattern(files, dirFile, "j3dutils(-[0-9].*)?\\.jar");
104+
checkFilePattern(files, dirFile, "jogl(-[0-9].*)?\\.jar");
105+
checkFilePattern(files, dirFile, "vecmath(-[0-9].*)?\\.jar");
118106
}
119107

120-
private void checkFile(ArrayList<File> files, File file) {
121-
if (file.exists()) files.add(file);
108+
private void checkFilePattern(final ArrayList<File> files,
109+
final File dirFile, final String regex)
110+
{
111+
final FilenameFilter filter = new FilenameFilter() {
112+
113+
@Override
114+
public boolean accept(final File dir, final String name) {
115+
return name.matches(regex);
116+
}
117+
};
118+
for (final File f : dirFile.listFiles(filter)) {
119+
files.add(f);
120+
}
122121
}
123122

124123
}

src/test/java/org/scijava/java3d/Java3DServiceTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,20 @@ public void testGetLibExtLocations() throws IOException {
8484
expected.add(j3dcore2);
8585
assertEquals(expected, libExtFiles());
8686

87+
final File j3dutils = createFile(tmp2, "j3dutils.jar");
88+
expected.add(j3dutils);
89+
final File jogl = createFile(tmp1, "jogl-2.2.0.jar");
90+
expected.add(jogl);
91+
assertEquals(expected, libExtFiles());
92+
8793
final File vecmath = createFile(tmp1, "vecmath.jar");
8894
createFile(tmp2, "red-herring");
8995
expected.add(vecmath);
9096
assertEquals(expected, libExtFiles());
9197

9298
System.setProperty("java.ext.dirs", tmp1.getAbsolutePath());
9399
expected.remove(j3dcore2);
100+
expected.remove(j3dutils);
94101
assertEquals(expected, libExtFiles());
95102

96103
System.setProperty("java.ext.dirs", "");

0 commit comments

Comments
 (0)