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 { } }