Experiment with runtime manager
[gpl/argeo-slc.git] / org.argeo.slc.cms / src / org / argeo / slc / init / osgi / SlcInitActivator.java
diff --git a/org.argeo.slc.cms/src/org/argeo/slc/init/osgi/SlcInitActivator.java b/org.argeo.slc.cms/src/org/argeo/slc/init/osgi/SlcInitActivator.java
new file mode 100644 (file)
index 0000000..e8b43e7
--- /dev/null
@@ -0,0 +1,70 @@
+package org.argeo.slc.init.osgi;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import org.argeo.api.cms.CmsLog;
+import org.argeo.cms.CmsDeployProperty;
+import org.argeo.init.RuntimeManager;
+import org.argeo.init.osgi.OsgiBoot;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class SlcInitActivator implements BundleActivator {
+       private final static CmsLog log = CmsLog.getLog(SlcInitActivator.class);
+
+       private ServiceTracker<RuntimeManager, RuntimeManager> runtimeManagerSt;
+
+       @Override
+       public void start(BundleContext context) throws Exception {
+               Path userHome = Paths.get(System.getProperty("user.home"));
+//             OsgiCmsDeployment.main(new String[0]);
+               runtimeManagerSt = new ServiceTracker<>(context, RuntimeManager.class, null) {
+
+                       @Override
+                       public RuntimeManager addingService(ServiceReference<RuntimeManager> reference) {
+                               RuntimeManager runtimeManager = super.addingService(reference);
+                               log.debug("Found runtime manager " + runtimeManager);
+                               new Thread() {
+                                       public void run() {
+                                               try {
+                                                       Thread.sleep(5000);
+                                               } catch (InterruptedException e) {
+                                                       return;
+                                               }
+
+                                               runtimeManager.startRuntime("cms/test", (config) -> {
+                                                       config.put("osgi.clean", "true");
+                                                       // config.put("argeo.osgi.sources", "a2+reference:///?osgi=equinox");
+                                                       config.put("osgi.console", "2024");
+                                                       config.put(CmsDeployProperty.SSHD_PORT.getProperty(), "2222");
+//                                                     config.put(CmsDeployProperty.HTTP_PORT.getProperty(), "7070");
+//                                                     config.put(CmsDeployProperty.HOST.getProperty(),
+//                                                                     "localhost");
+                                                       Path instanceData = userHome
+                                                                       .resolve("dev/git/unstable/argeo-slc/sdk/exec/cms-deployment/data");
+                                                       config.put(OsgiBoot.PROP_OSGI_INSTANCE_AREA, instanceData.toUri().toString());
+                                                       config.put("argeo.directory", "dc=example,dc=com.ldif");
+
+//                                                     for (String key : config.keySet()) {
+//                                                             System.out.println(key + "=" + config.get(key));
+////                                                           log.debug(() -> key + "=" + config.get(key));
+//                                                     }
+                                               });
+                                       }
+                               }.start();
+
+                               return runtimeManager;
+                       }
+
+               };
+               runtimeManagerSt.open(true);
+       }
+
+       @Override
+       public void stop(BundleContext context) throws Exception {
+       }
+
+}