in src/main/java/org/apache/sling/testing/serversetup/instance/SlingTestBase.java [425:467]
protected List<File> getBundlesToInstall(String additionalBundlesPath) {
final List<File> result = new LinkedList<File>();
if(additionalBundlesPath == null) {
return result;
}
final File dir = new File(additionalBundlesPath);
if(!dir.isDirectory() || !dir.canRead()) {
log.info("Cannot read additional bundles directory {}, ignored", dir.getAbsolutePath());
return result;
}
// Collect all filenames of candidate bundles
final List<String> bundleNames = new ArrayList<String>();
final String [] files = dir.list();
if (files != null) {
for(String file : files) {
if(file.endsWith(".jar")) {
bundleNames.add(file);
}
}
}
// We'll install those that are specified by system properties, in order
final List<String> sortedPropertyKeys = new ArrayList<String>();
for(Object key : systemProperties.keySet()) {
final String str = key.toString();
if(str.startsWith(BUNDLE_TO_INSTALL_PREFIX)) {
sortedPropertyKeys.add(str);
}
}
Collections.sort(sortedPropertyKeys);
for (String key : sortedPropertyKeys) {
final String filenamePrefix = systemProperties.getProperty(key);
for(String bundleFilename : bundleNames) {
if(bundleFilename.startsWith(filenamePrefix)) {
result.add(new File(dir, bundleFilename));
}
}
}
return result;
}