in main/src/main/java/org/apache/servicemix/kernel/main/Main.java [863:924]
private static void processConfigurationProperties(Properties props, Properties startupProps, ArrayList<File> bundleDirs) {
if (bundleDirs == null) {
return;
}
if ("all".equals(props.getProperty(PROPERTY_AUTO_START, "").trim())) {
props.remove(PROPERTY_AUTO_START);
ArrayList<File> jars = new ArrayList<File>();
// We should start all the bundles in the system dir.
for (File bundleDir : bundleDirs) {
findJars(bundleDir, jars);
}
StringBuffer sb = new StringBuffer();
for (File jar : jars) {
try {
sb.append("\"").append(jar.toURL().toString()).append("\" ");
} catch (MalformedURLException e) {
System.err.print("Ignoring " + jar.toString() + " (" + e + ")");
}
}
props.setProperty(PROPERTY_AUTO_START, sb.toString());
} else if (STARTUP_PROPERTIES_FILE_NAME.equals(props.getProperty(PROPERTY_AUTO_START, "").trim())) {
props.remove(PROPERTY_AUTO_START);
// We should start the bundles in the startup.properties file.
HashMap<Integer, StringBuffer> levels = new HashMap<Integer, StringBuffer>();
for (Iterator iterator = startupProps.keySet().iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
File file = findFile(bundleDirs, name);
if (file != null) {
Integer level;
try {
level = new Integer(startupProps.getProperty(name).trim());
} catch (NumberFormatException e1) {
System.err.print("Ignoring " + file.toString() + " (run level must be an integer)");
continue;
}
StringBuffer sb = levels.get(level);
if (sb == null) {
sb = new StringBuffer(256);
levels.put(level, sb);
}
try {
sb.append("\"").append(file.toURL().toString()).append("|").append(name).append("\" ");
} catch (MalformedURLException e) {
System.err.print("Ignoring " + file.toString() + " (" + e + ")");
}
} else {
System.err.println("Bundle listed in " + STARTUP_PROPERTIES_FILE_NAME + " configuration not found: " + name);
}
}
for (Map.Entry<Integer, StringBuffer> entry : levels.entrySet()) {
props.setProperty(PROPERTY_AUTO_START + "." + entry.getKey(), entry.getValue().toString());
}
}
}