--- /dev/null
+package org.simantics.district.maps.server;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ public static final String PLUGIN_ID = "org.simantics.maps.server";
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.
+ * BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+ public static Path getNodeJSRoot() throws IOException, URISyntaxException {
+ URL nodeURL = getContext().getBundle().getEntry("/node");
+ URL nodeFileURL = FileLocator.toFileURL(nodeURL);
+ return Paths.get(nodeFileURL.toURI());
+ }
+
+ public static Path getTileserverMapnikRoot() throws IOException, URISyntaxException {
+ URL serverURL = getContext().getBundle().getEntry("/server");
+ URL serverFileURL = FileLocator.toFileURL(serverURL);
+ return Paths.get(serverFileURL.toURI());
+ }
+
+}