/** * Unregisters providers in the "https://github.com/geosolutions-it/evo-odas/issues/102" for a * given category (reader, writer). ImageIO contains a pure java reader and a writer, but also a * couple based on native libs (if present). * * @param category */ private <T extends ImageReaderWriterSpi> void unregisterImageIOJpeg2000Support( Class<T> category) { IIORegistry registry = IIORegistry.getDefaultInstance(); Iterator<T> it = registry.getServiceProviders(category, false); ArrayList<T> providers = Lists.newArrayList(it); for (T spi : providers) { if (COM_SUN_JPEG2000_PACKAGE.equals(spi.getClass().getPackage().getName())) { registry.deregisterServiceProvider(spi); } } }
ioRegistry.deregisterServiceProvider(provider); LOGGER.info("Unregistering Image I/O provider " + provider);
public void contextDestroyed(final ServletContextEvent event) { // De-register any locally registered IIO plugins. Relies on each web app having its own context class loader. final IIORegistry registry = IIORegistry.getDefaultInstance(); final LocalFilter localFilter = new LocalFilter(Thread.currentThread().getContextClassLoader()); // scanForPlugins uses context class loader Iterator<Class<?>> categories = registry.getCategories(); while (categories.hasNext()) { Class<?> category = categories.next(); Iterator<?> providers = registry.getServiceProviders(category, localFilter, false); // Copy the providers, as de-registering while iterating over providers will lead to ConcurrentModificationExceptions. List<Object> providersCopy = new ArrayList<Object>(); while (providers.hasNext()) { providersCopy.add(providers.next()); } for (Object provider : providersCopy) { registry.deregisterServiceProvider(provider); event.getServletContext().log(String.format("Unregistered locally installed provider class: %s", provider.getClass())); } } }
private static void deregisterOSXTIFFImageReaderSpi() { IIORegistry registry = IIORegistry.getDefaultInstance(); ImageReaderSpi provider = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi", ImageReaderSpi.class); if (provider != null) { registry.deregisterServiceProvider(provider); } } }
private void maybeInitJPEGProvider() { // NOTE: Can't do this from constructor, as ImageIO itself is not initialized yet, // and the lookup below will produce a NPE.. if (jpegProvider == null) { // Prefer the one we know ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class); if (provider == null) { try { provider = getJPEGProviders().next(); } catch (Exception ignore) { // It's pretty safe to assume there's always a JPEG reader out there // In any case, we deregister the provider if there isn't one IIORegistry.getDefaultInstance().deregisterServiceProvider(this, ImageReaderSpi.class); } } jpegProvider = provider; } }
public ImageReader next() { ImageReaderSpi spi = null; try { spi = (ImageReaderSpi) iter.next(); return spi.createReaderInstance(); } catch (IOException e) { // Deregister the spi in this case, but only as // an ImageReaderSpi theRegistry.deregisterServiceProvider(spi, ImageReaderSpi.class); } return null; }
public ImageWriter next() { ImageWriterSpi spi = null; try { spi = (ImageWriterSpi) iter.next(); return spi.createWriterInstance(); } catch (IOException e) { // Deregister the spi in this case, but only as a writerSpi theRegistry.deregisterServiceProvider(spi, ImageWriterSpi.class); } return null; }
// Get the global registry IIORegistry registry = IIORegistry.getDefaultInstance(); // Lookup the known TIFF providers ImageReaderSpi jaiProvider = lookupProviderByName(registry, "com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader"); ImageReaderSpi geoProvider = lookupProviderByName(registry, "it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader"); if (jaiProvider != null && geoProvider != null) { // If both are found, EITHER // order the it.geosolutions provider BEFORE the com.sun (JAI) provider registry.setOrdering(ImageReaderSpi.class, geoProvider, jaiProvider); // OR // un-register the JAI provider registry.deregisterServiceProvider(jaiProvider); }
// Get the global registry IIORegistry registry = IIORegistry.getDefaultInstance(); // Lookup the known providers ImageReaderSpi goodProvider = lookupProviderByName(registry, "org.dcm4che2.imageioimpl.plugins.dcm.DicomImageReaderSpi"); ImageReaderSpi badProvider = lookupProviderByName(registry, "org.dcm4cheri.imageio.plugins.DcmImageReaderSpi"); if (goodProvider != null && badProvider != null) { // If both are found, EITHER // order the good provider BEFORE the bad one registry.setOrdering(ImageReaderSpi.class, goodProvider, badProvider); // OR // un-register the bad provider registry.deregisterServiceProvider(badProvider); }
/** Private method for deregistering the Spi class defined by the user */ private void removeSpis() { // Cycle on the defined SPIs for deregistering them if (excludedSpis != null && !excludedSpis.isEmpty()) { for (String spi : excludedSpis) { try { // Reflection: Get the class associated to the spi name Class<?> clazz = Class.forName(spi); // Check if the Service Provider has been registered Object provider = registry.getServiceProviderByClass(clazz); // If so, the Provider is deregistered if (provider != null) { registry.deregisterServiceProvider(provider); } } catch (ClassNotFoundException e) { // If the Class is not present, then the Provider cannot have been // registered if (LOGGER.isLoggable(Level.FINER)) { LOGGER.log(Level.FINER, e.getMessage(), e); } } } } }
private static void deregisterOSXTIFFImageReaderSpi() { IIORegistry registry = IIORegistry.getDefaultInstance(); ImageReaderSpi provider = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi"); if (provider != null) { registry.deregisterServiceProvider(provider); } } }
@Override public void close() throws IOException { if (productDirectory != null) { productDirectory.close(); } if (imageInputStreamSpi != null) { IIORegistry.getDefaultInstance().deregisterServiceProvider(imageInputStreamSpi); } super.close(); }
@Override public void close() throws IOException { if (productDirectory != null) { productDirectory.close(); } if (channelImageInputStreamSpi != null) { IIORegistry.getDefaultInstance().deregisterServiceProvider(channelImageInputStreamSpi); } super.close(); }
@Override public void close() throws IOException { if (internalReader != null) { internalReader.close(); } super.close(); if (channelImageInputStreamSpi != null) { IIORegistry.getDefaultInstance().deregisterServiceProvider(channelImageInputStreamSpi); } }
warn("ImageIO " + category.getSimpleName() + " service provider deregistered: " + serviceProvider.getDescription(Locale.ROOT)); registry.deregisterServiceProvider(serviceProvider);
private void maybeInitJPEGProvider() { // NOTE: Can't do this from constructor, as ImageIO itself is not initialized yet, // and the lookup below will produce a NPE.. if (jpegProvider == null) { // Prefer the one we know ImageReaderSpi provider = lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi", ImageReaderSpi.class); if (provider == null) { try { provider = getJPEGProviders().next(); } catch (Exception ignore) { // It's pretty safe to assume there's always a JPEG reader out there // In any case, we deregister the provider if there isn't one IIORegistry.getDefaultInstance().deregisterServiceProvider(this, ImageReaderSpi.class); } } jpegProvider = provider; } }
preventor.warn("ImageIO " + category.getSimpleName() + " service provider deregistered: " + serviceProvider.getDescription(Locale.ROOT)); registry.deregisterServiceProvider(serviceProvider);
Object o = k.next(); if ( o.getClass().getClassLoader() == getClass().getClassLoader() ) { IIORegistry.getDefaultInstance().deregisterServiceProvider( o ); LOG.debug( "Deregistering " + o ); k = IIORegistry.getDefaultInstance().getServiceProviders( c, false );
} catch (IOException e) { theRegistry.deregisterServiceProvider(writerSpi, ImageWriterSpi.class); return null;
} catch (IOException e) { theRegistry.deregisterServiceProvider(readerSpi, ImageReaderSpi.class); return null;