- // Perform variable substitution for system properties.
- for (Enumeration e = config.propertyNames(); e.hasMoreElements();) {
- String name = (String) e.nextElement();
- config.setProperty(name, org.apache.felix.main.Main.substVars(
- config.getProperty(name), name, null, config));
- if (log.isTraceEnabled())
- log.trace(name + "=" + config.getProperty(name));
+ public static void startEquinox(Properties config) throws Exception {
+ System.out.println("java.class.path="
+ + System.getProperty("java.class.path"));
+
+ File baseDir = new File(System.getProperty("user.dir"))
+ .getCanonicalFile();
+ String equinoxConfigurationPath = baseDir.getPath() + File.separator
+ + "slc-detached" + File.separator + "equinoxConfiguration";
+ String[] equinoxArgs = { "-console", "-noExit", "-clean",
+ "-configuration", equinoxConfigurationPath };
+
+ BundleContext context = EclipseStarter.startup(equinoxArgs, null);
+
+ // Load from class path (dev environment, maven)
+ StringTokenizer st = new StringTokenizer(System
+ .getProperty("java.class.path"), File.pathSeparator);
+ while (st.hasMoreTokens()) {
+ try {
+ String path = st.nextToken();
+ String url = "reference:file:"
+ + new File(path).getCanonicalPath();
+ context.installBundle(url);
+ info("Installed from classpath " + url);
+ } catch (Exception e) {
+ bundleInstallWarn(e.getMessage());
+ }