private void testSpi(IIOServiceProvider spi) { if (spi.getVendorName() == null) { error(spi + " getVendorName == null!"); } if (spi.getVersion() == null) { error(spi + " getVersion == null!"); } }
private void testSpi(ImageReaderWriterSpi spi) { testSpi((IIOServiceProvider)spi); if (spi.getFormatNames() == null) { error("spi.getFormatNames == null!"); } String[] suffixes = spi.getFileSuffixes(); if (suffixes != null && suffixes.length == 0) { error("suffixes.length == 0!"); } String[] MIMETypes = spi.getMIMETypes(); if (MIMETypes != null && MIMETypes.length == 0) { error("MIMETypes.length == 0!"); } if (spi.getPluginClassName() == null) { error("spi.getPluginClassName == null!"); } String[] extraStreamMetadataFormatNames = spi.getExtraStreamMetadataFormatNames(); if (extraStreamMetadataFormatNames != null && extraStreamMetadataFormatNames.length == 0) { error("extraStreamMetadataFormatNames.length == 0!"); } String[] extraImageMetadataFormatNames = spi.getExtraImageMetadataFormatNames(); if (extraImageMetadataFormatNames != null && extraImageMetadataFormatNames.length == 0) { error("extraImageMetadataFormatNames.length == 0!"); } }
private static void check(IIOServiceProvider spi) { String version = spi.getVersion(); if (!version.equals("1.0")) { throw new RuntimeException("Provider " + spi.getClass().getName() + " has version " + version + "!"); } }
protected void clearImageIORegistry() { IIORegistry registry = IIORegistry.getDefaultInstance(); Iterator<Class<?>> categories = registry.getCategories(); final ClassLoader webClassLoader = getWebApplicationClassLoader(); ServiceRegistry.Filter classLoaderFilter = provider -> { //remove all service provider loaded by the current ClassLoader return webClassLoader.equals(provider.getClass().getClassLoader()); }; while (categories.hasNext()) { @SuppressWarnings("unchecked") Class<IIOServiceProvider> category = (Class<IIOServiceProvider>) categories.next(); Iterator<IIOServiceProvider> serviceProviders = registry.getServiceProviders(category, classLoaderFilter, true); if (serviceProviders.hasNext()) { info("removing service provider of category: " + category.getSimpleName()); //copy to list LinkedList<IIOServiceProvider> serviceProviderList = new LinkedList<>(); while (serviceProviders.hasNext()) { serviceProviderList.add(serviceProviders.next()); } for (IIOServiceProvider serviceProvider : serviceProviderList) { info(" - removing: " + serviceProvider.getDescription(Locale.ROOT)); registry.deregisterServiceProvider(serviceProvider); } } } }