diff --git a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java
index 0db8a890..2d946d61 100755
--- a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java
+++ b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java
@@ -28,6 +28,7 @@
package com.twelvemonkeys.imageio.plugins.svg;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
import com.twelvemonkeys.lang.SystemUtil;
import com.twelvemonkeys.imageio.util.IIOUtil;
@@ -50,12 +51,16 @@ public class SVGImageReaderSpi extends ImageReaderSpi {
private final static boolean SVG_READER_AVAILABLE = SystemUtil.isClassAvailable("com.twelvemonkeys.imageio.plugins.svg.SVGImageReader");
/**
- * Creates an SVGImageReaderSpi
+ * Creates an {@code SVGImageReaderSpi}.
*/
public SVGImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(SVGImageReaderSpi.class));
+ }
+
+ private SVGImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys", // Vendor name
- "2.0", // Version
+ pProviderInfo.getVendorName(), // Vendor name
+ pProviderInfo.getVersion(), // Version
SVG_READER_AVAILABLE ? new String[]{"svg", "SVG"} : new String[]{""}, // Names
SVG_READER_AVAILABLE ? new String[]{"svg"} : null, // Suffixes
SVG_READER_AVAILABLE ? new String[]{"image/svg", "image/x-svg", "image/svg+xml", "image/svg-xml"} : null, // Mime-types
diff --git a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java
index 5ac6457f..f8ae25a1 100755
--- a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java
+++ b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageReaderSpi.java
@@ -28,6 +28,7 @@
package com.twelvemonkeys.imageio.plugins.tiff;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
import com.twelvemonkeys.lang.SystemUtil;
import com.twelvemonkeys.imageio.util.IIOUtil;
@@ -50,12 +51,16 @@ public class TIFFImageReaderSpi extends ImageReaderSpi {
final static boolean TIFF_CLASSES_AVAILABLE = SystemUtil.isClassAvailable("com.twelvemonkeys.imageio.plugins.tiff.TIFFImageReader");
/**
- * Creates an SVGImageReaderSpi
+ * Creates a {@code TIFFImageReaderSpi}.
*/
public TIFFImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(TIFFImageReaderSpi.class));
+ }
+
+ private TIFFImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys", // Vendor name
- "2.0", // Version
+ pProviderInfo.getVendorName(), // Vendor name
+ pProviderInfo.getVersion(), // Version
TIFF_CLASSES_AVAILABLE ? new String[]{"tiff", "TIFF"} : new String[] {""}, // Names
TIFF_CLASSES_AVAILABLE ? new String[]{"tiff", "tif"} : null, // Suffixes
TIFF_CLASSES_AVAILABLE ? new String[]{"image/tiff", "image/x-tiff"} : null, // Mime-types
diff --git a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java
index a61386b0..48d69594 100755
--- a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java
+++ b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/tiff/TIFFImageWriterSpi.java
@@ -28,6 +28,7 @@
package com.twelvemonkeys.imageio.plugins.tiff;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
import com.twelvemonkeys.imageio.util.IIOUtil;
import javax.imageio.ImageTypeSpecifier;
@@ -46,12 +47,16 @@ import java.util.Locale;
public class TIFFImageWriterSpi extends ImageWriterSpi {
/**
- * Creates a TIFFImageWriterSpi.
+ * Creates a {@code TIFFImageWriterSpi}.
*/
public TIFFImageWriterSpi() {
+ this(IIOUtil.getProviderInfo(TIFFImageWriterSpi.class));
+ }
+
+ private TIFFImageWriterSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys", // Vendor name
- "2.0", // Version
+ pProviderInfo.getVendorName(), // Vendor name
+ pProviderInfo.getVersion(), // Version
new String[]{"tiff", "TIFF"}, // Names
new String[]{"tif", "tiff"}, // Suffixes
new String[]{"image/tiff", "image/x-tiff"}, // Mime-types
diff --git a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/wmf/WMFImageReaderSpi.java b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/wmf/WMFImageReaderSpi.java
index fdd59ca0..f857aae0 100755
--- a/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/wmf/WMFImageReaderSpi.java
+++ b/twelvemonkeys-imageio/batik/src/main/java/com/twelvemonkeys/imageio/plugins/wmf/WMFImageReaderSpi.java
@@ -28,6 +28,7 @@
package com.twelvemonkeys.imageio.plugins.wmf;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
import com.twelvemonkeys.lang.SystemUtil;
import com.twelvemonkeys.imageio.util.IIOUtil;
@@ -51,12 +52,16 @@ public class WMFImageReaderSpi extends ImageReaderSpi {
private final static boolean WMF_READER_AVAILABLE = SystemUtil.isClassAvailable("com.twelvemonkeys.imageio.plugins.svg.SVGImageReader");
/**
- * Creates an SVGImageReaderSpi
+ * Creates a {@code WMFImageReaderSpi}.
*/
public WMFImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(WMFImageReaderSpi.class));
+ }
+
+ private WMFImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys", // Vendor name
- "2.0", // Version
+ pProviderInfo.getVendorName(), // Vendor name
+ pProviderInfo.getVersion(), // Version
WMF_READER_AVAILABLE ? new String[]{"wmf", "WMF"} : new String[]{""}, // Names
WMF_READER_AVAILABLE ? new String[]{"wmf", "emf"} : null, // Suffixes
WMF_READER_AVAILABLE ? new String[]{"application/x-msmetafile", "image/x-wmf"} : null, // Mime-types
diff --git a/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/spi/ProviderInfo.java b/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/spi/ProviderInfo.java
new file mode 100644
index 00000000..d13b430b
--- /dev/null
+++ b/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/spi/ProviderInfo.java
@@ -0,0 +1,64 @@
+package com.twelvemonkeys.imageio.spi;
+
+import com.twelvemonkeys.lang.Validate;
+
+/**
+ * Provides provider info, like vendor name and version,
+ * for {@link javax.imageio.spi.ImageReaderWriterSpi} subclasses based on information in the manifest.
+ *
+ * @author Harald Kuhr
+ * @author last modified by $Author: haraldk$
+ * @version $Id: ProviderInfo.java,v 1.0 Oct 31, 2009 3:49:39 PM haraldk Exp$
+ *
+ * @see JAR Manifest
+ */
+public class ProviderInfo {
+ private final String mVendorName;
+ private final String mVersion;
+
+ /**
+ * Creates a provider information instance based on the given package.
+ *
+ * @param pPackage the package to get provider information from.
+ * This should typically be the package containing the Spi class.
+ *
+ * @throws IllegalArgumentException if {@code pPackage == null}
+ */
+ public ProviderInfo(final Package pPackage) {
+ Validate.notNull(pPackage, "package");
+
+ String vendor = pPackage.getImplementationVendor();
+ mVendorName = vendor != null ? vendor : fakeVendor(pPackage);
+
+ String version = pPackage.getImplementationVersion();
+ mVersion = version != null ? version : "DEV";
+ }
+
+ private static String fakeVendor(final Package pPackage) {
+ String name = pPackage.getName();
+ return name.startsWith("com.twelvemonkeys") ? "TwelveMonkeys" : name;
+ }
+
+ /**
+ * Returns the vendor name, as specified in the manifest entry
+ * {@code Implementation-Vendor} for the package.
+ * If the vendor name is unavailable, the package name or some default name
+ * for known packages are used.
+ *
+ * @return the vendor name.
+ */
+ public final String getVendorName() {
+ return mVendorName;
+ }
+
+ /**
+ * Returns the version/build number string, as specified in the manifest entry
+ * {@code Implementation-Version} for the package.
+ * If the version is unavailable, some arbitrary (non-{@code null}) value is used.
+ *
+ * @return the vendor name.
+ */
+ public final String getVersion() {
+ return mVersion;
+ }
+}
diff --git a/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java b/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java
index 3c166cde..67c3ee1b 100755
--- a/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java
+++ b/twelvemonkeys-imageio/core/src/main/java/com/twelvemonkeys/imageio/util/IIOUtil.java
@@ -1,6 +1,7 @@
package com.twelvemonkeys.imageio.util;
import com.twelvemonkeys.image.ImageUtil;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
import javax.imageio.IIOParam;
import javax.imageio.spi.IIOServiceProvider;
@@ -61,21 +62,6 @@ public final class IIOUtil {
return new BufferedOutputStream(new IIOOutputStreamAdapter(pStream));
}
- /**
- * THIS METHOD WILL ME MOVED/RENAMED, DO NOT USE.
- *
- * @param pRegistry the registry to unregister from
- * @param pProvider the provider to unregister
- * @param pCategory the category to unregister from
- *
- * @deprecated
- */
- public static void deregisterProvider(final ServiceRegistry pRegistry, final IIOServiceProvider pProvider, final Class pCategory) {
- // http://www.ibm.com/developerworks/java/library/j-jtp04298.html
- // TODO: Consider placing this method in a ImageReaderSpiBase class or similar
- pRegistry.deregisterServiceProvider(pCategory.cast(pProvider), pCategory);
- }
-
public static Image fakeSubsampling(final Image pImage, final IIOParam pParam) {
if (pImage == null) {
return null;
@@ -134,4 +120,30 @@ public final class IIOUtil {
return pImage;
}
+
+ /**
+ * Creates a {@link ProviderInfo} instance for the given service provider.
+ *
+ * @param pProviderClass the provider class to get info for.
+ * @return the newly created {@link ProviderInfo}.
+ */
+ public static ProviderInfo getProviderInfo(final Class extends IIOServiceProvider> pProviderClass) {
+ return new ProviderInfo(pProviderClass.getPackage());
+ }
+
+ /**
+ * THIS METHOD WILL ME MOVED/RENAMED, DO NOT USE.
+ *
+ * @param pRegistry the registry to unregister from
+ * @param pProvider the provider to unregister
+ * @param pCategory the category to unregister from
+ *
+ * @deprecated
+ */
+ public static void deregisterProvider(final ServiceRegistry pRegistry, final IIOServiceProvider pProvider, final Class pCategory) {
+ // http://www.ibm.com/developerworks/java/library/j-jtp04298.html
+ // TODO: Consider placing this method in a ImageReaderSpiBase class or similar
+ pRegistry.deregisterServiceProvider(pCategory.cast(pProvider), pCategory);
+ }
+
}
\ No newline at end of file
diff --git a/twelvemonkeys-imageio/core/src/test/java/com/twelvemonkeys/imageio/spi/ProviderInfoTestCase.java b/twelvemonkeys-imageio/core/src/test/java/com/twelvemonkeys/imageio/spi/ProviderInfoTestCase.java
new file mode 100644
index 00000000..27dddae8
--- /dev/null
+++ b/twelvemonkeys-imageio/core/src/test/java/com/twelvemonkeys/imageio/spi/ProviderInfoTestCase.java
@@ -0,0 +1,75 @@
+package com.twelvemonkeys.imageio.spi;
+
+import junit.framework.TestCase;
+
+/**
+ * ProviderInfoTestCase
+ *
+ * @author Harald Kuhr
+ * @author last modified by $Author: haraldk$
+ * @version $Id: ProviderInfoTestCase.java,v 1.0 Oct 31, 2009 3:51:22 PM haraldk Exp$
+ */
+public class ProviderInfoTestCase extends TestCase {
+ public void testCreateNorma() {
+ new ProviderInfo(Package.getPackage("java.util"));
+ }
+
+ public void testCreateNullPackage() {
+ try {
+ new ProviderInfo(null);
+ fail("IllegalArgumentException expected for null package");
+ }
+ catch (IllegalArgumentException expected) {
+ assertTrue(expected.getMessage().toLowerCase().contains("package"));
+ }
+ }
+
+ public void testGetVendorUnknownPackage() {
+ // TODO: FixMe: This test will fail if for some reason JUnit adds manifest info to their JAR..
+ ProviderInfo info = new ProviderInfo(Package.getPackage("junit.framework"));
+
+ String vendor = info.getVendorName();
+ assertNotNull(vendor);
+ assertEquals("junit.framework", vendor);
+
+ String version = info.getVersion();
+ assertNotNull(version);
+ assertEquals("DEV", version);
+ }
+
+ public void testGetVendorTMPackage() {
+ // TODO: FixMe: This test will fail if for some reason the tests are run from within a JAR-file,
+ // and depends on implementation details.
+ ProviderInfo info = new ProviderInfo(getClass().getPackage());
+
+ String vendor = info.getVendorName();
+ assertNotNull(vendor);
+ assertEquals("TwelveMonkeys", vendor);
+
+ String version = info.getVersion();
+ assertNotNull(version);
+ assertEquals("DEV", version);
+ }
+
+ public void testGetVendorKnownPackage() {
+ // TODO: FixMe: This test depends on implementation details, and may fail on various JRE's...
+ ProviderInfo info = new ProviderInfo(Package.getPackage("java.util"));
+
+ String vendor = info.getVendorName();
+ assertNotNull(vendor);
+ assertFalse("".equals(vendor));
+
+ // NOTE: Does not work: assertEquals(System.getProperty("java.vendor"), vendor);
+ assertFalse("TwelveMonkeys".equals(vendor));
+ assertFalse("java.util".equals(vendor));
+
+ String version = info.getVersion();
+ assertNotNull(version);
+ assertFalse("".equals(version));
+ assertFalse("DEV".equals(version));
+
+ // Is this safe to assume?
+ String jreVersion = System.getProperty("java.version");
+ assertTrue(jreVersion.equals(version) || jreVersion.startsWith(version) || version.startsWith(jreVersion));
+ }
+}
diff --git a/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/CURImageReaderSpi.java b/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/CURImageReaderSpi.java
index 34dab925..9b38ea85 100755
--- a/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/CURImageReaderSpi.java
+++ b/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/CURImageReaderSpi.java
@@ -28,6 +28,9 @@
package com.twelvemonkeys.imageio.plugins.ico;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.stream.ImageInputStream;
@@ -43,9 +46,13 @@ import java.util.Locale;
public class CURImageReaderSpi extends ImageReaderSpi {
public CURImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(CURImageReaderSpi.class));
+ }
+
+ private CURImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.1",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"cur", "CUR"},
new String[]{"cur"},
new String[]{
diff --git a/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/ICOImageReaderSpi.java b/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/ICOImageReaderSpi.java
index c9dcb90b..f75cbfb9 100755
--- a/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/ICOImageReaderSpi.java
+++ b/twelvemonkeys-imageio/ico/src/main/java/com/twelvemonkeys/imageio/plugins/ico/ICOImageReaderSpi.java
@@ -28,6 +28,9 @@
package com.twelvemonkeys.imageio.plugins.ico;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.stream.ImageInputStream;
@@ -43,9 +46,13 @@ import java.util.Locale;
public class ICOImageReaderSpi extends ImageReaderSpi {
public ICOImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(ICOImageReaderSpi.class));
+ }
+
+ private ICOImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.1",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"ico", "ICO"},
new String[]{"ico"},
new String[]{
diff --git a/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java b/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java
index c256e4a6..05835d21 100755
--- a/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java
+++ b/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageReaderSpi.java
@@ -28,6 +28,9 @@
package com.twelvemonkeys.imageio.plugins.iff;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.stream.ImageInputStream;
@@ -46,12 +49,16 @@ public class IFFImageReaderSpi extends ImageReaderSpi {
static IFFImageReaderSpi mSharedInstance;
/**
- * Creates an IFFImageReaderSpi
+ * Creates an {@code IFFImageReaderSpi}.
*/
public IFFImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(IFFImageReaderSpi.class));
+ }
+
+ private IFFImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.0",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"iff", "IFF"},
new String[]{"iff", "lbm", "ham", "ham8", "ilbm"},
new String[]{"image/iff", "image/x-iff"},
diff --git a/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java b/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java
index bdc52118..29ee2e26 100755
--- a/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java
+++ b/twelvemonkeys-imageio/iff/src/main/java/com/twelvemonkeys/imageio/plugins/iff/IFFImageWriterSpi.java
@@ -28,6 +28,9 @@
package com.twelvemonkeys.imageio.plugins.iff;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
import javax.imageio.ImageTypeSpecifier;
import javax.imageio.ImageWriter;
import javax.imageio.spi.ImageWriterSpi;
@@ -44,12 +47,17 @@ import java.util.Locale;
public class IFFImageWriterSpi extends ImageWriterSpi {
/**
- * Creates an IFFImageWriterSpi
+ * Creates an {@code IFFImageWriterSpi}.
*/
public IFFImageWriterSpi() {
+ this(IIOUtil.getProviderInfo(IFFImageWriterSpi.class));
+
+ }
+
+ private IFFImageWriterSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "$Revision: 1.0 $",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"iff", "IFF"},
new String[]{"iff", "lbm", "ham", "ham8", "ilbm"},
new String[]{"image/iff", "image/x-iff"},
diff --git a/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java b/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java
index f7529745..7842cd5d 100755
--- a/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java
+++ b/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageReaderSpi.java
@@ -28,6 +28,9 @@
package com.twelvemonkeys.imageio.plugins.pict;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.stream.ImageInputStream;
@@ -45,12 +48,16 @@ import java.util.Locale;
public class PICTImageReaderSpi extends ImageReaderSpi {
/**
- * Creates an PICTImageReaderSpi
+ * Creates a {@code PICTImageReaderSpi}.
*/
public PICTImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(PICTImageReaderSpi.class));
+ }
+
+ private PICTImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.2",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"pct", "PCT", "pict", "PICT"},
new String[]{"pct", "pict"},
new String[]{"image/pict", "image/x-pict"},
diff --git a/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java b/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java
index b349c56b..75382282 100755
--- a/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java
+++ b/twelvemonkeys-imageio/pict/src/main/java/com/twelvemonkeys/imageio/plugins/pict/PICTImageWriterSpi.java
@@ -28,6 +28,9 @@
package com.twelvemonkeys.imageio.plugins.pict;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
import javax.imageio.ImageTypeSpecifier;
import javax.imageio.ImageWriter;
import javax.imageio.spi.ImageWriterSpi;
@@ -44,12 +47,16 @@ import java.util.Locale;
public class PICTImageWriterSpi extends ImageWriterSpi {
/**
- * Creates an PICTImageWriterSpi
+ * Creates a {@code PICTImageWriterSpi}.
*/
public PICTImageWriterSpi() {
+ this(IIOUtil.getProviderInfo(PICTImageWriterSpi.class));
+ }
+
+ private PICTImageWriterSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.0",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"pct", "PCT",
"pict", "PICT"},
new String[]{"pct", "pict"},
diff --git a/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java b/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java
index 79117fe1..5a27b1c5 100755
--- a/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java
+++ b/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReaderSpi.java
@@ -28,9 +28,12 @@
package com.twelvemonkeys.imageio.plugins.psd;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
+
+import javax.imageio.ImageReader;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.stream.ImageInputStream;
-import javax.imageio.ImageReader;
import java.io.IOException;
import java.util.Locale;
@@ -44,16 +47,20 @@ import java.util.Locale;
public class PSDImageReaderSpi extends ImageReaderSpi {
/**
- * Creates an PSDImageReaderSpi
+ * Creates a {@code PSDImageReaderSpi}.
*/
public PSDImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(PSDImageReaderSpi.class));
+ }
+
+ private PSDImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.0",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"psd", "PSD"},
new String[]{"psd"},
new String[]{
- "application/vnd.adobe.photoshop", // This one seems official, used in XMP
+ "application/vnd.adobe.photoshop", // This one seems official, used in XMP
"image/x-psd", "application/x-photoshop", "image/x-photoshop"
},
"com.twelvemkonkeys.imageio.plugins.psd.PSDImageReader",
@@ -65,7 +72,7 @@ public class PSDImageReaderSpi extends ImageReaderSpi {
);
}
- public boolean canDecodeInput(Object pSource) throws IOException {
+ public boolean canDecodeInput(final Object pSource) throws IOException {
if (!(pSource instanceof ImageInputStream)) {
return false;
}
@@ -82,11 +89,11 @@ public class PSDImageReaderSpi extends ImageReaderSpi {
}
}
- public ImageReader createReaderInstance(Object pExtension) throws IOException {
+ public ImageReader createReaderInstance(final Object pExtension) throws IOException {
return new PSDImageReader(this);
}
- public String getDescription(Locale pLocale) {
+ public String getDescription(final Locale pLocale) {
return "Adobe Photoshop Document (PSD) image reader";
}
}
diff --git a/twelvemonkeys-imageio/thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java b/twelvemonkeys-imageio/thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java
index a392d882..362c7559 100755
--- a/twelvemonkeys-imageio/thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java
+++ b/twelvemonkeys-imageio/thumbsdb/src/main/java/com/twelvemonkeys/imageio/plugins/thumbsdb/ThumbsDBImageReaderSpi.java
@@ -28,6 +28,8 @@
package com.twelvemonkeys.imageio.plugins.thumbsdb;
+import com.twelvemonkeys.imageio.spi.ProviderInfo;
+import com.twelvemonkeys.imageio.util.IIOUtil;
import com.twelvemonkeys.io.ole2.CompoundDocument;
import javax.imageio.ImageReader;
@@ -50,12 +52,16 @@ public class ThumbsDBImageReaderSpi extends ImageReaderSpi {
private ImageReaderSpi mJPEGProvider;
/**
- * Creates an IFFImageReaderSpi
+ * Creates a {@code ThumbsDBImageReaderSpi}.
*/
public ThumbsDBImageReaderSpi() {
+ this(IIOUtil.getProviderInfo(ThumbsDBImageReaderSpi.class));
+ }
+
+ private ThumbsDBImageReaderSpi(final ProviderInfo pProviderInfo) {
super(
- "TwelveMonkeys",
- "2.0",
+ pProviderInfo.getVendorName(),
+ pProviderInfo.getVersion(),
new String[]{"thumbs", "THUMBS", "Thumbs DB"},
new String[]{"db"},
new String[]{"image/x-thumbs-db", "application/octet-stream"}, // TODO: Check IANA et al...