]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.rest/src/org/simantics/scl/rest/Activator.java
Adding system property support for starting SCL REST server on startup
[simantics/platform.git] / bundles / org.simantics.scl.rest / src / org / simantics / scl / rest / Activator.java
index 4f90e690089c91094484602f303ec1eb809eefaf..b7cf316893447fdd6a0994474372f2a57e68c279 100644 (file)
@@ -2,9 +2,15 @@ package org.simantics.scl.rest;
 
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Activator implements BundleActivator {
 
+    public static final String START_SERVER = "org.simantics.scl.rest.startServer";
+    
+    private static final Logger LOGGER = LoggerFactory.getLogger(Activator.class);
+    
     private static BundleContext context;
 
     static BundleContext getContext() {
@@ -18,6 +24,15 @@ public class Activator implements BundleActivator {
      * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
      */
     public void start(BundleContext bundleContext) throws Exception {
+        String onStartup = System.getProperty(START_SERVER);
+        if (onStartup != null && !onStartup.isEmpty()) {
+            try {
+                String[] tokenAndPort = onStartup.split("::");
+                SCLRESTServer.start(tokenAndPort[0], Integer.parseInt(tokenAndPort[1]));
+            } catch (Exception e) {
+                LOGGER.error("Could not start server with value {}. It should be in the form of <secret-token>::<port-number>", onStartup, e);
+            }
+        }
         Activator.context = bundleContext;
     }