Systemd deployment
[lgpl/argeo-commons.git] / org.argeo.init / src / org / argeo / init / Service.java
index 9a01cffed555f88eaf081cd7bcb3d86245f61f68..ef65d02cf14f46b35c805dc5ca5a8574c8136d63 100644 (file)
@@ -6,6 +6,7 @@ import java.util.Map;
 
 import org.argeo.init.osgi.OsgiRuntimeContext;
 
+/** Configure and launch an Argeo service. */
 public class Service implements Runnable, AutoCloseable {
        private final static Logger log = System.getLogger(Service.class.getName());
 
@@ -29,8 +30,10 @@ public class Service implements Runnable, AutoCloseable {
                // shutdown on exit
                Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                        try {
-                               if (Service.runtimeContext != null)
+                               if (Service.runtimeContext != null) {
                                        Service.runtimeContext.close();
+                                       //Service.runtimeContext.waitForStop(0);
+                               }
                        } catch (Exception e) {
                                e.printStackTrace();
                                System.exit(1);
@@ -38,13 +41,18 @@ public class Service implements Runnable, AutoCloseable {
                }, "Runtime shutdown"));
 
                Map<String, String> config = new HashMap<>();
+               config.put("osgi.framework.useSystemProperties", "true");
+//             for (Object key : System.getProperties().keySet()) {
+//                     config.put(key.toString(), System.getProperty(key.toString()));
+//                     log.log(Logger.Level.DEBUG, key + "=" + System.getProperty(key.toString()));
+//             }
                try {
-                       try (OsgiRuntimeContext osgiRuntimeContext = new OsgiRuntimeContext(config)) {
+                       try (OsgiRuntimeContext osgiRuntimeContext = new OsgiRuntimeContext((Map<String, String>) config)) {
                                osgiRuntimeContext.run();
                                Service.runtimeContext = osgiRuntimeContext;
                                Service.runtimeContext.waitForStop(0);
                        } catch (NoClassDefFoundError e) {
-                               try (StaticRuntimeContext staticRuntimeContext = new StaticRuntimeContext(config)) {
+                               try (StaticRuntimeContext staticRuntimeContext = new StaticRuntimeContext((Map<String, String>) config)) {
                                        staticRuntimeContext.run();
                                        Service.runtimeContext = staticRuntimeContext;
                                        Service.runtimeContext.waitForStop(0);