]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/src/org/simantics/district/maps/server/Activator.java
Some cleaning and fixing of district functionalities
[simantics/district.git] / org.simantics.maps.server / src / org / simantics / district / maps / server / Activator.java
index eaeda86acb88b6acf71432b556a3aa81d5d42aed..65227c669af3fe3ce0d26641a8d1ffdbae6f0ce0 100644 (file)
@@ -1,6 +1,7 @@
 package org.simantics.district.maps.server;
 
 import java.io.IOException;
+import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Path;
@@ -14,6 +15,7 @@ public class Activator implements BundleActivator {
 
     public static final String PLUGIN_ID = "org.simantics.maps.server";
     private static BundleContext context;
+    private static Activator defaultt;
 
     static BundleContext getContext() {
         return context;
@@ -27,6 +29,7 @@ public class Activator implements BundleActivator {
      */
     public void start(BundleContext bundleContext) throws Exception {
         Activator.context = bundleContext;
+        Activator.defaultt = this;
     }
 
     /*
@@ -37,18 +40,26 @@ public class Activator implements BundleActivator {
      */
     public void stop(BundleContext bundleContext) throws Exception {
         Activator.context = null;
+        Activator.defaultt = null;
     }
 
     public static Path getNodeJSRoot() throws IOException, URISyntaxException {
-        URL nodeURL = getContext().getBundle().getEntry("/node");
-        URL nodeFileURL = FileLocator.toFileURL(nodeURL);
-        return Paths.get(nodeFileURL.toURI());
+        return resolvePath("/node");
     }
     
     public static Path getTileserverMapnikRoot() throws IOException, URISyntaxException {
-        URL serverURL = getContext().getBundle().getEntry("/server");
-        URL serverFileURL = FileLocator.toFileURL(serverURL);
-        return Paths.get(serverFileURL.toURI());
+        return resolvePath("/server");
+    }
+    
+    private static Path resolvePath(String entry) throws IOException, URISyntaxException {
+        URL entryURL = getContext().getBundle().getEntry(entry);
+        URL entryFileURL = FileLocator.toFileURL(entryURL);
+        URI encodedUri = new URI(entryFileURL.getProtocol(), entryFileURL.getPath(), null).normalize();
+        return Paths.get(encodedUri);
+    }
+
+    public static Activator getDefault() {
+        return defaultt;
     }
 
 }