@SuppressWarnings("unchecked") @Override public void onRegistration(final ServiceRegistry registry, final Class<?> category) { // Make sure we're ordered before the new JEP 262 JRE bundled TIFF plugin // or the Apple-provided TIFF plugin on OS X (which both happen to have the same class name)... ImageReaderSpi sunSpi = lookupProviderByName(registry, "com.sun.imageio.plugins.tiff.TIFFImageReaderSpi", ImageReaderSpi.class); if (sunSpi != null && sunSpi.getVendorName() != null && (sunSpi.getVendorName().startsWith("Apple") || sunSpi.getVendorName().startsWith("Oracle"))) { registry.setOrdering((Class<ImageReaderSpi>) category, this, sunSpi); } }
@Override public String getVendorName() { return String.format("%s/%s", super.getVendorName(), delegateProvider.getVendorName()); }
@Override public String getVendorName() { return String.format("%s/%s", super.getVendorName(), delegateProvider.getVendorName()); }
@SuppressWarnings("unchecked") @Override public void onRegistration(final ServiceRegistry registry, final Class<?> category) { // Make sure we're ordered before the Apple-provided TIFF reader on OS X try { Class<ImageReaderSpi> providerClass = (Class<ImageReaderSpi>) Class.forName("com.sun.imageio.plugins.tiff.TIFFImageReaderSpi"); ImageReaderSpi appleSpi = registry.getServiceProviderByClass(providerClass); if (appleSpi != null && appleSpi.getVendorName() != null && appleSpi.getVendorName().startsWith("Apple")) { registry.setOrdering((Class<ImageReaderSpi>) category, this, appleSpi); } } catch (ClassNotFoundException ignore) { // This is actually OK, now we don't have to do anything } }
log.trace(">>>> pre-testing reader: {}, vendor: {}", reader, reader.getOriginatingProvider().getVendorName()); log.trace(">>>> testing reader: {}, vendor: {}", reader, reader.getOriginatingProvider().getVendorName());