diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f03cbf9f9..0f61dd80b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest, windows-latest, macos-latest ] - java: [ 8, 11, 17, 20 ] + java: [ 8, 11, 17, 20, 21-ea ] runs-on: ${{ matrix.os }} permissions: checks: write @@ -32,7 +32,7 @@ jobs: - name: Run Tests run: mvn --batch-mode --no-transfer-progress test - name: Publish Test Report - uses: mikepenz/action-junit-report@75b84e78b3f0aaea7ed7cf8d1d100d7f97f963ec # v4.0.0 + uses: mikepenz/action-junit-report@0a8a5ba57593d67b2e45de2c543b438412382b7b # v4.0.1 if: ${{ !cancelled() }} with: report_paths: "**/target/surefire-reports/TEST*.xml" @@ -66,7 +66,7 @@ jobs: - name: Run Tests run: mvn --batch-mode --no-transfer-progress test - name: Publish Test Report - uses: mikepenz/action-junit-report@75b84e78b3f0aaea7ed7cf8d1d100d7f97f963ec # v4.0.0 + uses: mikepenz/action-junit-report@0a8a5ba57593d67b2e45de2c543b438412382b7b # v4.0.1 if: ${{ !cancelled() }} with: report_paths: "**/target/surefire-reports/TEST*.xml" diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..22328da78 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,69 @@ +name: "CodeQL" + +on: + push: + branches: [ "master" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "master" ] + schedule: + - cron: '26 13 * * 6' + +permissions: {} + +jobs: + analyze: + name: Analyze + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners + # Consider using larger runners for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'java' ] + + steps: + - name: Checkout repository + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@ddccb873888234080b77e9bc2d4764d5ccaaccf9 # v2.21.9 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@ddccb873888234080b77e9bc2d4764d5ccaaccf9 # v2.21.9 + + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@ddccb873888234080b77e9bc2d4764d5ccaaccf9 # v2.21.9 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 789ce0cc7..41efdf583 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -57,6 +57,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6a28655e3dcb49cb0840ea372fd6d17733edd8a4 # v2.21.8 + uses: github/codeql-action/upload-sarif@ddccb873888234080b77e9bc2d4764d5ccaaccf9 # v2.21.9 with: sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index 1e7332c2c..261c0f768 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ private profiles.xml Thumbs.db .DS_Store +/.metadata/ diff --git a/README.md b/README.md index 0c9edd32e..e5cdc3287 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,12 @@ [![CI](https://github.com/haraldk/TwelveMonkeys/actions/workflows/ci.yml/badge.svg)](https://github.com/haraldk/TwelveMonkeys/actions/workflows/ci.yml) +[![CodeQL](https://github.com/haraldk/TwelveMonkeys/actions/workflows/codeql.yml/badge.svg)](https://github.com/haraldk/TwelveMonkeys/actions/workflows/codeql.yml) +[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/haraldk/TwelveMonkeys/badge)](https://securityscorecards.dev/viewer/?uri=github.com/haraldk/TwelveMonkeys) +[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7900/badge)](https://www.bestpractices.dev/projects/7900) + [![Maven Central](https://img.shields.io/maven-central/v/com.twelvemonkeys.imageio/imageio?color=slateblue)](https://search.maven.org/search?q=g:com.twelvemonkeys.imageio) [![Maven Snapshot](https://img.shields.io/nexus/s/com.twelvemonkeys.imageio/imageio?label=development&server=https%3A%2F%2Foss.sonatype.org&color=slateblue)](https://oss.sonatype.org/content/repositories/snapshots/com/twelvemonkeys/) [![StackOverflow](https://img.shields.io/badge/stack_overflow-twelvemonkeys-orange.svg)](https://stackoverflow.com/questions/tagged/twelvemonkeys) [![Donate](https://img.shields.io/badge/donate-PayPal-blue.svg)](https://paypal.me/haraldk76/100) -[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/haraldk/TwelveMonkeys/badge)](https://securityscorecards.dev/viewer/?uri=github.com/haraldk/TwelveMonkeys) ![Logo](logo.png) diff --git a/common/common-image/pom.xml b/common/common-image/pom.xml index c557c6c87..7d238fa86 100644 --- a/common/common-image/pom.xml +++ b/common/common-image/pom.xml @@ -36,4 +36,13 @@ provided + + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/common/common-io/pom.xml b/common/common-io/pom.xml index 96bd8f3c9..9fb82eca8 100644 --- a/common/common-io/pom.xml +++ b/common/common-io/pom.xml @@ -31,4 +31,12 @@ + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/common/common-io/src/main/java/com/twelvemonkeys/io/CompoundReader.java b/common/common-io/src/main/java/com/twelvemonkeys/io/CompoundReader.java index 472791145..93b406425 100755 --- a/common/common-io/src/main/java/com/twelvemonkeys/io/CompoundReader.java +++ b/common/common-io/src/main/java/com/twelvemonkeys/io/CompoundReader.java @@ -56,8 +56,8 @@ public class CompoundReader extends Reader { private int currentReader; private int markedReader; - private int mark; - private int mNext; + private long mark; + private long next; /** * Create a new compound reader. @@ -76,7 +76,7 @@ public CompoundReader(final Iterator pReaders) { finalLock = pReaders; // NOTE: It's ok to sync on pReaders, as the // reference can't change, only it's elements - readers = new ArrayList(); + readers = new ArrayList<>(); boolean markSupported = true; while (pReaders.hasNext()) { @@ -101,7 +101,7 @@ protected final Reader nextReader() { } // NOTE: Reset mNext for every reader, and record marked reader in mark/reset methods! - mNext = 0; + next = 0; return current; } @@ -135,7 +135,7 @@ public void mark(int pReadLimit) throws IOException { synchronized (finalLock) { ensureOpen(); - mark = mNext; + mark = next; markedReader = currentReader; current.mark(pReadLimit); @@ -158,7 +158,7 @@ public void reset() throws IOException { } current.reset(); - mNext = mark; + next = mark; } } @@ -177,13 +177,13 @@ public int read() throws IOException { return read(); // In case of 0-length readers } - mNext++; + next++; return read; } } - public int read(char pBuffer[], int pOffset, int pLength) throws IOException { + public int read(char[] pBuffer, int pOffset, int pLength) throws IOException { synchronized (finalLock) { int read = current.read(pBuffer, pOffset, pLength); @@ -192,7 +192,7 @@ public int read(char pBuffer[], int pOffset, int pLength) throws IOException { return read(pBuffer, pOffset, pLength); // In case of 0-length readers } - mNext += read; + next += read; return read; } @@ -213,7 +213,7 @@ public long skip(long pChars) throws IOException { return skip(pChars); // In case of 0-length readers } - mNext += skipped; + next += skipped; return skipped; } diff --git a/common/common-io/src/main/java/com/twelvemonkeys/io/StringArrayReader.java b/common/common-io/src/main/java/com/twelvemonkeys/io/StringArrayReader.java index 45ec3f9b4..7523f872a 100755 --- a/common/common-io/src/main/java/com/twelvemonkeys/io/StringArrayReader.java +++ b/common/common-io/src/main/java/com/twelvemonkeys/io/StringArrayReader.java @@ -50,8 +50,8 @@ public class StringArrayReader extends StringReader { protected final Object finalLock; private int currentSting; private int markedString; - private int mark; - private int next; + private long mark; + private long next; /** * Create a new string array reader. @@ -151,7 +151,7 @@ public int read() throws IOException { } } - public int read(char pBuffer[], int pOffset, int pLength) throws IOException { + public int read(char[] pBuffer, int pOffset, int pLength) throws IOException { synchronized (finalLock) { int read = current.read(pBuffer, pOffset, pLength); diff --git a/common/common-lang/pom.xml b/common/common-lang/pom.xml index 327cc9110..fce3b8aca 100644 --- a/common/common-lang/pom.xml +++ b/common/common-lang/pom.xml @@ -17,4 +17,12 @@ com.twelvemonkeys.common.lang + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/contrib/pom.xml b/contrib/pom.xml index b3235671f..aa32768f7 100644 --- a/contrib/pom.xml +++ b/contrib/pom.xml @@ -69,4 +69,13 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/imageio/imageio-batik/pom.xml b/imageio/imageio-batik/pom.xml index 1a506655a..783eb936d 100644 --- a/imageio/imageio-batik/pom.xml +++ b/imageio/imageio-batik/pom.xml @@ -33,6 +33,18 @@ + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + @@ -51,7 +63,7 @@ commons-io commons-io - 2.13.0 + 2.14.0 provided diff --git a/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java b/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java index 3af95813d..3bbbb97bd 100755 --- a/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java +++ b/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java @@ -33,6 +33,7 @@ import com.twelvemonkeys.image.ImageUtil; import com.twelvemonkeys.imageio.ImageReaderBase; import com.twelvemonkeys.imageio.util.IIOUtil; +import com.twelvemonkeys.imageio.util.ImageTypeSpecifiers; import com.twelvemonkeys.lang.StringUtil; import org.apache.batik.anim.dom.SVGDOMImplementation; @@ -249,7 +250,7 @@ public int getHeight(int imageIndex) throws IOException { } public Iterator getImageTypes(int imageIndex) { - return Collections.singleton(ImageTypeSpecifier.createFromRenderedImage(rasterizer.createImage(1, 1))).iterator(); + return Collections.singleton(ImageTypeSpecifiers.createFromRenderedImage(rasterizer.createImage(1, 1))).iterator(); } /** diff --git a/imageio/imageio-bmp/pom.xml b/imageio/imageio-bmp/pom.xml index 4aab91e8e..d7fcd16e6 100644 --- a/imageio/imageio-bmp/pom.xml +++ b/imageio/imageio-bmp/pom.xml @@ -26,4 +26,22 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-clippath/pom.xml b/imageio/imageio-clippath/pom.xml index 2151bb28b..ebd99252c 100755 --- a/imageio/imageio-clippath/pom.xml +++ b/imageio/imageio-clippath/pom.xml @@ -32,4 +32,13 @@ imageio-metadata + + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/imageio/imageio-clippath/src/main/java/com/twelvemonkeys/imageio/path/Paths.java b/imageio/imageio-clippath/src/main/java/com/twelvemonkeys/imageio/path/Paths.java index ba4a3adf3..849459d58 100755 --- a/imageio/imageio-clippath/src/main/java/com/twelvemonkeys/imageio/path/Paths.java +++ b/imageio/imageio-clippath/src/main/java/com/twelvemonkeys/imageio/path/Paths.java @@ -42,6 +42,7 @@ import com.twelvemonkeys.imageio.metadata.tiff.TIFFReader; import com.twelvemonkeys.imageio.stream.ByteArrayImageInputStream; import com.twelvemonkeys.imageio.stream.SubImageInputStream; +import com.twelvemonkeys.imageio.util.ImageTypeSpecifiers; import javax.imageio.*; import javax.imageio.metadata.IIOMetadata; @@ -307,7 +308,7 @@ public static boolean writeClipped(final RenderedImage image, Shape clipPath, fi throw new IllegalArgumentException("output == null!"); } - ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(image); + ImageTypeSpecifier type = ImageTypeSpecifiers.createFromRenderedImage(image); Iterator writers = ImageIO.getImageWriters(type, formatName); if (writers.hasNext()) { diff --git a/imageio/imageio-core/pom.xml b/imageio/imageio-core/pom.xml index 4249e7768..15f7ada58 100644 --- a/imageio/imageio-core/pom.xml +++ b/imageio/imageio-core/pom.xml @@ -28,4 +28,20 @@ + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageInputStreamSpi + + + + + + diff --git a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java index fce1da683..1c8d1c66a 100644 --- a/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java +++ b/imageio/imageio-core/src/main/java/com/twelvemonkeys/imageio/color/ColorSpaces.java @@ -188,7 +188,7 @@ static void validateColorSpace(final ICC_ColorSpace cs) { // Will throw IllegalArgumentException or CMMException if the profile is bad cs.fromRGB(new float[] {0.999f, 0.5f, 0.001f}); - // This breaks *some times* after validation of bad profiles, + // This breaks *sometimes* after validation of bad profiles, // we'll let it blow up early in this case cs.getProfile().getData(); } diff --git a/imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/StandardImageMetadataSupportTest.java b/imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/StandardImageMetadataSupportTest.java index efb41a9fe..9931962e9 100644 --- a/imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/StandardImageMetadataSupportTest.java +++ b/imageio/imageio-core/src/test/java/com/twelvemonkeys/imageio/StandardImageMetadataSupportTest.java @@ -17,6 +17,7 @@ import java.util.Calendar; import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -170,7 +171,7 @@ public void withTextValuesSingle() { @Test public void withTextValuesMap() { - Map entries = new HashMap<>(); + Map entries = new LinkedHashMap<>(); entries.put("foo", "bar"); entries.put("bar", "xyzzy"); diff --git a/imageio/imageio-hdr/pom.xml b/imageio/imageio-hdr/pom.xml index a0d828b46..9619cd41e 100644 --- a/imageio/imageio-hdr/pom.xml +++ b/imageio/imageio-hdr/pom.xml @@ -32,4 +32,21 @@ imageio-metadata + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + + + diff --git a/imageio/imageio-hdr/src/main/java/com/twelvemonkeys/imageio/plugins/hdr/HDRMetadata.java b/imageio/imageio-hdr/src/main/java/com/twelvemonkeys/imageio/plugins/hdr/HDRMetadata.java index c2f407fe0..fecfc8d44 100755 --- a/imageio/imageio-hdr/src/main/java/com/twelvemonkeys/imageio/plugins/hdr/HDRMetadata.java +++ b/imageio/imageio-hdr/src/main/java/com/twelvemonkeys/imageio/plugins/hdr/HDRMetadata.java @@ -5,7 +5,7 @@ import javax.imageio.ImageTypeSpecifier; import javax.imageio.metadata.IIOMetadataNode; -public class HDRMetadata extends StandardImageMetadataSupport { +final class HDRMetadata extends StandardImageMetadataSupport { public HDRMetadata(ImageTypeSpecifier type, HDRHeader header) { super(builder(type) .withCompressionTypeName("RLE") diff --git a/imageio/imageio-icns/pom.xml b/imageio/imageio-icns/pom.xml index 51aabeb3d..df25c0660 100644 --- a/imageio/imageio-icns/pom.xml +++ b/imageio/imageio-icns/pom.xml @@ -26,4 +26,22 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-iff/pom.xml b/imageio/imageio-iff/pom.xml index 334195a2b..933dfecda 100644 --- a/imageio/imageio-iff/pom.xml +++ b/imageio/imageio-iff/pom.xml @@ -29,4 +29,22 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-jpeg/pom.xml b/imageio/imageio-jpeg/pom.xml index b552a71ec..66e65dfb9 100644 --- a/imageio/imageio-jpeg/pom.xml +++ b/imageio/imageio-jpeg/pom.xml @@ -32,4 +32,22 @@ imageio-metadata + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriter.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriter.java index 9d573a417..4c956f368 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriter.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGImageWriter.java @@ -32,6 +32,7 @@ import com.twelvemonkeys.imageio.ImageWriterBase; import com.twelvemonkeys.imageio.metadata.jpeg.JPEG; +import com.twelvemonkeys.imageio.util.ImageTypeSpecifiers; import com.twelvemonkeys.imageio.util.ProgressListenerBase; import javax.imageio.IIOImage; @@ -161,7 +162,7 @@ public void write(final IIOMetadata streamMetadata, final IIOImage image, final else { // If the image metadata is our substitute, convert it back to native com.sun format if (image.getMetadata() instanceof JPEGImage10Metadata) { - ImageTypeSpecifier type = image.hasRaster() ? null : ImageTypeSpecifier.createFromRenderedImage(image.getRenderedImage()); + ImageTypeSpecifier type = image.hasRaster() ? null : ImageTypeSpecifiers.createFromRenderedImage(image.getRenderedImage()); IIOMetadata nativeMetadata = delegate.getDefaultImageMetadata(type, param); JPEGImage10Metadata metadata = (JPEGImage10Metadata) image.getMetadata(); @@ -185,7 +186,7 @@ private void writeCMYK(final IIOMetadata streamMetadata, final IIOImage image, f boolean overrideDestination = param != null && param.getDestinationType() != null; ImageTypeSpecifier destinationType = overrideDestination ? param.getDestinationType() - : ImageTypeSpecifier.createFromRenderedImage(renderedImage); + : ImageTypeSpecifiers.createFromRenderedImage(renderedImage); ColorSpace cmykCS = destinationType.getColorModel().getColorSpace(); diff --git a/imageio/imageio-metadata/pom.xml b/imageio/imageio-metadata/pom.xml index 8efa3c0ac..44b2854d5 100644 --- a/imageio/imageio-metadata/pom.xml +++ b/imageio/imageio-metadata/pom.xml @@ -28,4 +28,13 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/imageio/imageio-pcx/pom.xml b/imageio/imageio-pcx/pom.xml index 1ef9c6058..653901b5b 100755 --- a/imageio/imageio-pcx/pom.xml +++ b/imageio/imageio-pcx/pom.xml @@ -28,4 +28,21 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + + + diff --git a/imageio/imageio-pdf/pom.xml b/imageio/imageio-pdf/pom.xml index a93995223..f970dcf9f 100644 --- a/imageio/imageio-pdf/pom.xml +++ b/imageio/imageio-pdf/pom.xml @@ -28,4 +28,13 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + diff --git a/imageio/imageio-pict/pom.xml b/imageio/imageio-pict/pom.xml index 2625b2234..8579b6bf8 100644 --- a/imageio/imageio-pict/pom.xml +++ b/imageio/imageio-pict/pom.xml @@ -27,4 +27,21 @@ + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-pnm/pom.xml b/imageio/imageio-pnm/pom.xml index b1b70fdc7..ef58304e7 100755 --- a/imageio/imageio-pnm/pom.xml +++ b/imageio/imageio-pnm/pom.xml @@ -28,4 +28,22 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-psd/pom.xml b/imageio/imageio-psd/pom.xml index 0d13d24ae..198c9c7c8 100644 --- a/imageio/imageio-psd/pom.xml +++ b/imageio/imageio-psd/pom.xml @@ -31,4 +31,22 @@ imageio-metadata + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-sgi/pom.xml b/imageio/imageio-sgi/pom.xml index 8d196bb90..f88f3377d 100755 --- a/imageio/imageio-sgi/pom.xml +++ b/imageio/imageio-sgi/pom.xml @@ -28,4 +28,21 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + + + diff --git a/imageio/imageio-tga/pom.xml b/imageio/imageio-tga/pom.xml index b6306ee92..2bba08f48 100755 --- a/imageio/imageio-tga/pom.xml +++ b/imageio/imageio-tga/pom.xml @@ -28,4 +28,22 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-thumbsdb/pom.xml b/imageio/imageio-thumbsdb/pom.xml index ae449b4e2..c7de006f4 100644 --- a/imageio/imageio-thumbsdb/pom.xml +++ b/imageio/imageio-thumbsdb/pom.xml @@ -28,4 +28,21 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + + + diff --git a/imageio/imageio-tiff/pom.xml b/imageio/imageio-tiff/pom.xml index d1ae06cbc..b36ad05e6 100644 --- a/imageio/imageio-tiff/pom.xml +++ b/imageio/imageio-tiff/pom.xml @@ -37,4 +37,22 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi; + osgi.serviceloader=javax.imageio.spi.ImageWriterSpi + + + + + + diff --git a/imageio/imageio-webp/pom.xml b/imageio/imageio-webp/pom.xml index 2ebe37356..3f9ecc2fe 100644 --- a/imageio/imageio-webp/pom.xml +++ b/imageio/imageio-webp/pom.xml @@ -31,4 +31,21 @@ test-jar + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + + + diff --git a/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/lossless/PredictorTransform.java b/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/lossless/PredictorTransform.java index 042042a2d..92e282c7e 100644 --- a/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/lossless/PredictorTransform.java +++ b/imageio/imageio-webp/src/main/java/com/twelvemonkeys/imageio/plugins/webp/lossless/PredictorTransform.java @@ -60,7 +60,7 @@ public void applyInverse(WritableRaster raster) { // (0,0) Black (0x000000ff) predict raster.getDataElements(0, 0, rgba); - rgba[3] += 0xff; + rgba[3] += (byte) 0xff; raster.setDataElements(0, 0, rgba); byte[] predictor = new byte[4]; @@ -100,7 +100,7 @@ public void applyInverse(WritableRaster raster) { switch (transformType) { case PredictorMode.BLACK: - rgba[3] += 0xff; + rgba[3] += (byte) 0xff; break; case PredictorMode.L: raster.getDataElements(lX, y, predictor); diff --git a/imageio/imageio-xwd/pom.xml b/imageio/imageio-xwd/pom.xml index d766494f0..d23ea775f 100755 --- a/imageio/imageio-xwd/pom.xml +++ b/imageio/imageio-xwd/pom.xml @@ -28,4 +28,21 @@ test + + + + + org.apache.felix + maven-bundle-plugin + + + + osgi.serviceloader; + osgi.serviceloader=javax.imageio.spi.ImageReaderSpi + + + + + + diff --git a/imageio/pom.xml b/imageio/pom.xml index 964bf6183..aa9519c95 100644 --- a/imageio/pom.xml +++ b/imageio/pom.xml @@ -170,4 +170,20 @@ + + + + + + org.apache.felix + maven-bundle-plugin + + + osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)" + + + + + + diff --git a/pom.xml b/pom.xml index 53c4c3989..059be3285 100644 --- a/pom.xml +++ b/pom.xml @@ -218,6 +218,42 @@ + + org.apache.felix + maven-bundle-plugin + 5.1.9 + + + jar + bundle + + + + <_dsannotations>* + + <_dsannotations-options>inherit + + <_metatypeannotations>* + + + + + manifest + + manifest + + + true + + + + bundle + + bundle + + + + org.apache.maven.plugins maven-compiler-plugin diff --git a/servlet/pom.xml b/servlet/pom.xml index 973f710ae..3a39e2676 100644 --- a/servlet/pom.xml +++ b/servlet/pom.xml @@ -63,6 +63,11 @@ + + org.apache.felix + maven-bundle-plugin + + org.apache.maven.plugins maven-shade-plugin