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;
public static final String PLUGIN_ID = "org.simantics.maps.server";
private static BundleContext context;
+ private static Activator defaultt;
static BundleContext getContext() {
return context;
*/
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
+ Activator.defaultt = this;
}
/*
*/
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;
}
}