#292 Preparing for Java 9 compatibility + general clean-up

This commit is contained in:
Harald Kuhr
2016-11-15 21:40:59 +01:00
parent 37e6d31ed9
commit ab13084f44
19 changed files with 89 additions and 154 deletions
@@ -98,7 +98,7 @@ import java.util.List;
* @author last modified by $Author: haraldk$
* @version $Id: JPEGImageReader.java,v 1.0 24.01.11 16.37 haraldk Exp$
*/
public class JPEGImageReader extends ImageReaderBase {
public final class JPEGImageReader extends ImageReaderBase {
// TODO: Allow automatic rotation based on EXIF rotation field?
// TODO: Create a simplified native metadata format that is closer to the actual JPEG stream AND supports EXIF in a sensible way
// TODO: As we already parse the SOF segments, maybe we should stop delegating getWidth/getHeight etc?
@@ -41,6 +41,8 @@ import java.io.IOException;
import java.util.Iterator;
import java.util.Locale;
import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName;
/**
* JPEGImageReaderSpi
*
@@ -48,7 +50,7 @@ import java.util.Locale;
* @author last modified by $Author: haraldk$
* @version $Id: JPEGImageReaderSpi.java,v 1.0 24.01.11 22.12 haraldk Exp$
*/
public class JPEGImageReaderSpi extends ImageReaderSpiBase {
public final class JPEGImageReaderSpi extends ImageReaderSpiBase {
protected ImageReaderSpi delegateProvider;
/**
@@ -64,41 +66,22 @@ public class JPEGImageReaderSpi extends ImageReaderSpiBase {
*
* @param delegateProvider a {@code ImageReaderSpi} that can read JPEG.
*/
protected JPEGImageReaderSpi(final ImageReaderSpi delegateProvider) {
JPEGImageReaderSpi(final ImageReaderSpi delegateProvider) {
this();
this.delegateProvider = Validate.notNull(delegateProvider);
}
/**
* Constructor for subclasses.
*
* @param info
*/
protected JPEGImageReaderSpi(final ReaderWriterProviderInfo info) {
private JPEGImageReaderSpi(final ReaderWriterProviderInfo info) {
super(info);
}
static ImageReaderSpi lookupDelegateProvider(final ServiceRegistry registry) {
Iterator<ImageReaderSpi> providers = registry.getServiceProviders(ImageReaderSpi.class, true);
while (providers.hasNext()) {
ImageReaderSpi provider = providers.next();
if (provider.getClass().getName().equals("com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi")) {
return provider;
}
}
return null;
}
@SuppressWarnings({"unchecked", "deprecation"})
@Override
public void onRegistration(final ServiceRegistry registry, final Class<?> category) {
if (delegateProvider == null) {
// Install delegate now
delegateProvider = lookupDelegateProvider(registry);
delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi");
}
if (delegateProvider != null) {
@@ -52,7 +52,7 @@ import java.util.Locale;
* @author last modified by $Author: haraldk$
* @version $Id: JPEGImageWriter.java,v 1.0 06.02.12 16:39 haraldk Exp$
*/
public class JPEGImageWriter extends ImageWriterBase {
public final class JPEGImageWriter extends ImageWriterBase {
// TODO: Extend with functionality to be able to write CMYK JPEGs as well?
/** Our JPEG writing delegate */
@@ -42,6 +42,8 @@ import java.io.IOException;
import java.util.Iterator;
import java.util.Locale;
import static com.twelvemonkeys.imageio.util.IIOUtil.*;
/**
* JPEGImageWriterSpi
*
@@ -70,27 +72,13 @@ public class JPEGImageWriterSpi extends ImageWriterSpiBase {
this.delegateProvider = Validate.notNull(delegateProvider);
}
static ImageWriterSpi lookupDelegateProvider(final ServiceRegistry registry) {
Iterator<ImageWriterSpi> providers = registry.getServiceProviders(ImageWriterSpi.class, true);
while (providers.hasNext()) {
ImageWriterSpi provider = providers.next();
if (provider.getClass().getName().equals("com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi")) {
return provider;
}
}
return null;
}
@SuppressWarnings({"unchecked"})
@Override
public void onRegistration(final ServiceRegistry registry, final Class<?> category) {
if (delegateProvider == null) {
// Install delegate now
delegateProvider = lookupDelegateProvider(registry);
delegateProvider = lookupProviderByName(registry, "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi");
}
if (delegateProvider != null) {
@@ -99,7 +87,7 @@ public class JPEGImageWriterSpi extends ImageWriterSpiBase {
}
else {
// Or, if no delegate is found, silently deregister from the registry
IIOUtil.deregisterProvider(registry, this, category);
deregisterProvider(registry, this, category);
}
}
@@ -15,6 +15,7 @@ import javax.imageio.stream.ImageInputStream;
import java.util.Arrays;
import java.util.List;
import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -32,10 +33,10 @@ public class JPEGImage10MetadataCleanerTest {
ImageIO.setUseCache(false);
}
protected static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
protected static ImageReaderSpi lookupDelegateProvider() {
return JPEGImageReaderSpi.lookupDelegateProvider(IIORegistry.getDefaultInstance());
private static ImageReaderSpi lookupDelegateProvider() {
return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi");
}
// Unit/regression test for #276
@@ -58,6 +58,7 @@ import java.io.IOException;
import java.util.*;
import java.util.List;
import static com.twelvemonkeys.imageio.util.IIOUtil.lookupProviderByName;
import static org.junit.Assert.*;
import static org.junit.Assume.assumeNoException;
import static org.junit.Assume.assumeNotNull;
@@ -74,10 +75,10 @@ import static org.mockito.Mockito.*;
*/
public class JPEGImageReaderTest extends ImageReaderAbstractTest<JPEGImageReader> {
protected static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
private static final JPEGImageReaderSpi SPI = new JPEGImageReaderSpi(lookupDelegateProvider());
protected static ImageReaderSpi lookupDelegateProvider() {
return JPEGImageReaderSpi.lookupDelegateProvider(IIORegistry.getDefaultInstance());
private static ImageReaderSpi lookupDelegateProvider() {
return lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi");
}
@Override
@@ -28,6 +28,7 @@
package com.twelvemonkeys.imageio.plugins.jpeg;
import com.twelvemonkeys.imageio.util.IIOUtil;
import com.twelvemonkeys.imageio.util.ImageWriterAbstractTestCase;
import javax.imageio.ImageWriter;
@@ -51,7 +52,7 @@ public class JPEGImageWriterTest extends ImageWriterAbstractTestCase {
private static final JPEGImageWriterSpi SPI = new JPEGImageWriterSpi(lookupDelegateProvider());
private static ImageWriterSpi lookupDelegateProvider() {
return JPEGImageWriterSpi.lookupDelegateProvider(IIORegistry.getDefaultInstance());
return IIOUtil.lookupProviderByName(IIORegistry.getDefaultInstance(), "com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi");
}
@Override