--- /dev/null
+package org.simantics.maps.elevation.server;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.imageio.spi.IIORegistry;
+import javax.imageio.spi.ImageInputStreamSpi;
+import javax.imageio.spi.ImageOutputStreamSpi;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+import it.geosolutions.imageio.stream.input.spi.FileImageInputStreamExtImplSpi;
+import it.geosolutions.imageio.stream.input.spi.StringImageInputStreamSpi;
+import it.geosolutions.imageio.stream.input.spi.URLImageInputStreamSpi;
+import it.geosolutions.imageio.stream.output.spi.FileImageOutputStreamExtImplSpi;
+import it.geosolutions.imageio.stream.output.spi.StringImageOutputStreamSpi;
+import it.geosolutions.imageio.stream.output.spi.URLImageOutputStreamSpi;
+
+public class Activator implements BundleActivator {
+
+ private static AtomicBoolean registered = new AtomicBoolean(false);
+
+ public static final String PLUGIN_ID = "org.simantics.maps.elevation.server";
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ // register SPI's
+ registerSpis();
+ }
+
+ public static void registerSpis() {
+ if (!registered.getAndSet(true)) {
+ IIORegistry.getDefaultInstance().registerServiceProvider(new FileImageInputStreamExtImplSpi(), ImageInputStreamSpi.class);
+ IIORegistry.getDefaultInstance().registerServiceProvider(new URLImageInputStreamSpi(), ImageInputStreamSpi.class);
+ IIORegistry.getDefaultInstance().registerServiceProvider(new StringImageInputStreamSpi(), ImageInputStreamSpi.class);
+ IIORegistry.getDefaultInstance().registerServiceProvider(new FileImageOutputStreamExtImplSpi(), ImageOutputStreamSpi.class);
+ IIORegistry.getDefaultInstance().registerServiceProvider(new URLImageOutputStreamSpi(), ImageOutputStreamSpi.class);
+ IIORegistry.getDefaultInstance().registerServiceProvider(new StringImageOutputStreamSpi(), ImageOutputStreamSpi.class);
+ }
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+
+ }
+
+}