in src/main/java/org/apache/sling/maven/projectsupport/BundleListContentProvider.java [182:217]
private Iterator<String> handleInstallPath(String path) {
// Path is like
// bundles/install.runMode/12
// or a subset of that.
// Extract optional run mode and start level from that
if(path.endsWith("/")) {
path = path.substring(0, path.length() - 1);
}
final String [] parts = path.substring(INSTALL_PATH_PREFIX.length()).split("/");
if (parts.length > 2){
throw new IllegalStateException("Cannot parse path " + path);
}
final String runMode = parts[0].length() == 0 ? null : parts[0].substring(1);
final String startLevelInfo = parts.length > 1 ? parts[1] : null;
Set<String> result = new HashSet<String>();
if(runMode == null && startLevelInfo == null) {
// Root folder: add one subdir per start level that provides bundles
addStartLevelSubdirs(result, INSTALL_PATH_PREFIX, null);
} else if(startLevelInfo == null) {
// The root of a run mode folder - one subdir per start
// level which actually provides bundles
addStartLevelSubdirs(result, path, runMode);
} else {
// A folder that contains bundles
try {
addBundles(result, Integer.parseInt(startLevelInfo), runMode);
} catch (NumberFormatException e) {
getLog().warn("Invalid start level info " + startLevelInfo + " in path " + path);
}
}
return result.iterator();
}