Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xmlgraphics-commons for
openSUSE:Factory checked in at 2026-04-28 14:29:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xmlgraphics-commons (Old)
and /work/SRC/openSUSE:Factory/.xmlgraphics-commons.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xmlgraphics-commons"
Tue Apr 28 14:29:55 2026 rev:35 rq:1349574 version:2.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/xmlgraphics-commons/xmlgraphics-commons.changes
2026-02-07 15:33:30.985597282 +0100
+++
/work/SRC/openSUSE:Factory/.xmlgraphics-commons.new.11940/xmlgraphics-commons.changes
2026-04-28 14:30:44.703392975 +0200
@@ -1,0 +2,15 @@
+Sun Apr 26 03:31:30 UTC 2026 - Anton Shvetz <[email protected]>
+
+- Update to 2.11
+ * Minor changes to support FOP 2.11 release
+ + FOP-3236: Add all the needed namespaces to the parent element
+ + FOP-3241: Add option to convert image to CMYK
+ + XGC-142: Add generics to hints
+ + XGC-143: Use mvn for bundle jar
+ + XGC-145: Avoid parsing uri to read page number
+- JPMS: add Automatic-Module-Name to the manifest
+- Modified patch:
+ * xmlgraphics-commons-build_xml.patch
+ + rediff and add the Automatic-Module-Name manifest entry
+
+-------------------------------------------------------------------
@@ -12 +27 @@
-- Update to 2.8
+- Update to 2.10
Old:
----
xmlgraphics-commons-2.10-src.tar.gz
New:
----
xmlgraphics-commons-2.11-src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xmlgraphics-commons.spec ++++++
--- /var/tmp/diff_new_pack.Kwuw2Z/_old 2026-04-28 14:30:45.271415889 +0200
+++ /var/tmp/diff_new_pack.Kwuw2Z/_new 2026-04-28 14:30:45.275416051 +0200
@@ -18,7 +18,7 @@
Name: xmlgraphics-commons
-Version: 2.10
+Version: 2.11
Release: 0
Summary: XML Graphics Commons
License: Apache-2.0
@@ -57,7 +57,7 @@
%patch -P 0
%patch -P 1 -p1
%patch -P 2 -p1
-find . -name "*.jar" | xargs rm
+find . -name "*.jar" -delete
%build
build-jar-repository -s lib commons-io commons-logging
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.Kwuw2Z/_old 2026-04-28 14:30:45.303417181 +0200
+++ /var/tmp/diff_new_pack.Kwuw2Z/_new 2026-04-28 14:30:45.307417342 +0200
@@ -1,6 +1,6 @@
-mtime: 1770386333
-commit: 32d2dd06fa543735a8276abbbb4e589f80b7e8e5e79e776357642f3aa9a36529
-url: https://src.opensuse.org/java-packages/xmlgraphics-commons.git
-revision: 32d2dd06fa543735a8276abbbb4e589f80b7e8e5e79e776357642f3aa9a36529
+mtime: 1777211908
+commit: ec8203eaf15f3687be8666f58c9fb0b32eed91c345abab878492f05e82969156
+url: https://src.opensuse.org/java-packages/xmlgraphics-commons
+revision: ec8203eaf15f3687be8666f58c9fb0b32eed91c345abab878492f05e82969156
projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj
++++++ build.specials.obscpio ++++++
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2026-04-26 15:58:28.000000000 +0200
@@ -0,0 +1 @@
+.osc
++++++ xmlgraphics-commons-2.10-src.tar.gz ->
xmlgraphics-commons-2.11-src.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlgraphics-commons-2.10/NOTICE
new/xmlgraphics-commons-2.11/NOTICE
--- old/xmlgraphics-commons-2.10/NOTICE 2024-10-01 11:56:44.000000000 +0200
+++ new/xmlgraphics-commons-2.11/NOTICE 2025-04-24 11:27:31.000000000 +0200
@@ -1,5 +1,5 @@
Apache XML Graphics Commons
-Copyright 2006-2024 The Apache Software Foundation
+Copyright 2006-2025 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlgraphics-commons-2.10/README
new/xmlgraphics-commons-2.11/README
--- old/xmlgraphics-commons-2.10/README 2024-10-01 11:56:44.000000000 +0200
+++ new/xmlgraphics-commons-2.11/README 2025-04-24 11:27:31.000000000 +0200
@@ -82,6 +82,11 @@
For more detailed info about the changes, please see:
http://xmlgraphics.apache.org/commons/changes.html
+Version 2.11
+--------------
+
+Minor release to be used with FOP 2.11
+
Version 2.10
--------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlgraphics-commons-2.10/build.properties
new/xmlgraphics-commons-2.11/build.properties
--- old/xmlgraphics-commons-2.10/build.properties 2024-10-01
11:56:44.000000000 +0200
+++ new/xmlgraphics-commons-2.11/build.properties 2025-04-24
11:27:31.000000000 +0200
@@ -34,7 +34,7 @@
## ===================================================================
## 3. Project specific properties
-version = 2.10
+version = 2.11
## Allows you to switch off the compilation of the internal image
## codecs which depend on Sun-private classes. Setting this to true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlgraphics-commons-2.10/build.xml
new/xmlgraphics-commons-2.11/build.xml
--- old/xmlgraphics-commons-2.10/build.xml 2024-10-01 11:56:44.000000000
+0200
+++ new/xmlgraphics-commons-2.11/build.xml 2025-04-24 11:27:31.000000000
+0200
@@ -25,7 +25,7 @@
<property name="Name" value="Apache XML Graphics Commons"/>
<property name="name" value="xmlgraphics-commons"/>
- <property name="year" value="1999-2024"/>
+ <property name="year" value="1999-2025"/>
<property name="javac.debug" value="on"/>
<property name="javac.optimize" value="off"/>
@@ -538,7 +538,7 @@
<!-- =================================================================== -->
<!-- Creates the distribution -->
<!-- =================================================================== -->
- <target name="dist" depends="distclean,dist-src,dist-bin,maven-artifacts"
description="Generates the distribution package"/>
+ <target name="dist" depends="distclean,dist-src,dist-bin"
description="Generates the distribution package"/>
<!-- IMPORTANT: .NET binaries must not be included in the distribution.
License policy! -->
@@ -644,66 +644,6 @@
</target>
<!-- =================================================================== -->
- <!-- Maven artifacts -->
- <!-- =================================================================== -->
- <target name="maven-artifacts" depends="jar-main, jar-sources, jar-javadocs"
description="Builds a Maven artifact that can be uploaded to a Maven
repository">
- <filter token="version" value="${version}"/>
- <mkdir dir="${build.dir}/maven"/>
- <copy file="${basedir}/xmlgraphics-commons-pom-template.pom"
tofile="${build.dir}/maven/pom.xml" filtering="true"/>
- <fileset id="bundle-files" dir="${build.dir}">
- <patternset>
- <include name="${name}-${version}.jar"/>
- <include name="${name}-${version}-sources.jar"/>
- <include name="${name}-${version}-javadoc.jar"/>
- </patternset>
- <patternset>
- <include name="maven/pom.xml"/>
- </patternset>
- </fileset>
- <checksum algorithm="sha-512" fileext=".sha512">
- <fileset refid="bundle-files"/>
- </checksum>
- <input message="Passphrase for your default private key" addproperty="pwd">
- <handler classname="org.apache.tools.ant.input.SecureInputHandler" />
- </input>
- <antcall target="sign-file">
- <param name="sign.archive" value="${build.dir}/${name}-${version}.jar"/>
- <param name="pwd" value="${pwd}"/>
- </antcall>
- <antcall target="sign-file">
- <param name="sign.archive"
value="${build.dir}/${name}-${version}-sources.jar"/>
- <param name="pwd" value="${pwd}"/>
- </antcall>
- <antcall target="sign-file">
- <param name="sign.archive"
value="${build.dir}/${name}-${version}-javadoc.jar"/>
- <param name="pwd" value="${pwd}"/>
- </antcall>
- <antcall target="sign-file">
- <param name="sign.archive" value="${build.dir}/maven/pom.xml"/>
- <param name="pwd" value="${pwd}"/>
- </antcall>
- <jar jarfile="${build.dir}/${name}-${version}-bundle.jar">
- <manifest>
- <attribute name="Build-Id" value="${ts} (${user.name} [${os.name}
${os.version} ${os.arch}, Java ${java.runtime.version}])"/>
- </manifest>
- <fileset dir="${build.dir}">
- <patternset>
- <include name="${name}-${version}.jar*"/>
- <include name="${name}-${version}-sources.jar*"/>
- <include name="${name}-${version}-javadoc.jar*"/>
- </patternset>
- </fileset>
- <fileset dir="${build.dir}/maven">
- <patternset>
- <include name="pom.xml*"/>
- </patternset>
- </fileset>
- <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
- </jar>
- <move file="${build.dir}/${name}-${version}-bundle.jar"
todir="${basedir}"/>
- </target>
-
- <!-- =================================================================== -->
<!-- Clean targets -->
<!-- =================================================================== -->
<target name="clean" description="Cleans the build directory">
Binary files old/xmlgraphics-commons-2.10/lib/commons-io-2.11.0.jar and
new/xmlgraphics-commons-2.11/lib/commons-io-2.11.0.jar differ
Binary files old/xmlgraphics-commons-2.10/lib/commons-io-2.17.0.jar and
new/xmlgraphics-commons-2.11/lib/commons-io-2.17.0.jar differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlgraphics-commons-2.10/pom.xml
new/xmlgraphics-commons-2.11/pom.xml
--- old/xmlgraphics-commons-2.10/pom.xml 2024-10-01 11:56:44.000000000
+0200
+++ new/xmlgraphics-commons-2.11/pom.xml 2025-04-24 11:27:31.000000000
+0200
@@ -4,7 +4,7 @@
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>xmlgraphics-commons</artifactId>
- <version>2.10</version>
+ <version>2.11</version>
<name>Apache XML Graphics Commons</name>
<description>XML Graphics Common Support</description>
<url>http://xmlgraphics.apache.org/commons/</url>
@@ -55,7 +55,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.11.0</version>
+ <version>2.17.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
@@ -116,6 +116,9 @@
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
+ <manifest>
+
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
<manifestEntries>
<Automatic-Module-Name>org.apache.xmlgraphics.commons</Automatic-Module-Name>
</manifestEntries>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
2025-04-24 11:27:31.000000000 +0200
@@ -182,8 +182,8 @@
+ uri);
}
- private Map prepareHints(Map hints, ImageSessionContext sessionContext) {
- Map newHints = new java.util.HashMap();
+ private Map<String, Object> prepareHints(Map<String, Object> hints,
ImageSessionContext sessionContext) {
+ Map<String, Object> newHints = new java.util.HashMap<>();
if (hints != null) {
newHints.putAll(hints); //Copy in case an unmodifiable map is
passed in
}
@@ -216,7 +216,7 @@
* the request or if an error occurred while loading the
image.
* @throws IOException If an I/O error occurs
*/
- public Image getImage(ImageInfo info, ImageFlavor flavor, Map hints,
+ public Image getImage(ImageInfo info, ImageFlavor flavor, Map<String,
Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
hints = prepareHints(hints, session);
@@ -255,7 +255,7 @@
* the request or if an error occurred while loading the
image.
* @throws IOException If an I/O error occurs
*/
- public Image getImage(ImageInfo info, ImageFlavor[] flavors, Map hints,
+ public Image getImage(ImageInfo info, ImageFlavor[] flavors, Map<String,
Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
hints = prepareHints(hints, session);
@@ -342,7 +342,7 @@
* the request or if an error occurred while loading the
image.
* @throws IOException If an I/O error occurs
*/
- public Image convertImage(Image image, ImageFlavor[] flavors, Map hints)
+ public Image convertImage(Image image, ImageFlavor[] flavors, Map<String,
Object> hints)
throws ImageException, IOException {
hints = prepareHints(hints, null);
ImageInfo info = image.getInfo();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/ImageProcessingHints.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/ImageProcessingHints.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/ImageProcessingHints.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/ImageProcessingHints.java
2025-04-24 11:27:31.000000000 +0200
@@ -27,9 +27,9 @@
public interface ImageProcessingHints {
/** Used to send a hint about the source resolution for pixel to unit
conversions. */
- Object SOURCE_RESOLUTION = "SOURCE_RESOLUTION"; //Value: Number (unit dpi)
+ String SOURCE_RESOLUTION = "SOURCE_RESOLUTION"; //Value: Number (unit dpi)
/** Used to send a hint about the target resolution (of the final output
format). */
- Object TARGET_RESOLUTION = "TARGET_RESOLUTION"; //Value: Number (unit dpi)
+ String TARGET_RESOLUTION = "TARGET_RESOLUTION"; //Value: Number (unit dpi)
/**
* Used to pass in the {@link ImageSessionContext}. A consumer can use
this to load embedded
@@ -37,7 +37,7 @@
* SVG image).
* @since 1.4
*/
- Object IMAGE_SESSION_CONTEXT = "IMAGE_SESSION_CONTEXT"; //Value:
ImageSessionContext instance
+ String IMAGE_SESSION_CONTEXT = "IMAGE_SESSION_CONTEXT"; //Value:
ImageSessionContext instance
/**
* Used to pass in the {@link ImageManager}. A consumer can use this to
load embedded
@@ -45,13 +45,13 @@
* SVG image).
* @since 1.4
*/
- Object IMAGE_MANAGER = "IMAGE_MANAGER"; //Value: ImageManager instance
+ String IMAGE_MANAGER = "IMAGE_MANAGER"; //Value: ImageManager instance
/** Used to tell the image loader to ignore any color profile in the
image. */
- Object IGNORE_COLOR_PROFILE = "IGNORE_COLOR_PROFILE"; //Value: Boolean
+ String IGNORE_COLOR_PROFILE = "IGNORE_COLOR_PROFILE"; //Value: Boolean
/** Used to tell a bitmap producer to generate a certain type of bitmap. */
- Object BITMAP_TYPE_INTENT = "BITMAP_TYPE_INTENT";
+ String BITMAP_TYPE_INTENT = "BITMAP_TYPE_INTENT";
/**
* Used with BITMAP_TYPE_INTENT to indicate that the generated bitmap
should be a
@@ -68,7 +68,7 @@
/**
* Used to indicate how existing transparency information (for example, an
alpha channel)
* shall be treated. */
- Object TRANSPARENCY_INTENT = "TRANSPARENCY_INTENT";
+ String TRANSPARENCY_INTENT = "TRANSPARENCY_INTENT";
/**
* Used with TRANSPARENCY_INTENT to indicate that any transparency
information shall be
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageLoader.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageLoader.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageLoader.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageLoader.java
2025-04-24 11:27:31.000000000 +0200
@@ -51,7 +51,7 @@
* process (may be null).
* @return true if any color profile should be ignored
*/
- protected boolean ignoreColorProfile(Map hints) {
+ protected boolean ignoreColorProfile(Map<String, Object> hints) {
if (hints == null) {
return false;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
2025-04-24 11:27:31.000000000 +0200
@@ -75,7 +75,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
ImageException firstException = null;
for (ImageLoader loader : this.loaders) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBitmap2G2D.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBitmap2G2D.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBitmap2G2D.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBitmap2G2D.java
2025-04-24 11:27:31.000000000 +0200
@@ -36,7 +36,7 @@
public class ImageConverterBitmap2G2D extends AbstractImageConverter {
/** {@inheritDoc} */
- public Image convert(Image src, Map hints) {
+ public Image convert(Image src, Map<String, Object> hints) {
checkSourceFlavor(src);
assert src instanceof ImageRendered;
final ImageRendered rendImage = (ImageRendered)src;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBuffered2Rendered.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBuffered2Rendered.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBuffered2Rendered.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterBuffered2Rendered.java
2025-04-24 11:27:31.000000000 +0200
@@ -31,7 +31,7 @@
public class ImageConverterBuffered2Rendered extends AbstractImageConverter {
/** {@inheritDoc} */
- public Image convert(Image src, Map hints) {
+ public Image convert(Image src, Map<String, Object> hints) {
checkSourceFlavor(src);
assert src instanceof ImageBuffered;
ImageBuffered buffered = (ImageBuffered)src;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2Bitmap.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2Bitmap.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2Bitmap.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2Bitmap.java
2025-04-24 11:27:31.000000000 +0200
@@ -49,7 +49,7 @@
public class ImageConverterG2D2Bitmap extends AbstractImageConverter {
/** {@inheritDoc} */
- public Image convert(Image src, Map hints) {
+ public Image convert(Image src, Map<String, Object> hints) {
checkSourceFlavor(src);
assert src instanceof ImageGraphics2D;
ImageGraphics2D g2dImage = (ImageGraphics2D)src;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
2025-04-24 11:27:31.000000000 +0200
@@ -38,7 +38,7 @@
public class ImageConverterRendered2PNG extends AbstractImageConverter {
/** {@inheritDoc} */
- public Image convert(Image src, Map hints) throws ImageException,
IOException {
+ public Image convert(Image src, Map<String, Object> hints) throws
ImageException, IOException {
checkSourceFlavor(src);
assert src instanceof ImageRendered;
ImageRendered rendered = (ImageRendered)src;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderEPS.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderEPS.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderEPS.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderEPS.java
2025-04-24 11:27:31.000000000 +0200
@@ -51,7 +51,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
if (!MimeConstants.MIME_EPS.equals(info.getMimeType())) {
throw new IllegalArgumentException(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderInternalTIFF.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderInternalTIFF.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderInternalTIFF.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderInternalTIFF.java
2025-04-24 11:27:31.000000000 +0200
@@ -58,7 +58,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
Source src = session.needSource(info.getOriginalURI());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderPNG.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderPNG.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderPNG.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderPNG.java
2025-04-24 11:27:31.000000000 +0200
@@ -31,7 +31,6 @@
import
org.apache.xmlgraphics.image.codec.util.ImageInputStreamSeekableStreamAdapter;
import org.apache.xmlgraphics.image.codec.util.SeekableStream;
import org.apache.xmlgraphics.image.loader.Image;
-import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageFlavor;
import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.ImageSessionContext;
@@ -44,8 +43,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session) throws ImageException,
- IOException {
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session) throws IOException {
Source src = session.needSource(info.getOriginalURI());
ImageInputStream imgStream = ImageUtil.needImageInputStream(src);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRaw.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRaw.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRaw.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRaw.java
2025-04-24 11:27:31.000000000 +0200
@@ -54,7 +54,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
if (!this.mime.equals(info.getMimeType())) {
throw new IllegalArgumentException(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawCCITTFax.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawCCITTFax.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawCCITTFax.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawCCITTFax.java
2025-04-24 11:27:31.000000000 +0200
@@ -71,7 +71,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
if (!MimeConstants.MIME_TIFF.equals(info.getMimeType())) {
throw new IllegalArgumentException("ImageInfo must be from a image
with MIME type: "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawJPEG.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawJPEG.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawJPEG.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawJPEG.java
2025-04-24 11:27:31.000000000 +0200
@@ -65,7 +65,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
if (!MimeConstants.MIME_JPEG.equals(info.getMimeType())) {
throw new IllegalArgumentException("ImageInfo must be from a image
with MIME type: "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
2025-04-24 11:27:31.000000000 +0200
@@ -58,8 +58,8 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session) throws ImageException,
- IOException {
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
+ throws ImageException, IOException {
if (!MimeConstants.MIME_PNG.equals(info.getMimeType())) {
throw new IllegalArgumentException("ImageInfo must be from a image
with MIME type: "
+ MimeConstants.MIME_PNG);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
2025-04-24 11:27:31.000000000 +0200
@@ -20,9 +20,12 @@
package org.apache.xmlgraphics.image.loader.impl.imageio;
import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.color.ColorSpace;
import java.awt.color.ICC_ColorSpace;
import java.awt.color.ICC_Profile;
import java.awt.image.BufferedImage;
+import java.awt.image.ColorConvertOp;
import java.awt.image.ColorModel;
import java.awt.image.ComponentColorModel;
import java.awt.image.IndexColorModel;
@@ -30,6 +33,7 @@
import java.awt.image.RenderedImage;
import java.awt.image.WritableRaster;
import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
@@ -57,6 +61,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import
org.apache.xmlgraphics.image.codec.util.ImageInputStreamSeekableStreamAdapter;
import org.apache.xmlgraphics.image.loader.Image;
import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageFlavor;
@@ -80,8 +85,8 @@
private ImageFlavor targetFlavor;
private static final String PNG_METADATA_NODE = "javax_imageio_png_1.0";
-
private static final String JPEG_METADATA_NODE =
"javax_imageio_jpeg_image_1.0";
+ public static final String ICC_CONVERTER = "icc-converter";
private static final Set PROVIDERS_IGNORING_ICC = new HashSet();
@@ -103,7 +108,7 @@
}
/** {@inheritDoc} */
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
RenderedImage imageData = null;
IIOException firstException = null;
@@ -247,13 +252,45 @@
}
if (ImageFlavor.BUFFERED_IMAGE.equals(this.targetFlavor)) {
+ imageData = rgbToCmyk((BufferedImage) imageData, info, session);
return new ImageBuffered(info, (BufferedImage)imageData,
transparentColor);
} else {
return new ImageRendered(info, imageData, transparentColor);
}
}
- private ImageReadParam getParam(ImageReader reader, Map hints) throws
IOException {
+ /**
+ * Convert RGB to CMYK using ICC file passed via fop.xconf
+ */
+ private BufferedImage rgbToCmyk(BufferedImage image, ImageInfo info,
ImageSessionContext session)
+ throws IOException {
+ String iccUri = (String) info.getCustomObjects().get(ICC_CONVERTER);
+ if (iccUri != null && image.getColorModel().getNumColorComponents() <
4) {
+ if (image.getType() != BufferedImage.TYPE_INT_RGB) {
+ BufferedImage rgbImage =
+ new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_INT_RGB);
+ Graphics2D g = (Graphics2D) rgbImage.getGraphics();
+ g.setBackground(Color.WHITE);
+ g.clearRect(0, 0, image.getWidth(), image.getHeight());
+ g.drawImage(image, 0, 0, null);
+ g.dispose();
+ image = rgbImage;
+ }
+ try {
+ Source src = session.needSource(iccUri);
+ ImageInputStream iccStream =
ImageUtil.needImageInputStream(src);
+ ColorSpace colorSpace = new
ICC_ColorSpace(ICC_Profile.getInstance(
+ new ImageInputStreamSeekableStreamAdapter(iccStream)));
+ ColorConvertOp convertOp = new
ColorConvertOp(image.getColorModel().getColorSpace(), colorSpace, null);
+ return convertOp.filter(image, null);
+ } catch (FileNotFoundException e) {
+ throw new IOException(e);
+ }
+ }
+ return image;
+ }
+
+ private ImageReadParam getParam(ImageReader reader, Map<String, Object>
hints) throws IOException {
if (hints != null && Boolean.TRUE.equals(hints.get("CMYK"))) {
Iterator<ImageTypeSpecifier> types = reader.getImageTypes(0);
while (types.hasNext()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
2025-04-24 11:27:31.000000000 +0200
@@ -93,7 +93,7 @@
* @throws ImageException if an error occurs while loader or converting
the image
* @throws IOException if an I/O error occurs
*/
- public Image execute(ImageInfo info, Map hints, ImageSessionContext
context)
+ public Image execute(ImageInfo info, Map<String, Object> hints,
ImageSessionContext context)
throws ImageException, IOException {
return execute(info, null, hints, context);
}
@@ -113,7 +113,7 @@
* @throws IOException if an I/O error occurs
*/
public Image execute(ImageInfo info, Image originalImage,
- Map hints, ImageSessionContext context) throws ImageException,
IOException {
+ Map<String, Object> hints, ImageSessionContext context) throws
ImageException, IOException {
if (hints == null) {
hints = Collections.EMPTY_MAP;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageConverter.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageConverter.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageConverter.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageConverter.java
2025-04-24 11:27:31.000000000 +0200
@@ -48,7 +48,7 @@
* @throws ImageException if an error occurs while converting the image
* @throws IOException if an I/O error occurs while converting the image
*/
- Image convert(Image src, Map hints) throws ImageException, IOException;
+ Image convert(Image src, Map<String, Object> hints) throws ImageException,
IOException;
/**
* Returns the flavor that this converter converts images into.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
2025-04-24 11:27:31.000000000 +0200
@@ -69,6 +69,8 @@
private Map additionalPenalties = new java.util.HashMap(); //<String,
Penalty>
//Note: String as key chosen to avoid possible class-unloading leaks
+ private String iccConverter;
+
/**
* Main constructor. This constructor allows to disable plug-in discovery
for testing purposes.
* @param discover true if implementation classes shall automatically be
discovered.
@@ -422,4 +424,11 @@
return (p != null ? p : Penalty.ZERO_PENALTY);
}
+ public void setICCConverter(String iccConverter) {
+ this.iccConverter = iccConverter;
+ }
+
+ public String getIccConverter() {
+ return iccConverter;
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageLoader.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageLoader.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageLoader.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageLoader.java
2025-04-24 11:27:31.000000000 +0200
@@ -49,7 +49,7 @@
* @throws ImageException if an error occurs while loading the image
* @throws IOException if an I/O error occurs while loading the image
*/
- Image loadImage(ImageInfo info, Map hints, ImageSessionContext session)
+ Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException;
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
2025-04-24 11:27:31.000000000 +0200
@@ -25,8 +25,6 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.util.Map;
import java.util.zip.GZIPInputStream;
@@ -238,7 +236,7 @@
* @return a Map of hints
*/
public static Map getDefaultHints(ImageSessionContext session) {
- java.util.Map hints = new java.util.HashMap();
+ java.util.Map<String, Object> hints = new java.util.HashMap<>();
hints.put(ImageProcessingHints.SOURCE_RESOLUTION,
session.getParentContext().getSourceResolution());
hints.put(ImageProcessingHints.TARGET_RESOLUTION,
@@ -267,33 +265,24 @@
if (uri.indexOf('#') < 0) {
return null;
}
- try {
- URI u = new URI(uri);
- String fragment = u.getFragment();
- if (fragment != null) {
- int pos = fragment.indexOf(PAGE_INDICATOR);
- if (pos >= 0) {
- pos += PAGE_INDICATOR.length();
- StringBuffer sb = new StringBuffer();
- while (pos < fragment.length()) {
- char c = fragment.charAt(pos);
- if (c >= '0' && c <= '9') {
- sb.append(c);
- } else {
- break;
- }
- pos++;
- }
- if (sb.length() > 0) {
- int pageIndex = Integer.parseInt(sb.toString()) - 1;
- pageIndex = Math.max(0, pageIndex);
- return pageIndex;
- }
+ int pos = uri.indexOf(PAGE_INDICATOR);
+ if (pos >= 0) {
+ pos += PAGE_INDICATOR.length();
+ StringBuilder sb = new StringBuilder();
+ while (pos < uri.length()) {
+ char c = uri.charAt(pos);
+ if (c >= '0' && c <= '9') {
+ sb.append(c);
+ } else {
+ break;
}
+ pos++;
+ }
+ if (sb.length() > 0) {
+ int pageIndex = Integer.parseInt(sb.toString()) - 1;
+ pageIndex = Math.max(0, pageIndex);
+ return pageIndex;
}
- } catch (URISyntaxException e) {
- throw new IllegalArgumentException("URI is invalid: "
- + e.getLocalizedMessage());
}
return null;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/java2d/GraphicContext.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/java2d/GraphicContext.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/java2d/GraphicContext.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/java2d/GraphicContext.java
2025-04-24 11:27:31.000000000 +0200
@@ -491,7 +491,7 @@
* @param hints the rendering hints to be set
* @see RenderingHints
*/
- public void setRenderingHints(Map hints) {
+ public void setRenderingHints(Map<RenderingHints.Key, Object> hints) {
this.hints = new RenderingHints(hints);
}
@@ -510,7 +510,7 @@
* @param hints the rendering hints to be set
* @see RenderingHints
*/
- public void addRenderingHints(Map hints) {
+ public void addRenderingHints(Map<String, Object> hints) {
this.hints.putAll(hints);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
2025-04-24 11:27:31.000000000 +0200
@@ -134,6 +134,13 @@
if (prefix != null) {
handler.startPrefixMapping(prefix, ns);
}
+
+ if (schema != null) {
+ for (Map.Entry<String, String> entry :
schema.getExtraNamespaces().entrySet()) {
+ handler.startPrefixMapping(entry.getKey(),
entry.getValue());
+ }
+ }
+
handler.startElement(XMPConstants.RDF_NAMESPACE,
"Description", "rdf:Description", atts);
empty = false;
@@ -147,6 +154,12 @@
if (prefix != null) {
handler.endPrefixMapping(prefix);
}
+
+ if (schema != null) {
+ for (String extraPrefix :
schema.getExtraNamespaces().keySet()) {
+ handler.endPrefixMapping(extraPrefix);
+ }
+ }
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/xmp/XMPSchema.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/xmp/XMPSchema.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/xmp/XMPSchema.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/xmp/XMPSchema.java
2025-04-24 11:27:31.000000000 +0200
@@ -19,6 +19,9 @@
package org.apache.xmlgraphics.xmp;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.xmlgraphics.util.QName;
import org.apache.xmlgraphics.xmp.merge.MergeRuleSet;
@@ -31,6 +34,7 @@
private String namespace;
private String prefix;
+ private Map<String, String> extraNamespaces = new HashMap<>();
/**
* Constructs a new XMP schema object.
@@ -65,4 +69,13 @@
public MergeRuleSet getDefaultMergeRuleSet() {
return defaultMergeRuleSet;
}
+
+ /** Returns the map of extra namespaces to by used by child properties */
+ public Map<String, String> getExtraNamespaces() {
+ return extraNamespaces;
+ }
+
+ public void addExtraNamespace(String prefix, String namespace) {
+ this.extraNamespaces.put(prefix, namespace);
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchema.java
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchema.java
---
old/xmlgraphics-commons-2.10/src/main/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchema.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/main/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchema.java
2025-04-24 11:27:31.000000000 +0200
@@ -31,6 +31,9 @@
/** Creates a new schema instance for Dublin Core. */
public PDFAExtensionXMPSchema() {
super(XMPConstants.PDF_A_EXTENSION, "pdfaExtension");
+
+ addExtraNamespace("pdfaSchema", XMPConstants.PDF_A_SCHEMA);
+ addExtraNamespace("pdfaProperty", XMPConstants.PDF_A_PROPERTY);
}
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
2025-04-24 11:27:31.000000000 +0200
@@ -23,7 +23,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
import org.apache.xmlgraphics.image.loader.util.ImageUtil;
@@ -34,10 +33,9 @@
/**
* Tests {@link ImageUtil.needPageIndexFromURI(String)}.
- * @throws Exception if an error occurs
*/
@Test
- public void testNeedPageIndex() throws Exception {
+ public void testNeedPageIndex() {
int pageIndex;
pageIndex =
ImageUtil.needPageIndexFromURI("http://localhost/images/scan1.tif");
@@ -56,23 +54,23 @@
assertEquals(1, pageIndex);
//Not a valid URI
- try {
- pageIndex =
ImageUtil.needPageIndexFromURI("C:\\images\\scan1.tif#page=44");
- fail("Invalid URI. Method must fail.");
- } catch (IllegalArgumentException e) {
- //expected
- }
+ pageIndex =
ImageUtil.needPageIndexFromURI("C:\\images\\scan1.tif#page=44");
+ assertEquals(43, pageIndex);
+
//Valid URI
pageIndex =
ImageUtil.needPageIndexFromURI("file:///C:/images/scan1.tif#page=44");
assertEquals(43, pageIndex);
+
+ pageIndex = ImageUtil.needPageIndexFromURI(
+ "Balesetbiztosítás_ kötvénycsomag -
e-mail_3000000637_Biztosítási kötvény melléklettel.pdf#page=1");
+ assertEquals(0, pageIndex);
}
/**
* Tests {@link ImageUtil.getPageIndexFromURI(String)}.
- * @throws Exception if an error occurs
*/
@Test
- public void testGetPageIndex() throws Exception {
+ public void testGetPageIndex() {
Integer pageIndex;
pageIndex =
ImageUtil.getPageIndexFromURI("http://localhost/images/scan1.tif");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2BitmapTestCase.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2BitmapTestCase.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2BitmapTestCase.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterG2D2BitmapTestCase.java
2025-04-24 11:27:31.000000000 +0200
@@ -39,7 +39,7 @@
ImageSize imageSize = new ImageSize(100, 100, 72);
imageSize.calcSizeFromPixels();
info.setSize(imageSize);
- HashMap hints = new HashMap();
+ HashMap<String, Object> hints = new HashMap<>();
hints.put(ImageProcessingHints.TRANSPARENCY_INTENT,
ImageProcessingHints.TRANSPARENCY_INTENT_IGNORE);
hints.put("CMYK", true);
ImageBuffered image = (ImageBuffered) new
ImageConverterG2D2Bitmap().convert(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderImageIOTestCase.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderImageIOTestCase.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderImageIOTestCase.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderImageIOTestCase.java
2025-04-24 11:27:31.000000000 +0200
@@ -19,8 +19,11 @@
package org.apache.xmlgraphics.image.loader.impl;
+import java.awt.image.BufferedImage;
+import java.io.File;
import java.net.URL;
+import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
@@ -60,4 +63,15 @@
assertTrue(im instanceof ImageRendered);
}
+ @Test
+ public void testRGBToCMYK() throws Exception {
+ File file = new File("test/images/bgimg300dpi.jpg");
+ ImageInfo info = new ImageInfo(file.toURI().toASCIIString(), "");
+ String icc = new
File("test/images/ISOcoated_v2_300_bas.icc").toURI().toASCIIString();
+ info.getCustomObjects().put(ImageLoaderImageIO.ICC_CONVERTER, icc);
+ ImageBuffered image = (ImageBuffered) new
ImageLoaderImageIO(ImageFlavor.BUFFERED_IMAGE)
+ .loadImage(info, null, new
MockImageSessionContext(MockImageContext.newSafeInstance()));
+ Assert.assertEquals(image.getBufferedImage().getType(),
BufferedImage.TYPE_CUSTOM);
+
Assert.assertEquals(image.getBufferedImage().getColorModel().getNumColorComponents(),
4);
+ }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/mocks/MockImageLoaderFactoryTIFF.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/mocks/MockImageLoaderFactoryTIFF.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/image/loader/mocks/MockImageLoaderFactoryTIFF.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/image/loader/mocks/MockImageLoaderFactoryTIFF.java
2025-04-24 11:27:31.000000000 +0200
@@ -93,7 +93,7 @@
return 0;
}
- public Image loadImage(ImageInfo info, Map hints, ImageSessionContext
session)
+ public Image loadImage(ImageInfo info, Map<String, Object> hints,
ImageSessionContext session)
throws ImageException, IOException {
throw new UnsupportedOperationException("not implemented");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/XMPArrayTest.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/XMPArrayTest.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/XMPArrayTest.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/XMPArrayTest.java
2025-04-24 11:27:31.000000000 +0200
@@ -45,6 +45,8 @@
+ "rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#\n"
+ "<rdf:RDF>\n"
+ "pdfaExtension:http://www.aiim.org/pdfa/ns/extension/\n"
+ + "pdfaProperty:http://www.aiim.org/pdfa/ns/property#\n"
+ + "pdfaSchema:http://www.aiim.org/pdfa/ns/schema#\n"
+ "<rdf:Description rdf:about=\"\">\n"
+ "<xmlns:http://www.aiim.org/pdfa/ns/property#>\n"
+ "<rdf:Bag>\n"
@@ -86,6 +88,8 @@
+ "rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#\n"
+ "<rdf:RDF>\n"
+ "pdfaExtension:http://www.aiim.org/pdfa/ns/extension/\n"
+ + "pdfaProperty:http://www.aiim.org/pdfa/ns/property#\n"
+ + "pdfaSchema:http://www.aiim.org/pdfa/ns/schema#\n"
+ "<rdf:Description rdf:about=\"\">\n"
+ "<xmlns:http://www.aiim.org/pdfa/ns/property#>\n"
+ "<rdf:Bag>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java
2025-04-24 11:27:31.000000000 +0200
@@ -39,6 +39,8 @@
+ "rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#\n"
+ "<rdf:RDF>\n"
+ "pdfaExtension:http://www.aiim.org/pdfa/ns/extension/\n"
+ + "pdfaProperty:http://www.aiim.org/pdfa/ns/property#\n"
+ + "pdfaSchema:http://www.aiim.org/pdfa/ns/schema#\n"
+ "<rdf:Description rdf:about=\"\">\n"
+ "<xmlns:http://www.aiim.org/pdfa/ns/property#>\n"
+ "<prefix1:name1>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionAdapterTest.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionAdapterTest.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionAdapterTest.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionAdapterTest.java
2025-04-24 11:27:31.000000000 +0200
@@ -41,12 +41,13 @@
+ "rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#\n"
+ "<rdf:RDF>\n"
+ "pdfaExtension:http://www.aiim.org/pdfa/ns/extension/\n"
+ + "pdfaProperty:http://www.aiim.org/pdfa/ns/property#\n"
+ + "pdfaSchema:http://www.aiim.org/pdfa/ns/schema#\n"
+ "<rdf:Description rdf:about=\"\">\n"
+ "<pdfaExtension:schemas>\n"
+ "<rdf:Bag>\n"
+ "<rdf:li rdf:parseType=\"Resource\">\n"
+ "<pdfaSchema:schema>\n"
- + "pdfaSchema:http://www.aiim.org/pdfa/ns/schema#\n"
+ "PDF/UA identification schema\n"
+ "</pdfaSchema:schema>\n"
+ "<pdfaSchema:namespaceURI>\n"
@@ -59,7 +60,6 @@
+ "<rdf:Seq>\n"
+ "<rdf:li rdf:parseType=\"Resource\">\n"
+ "<pdfaProperty:name>\n"
- + "pdfaProperty:http://www.aiim.org/pdfa/ns/property#\n"
+ "part\n"
+ "</pdfaProperty:name>\n"
+ "<pdfaProperty:valueType>\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchemaTest.java
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchemaTest.java
---
old/xmlgraphics-commons-2.10/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchemaTest.java
2024-10-01 11:56:44.000000000 +0200
+++
new/xmlgraphics-commons-2.11/src/test/java/org/apache/xmlgraphics/xmp/schemas/pdf/PDFAExtensionXMPSchemaTest.java
2025-04-24 11:27:31.000000000 +0200
@@ -22,6 +22,8 @@
import org.junit.Test;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import org.apache.xmlgraphics.xmp.XMPConstants;
@@ -33,6 +35,15 @@
assertEquals("pdfaExtension", schema.getPreferredPrefix());
assertEquals(XMPConstants.PDF_A_EXTENSION, schema.getNamespace());
+ assertFalse("Must have the namespaces of child properties",
schema.getExtraNamespaces().isEmpty());
+ assertTrue("The prefix must be the key",
schema.getExtraNamespaces().containsKey("pdfaSchema"));
+ assertTrue("The prefix must be the key",
schema.getExtraNamespaces().containsKey("pdfaProperty"));
+
+
+ assertEquals("Namespace must match the correct prefix`",
XMPConstants.PDF_A_SCHEMA,
+ schema.getExtraNamespaces().get("pdfaSchema"));
+ assertEquals("Namespace must match the correct prefix`",
XMPConstants.PDF_A_PROPERTY,
+ schema.getExtraNamespaces().get("pdfaProperty"));
}
}
Binary files old/xmlgraphics-commons-2.10/test/images/ISOcoated_v2_300_bas.icc
and new/xmlgraphics-commons-2.11/test/images/ISOcoated_v2_300_bas.icc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlgraphics-commons-2.10/xmlgraphics-commons-pom-template.pom
new/xmlgraphics-commons-2.11/xmlgraphics-commons-pom-template.pom
--- old/xmlgraphics-commons-2.10/xmlgraphics-commons-pom-template.pom
2024-10-01 11:56:44.000000000 +0200
+++ new/xmlgraphics-commons-2.11/xmlgraphics-commons-pom-template.pom
1970-01-01 01:00:00.000000000 +0100
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!-- $Id$ -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
-http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.xmlgraphics</groupId>
- <artifactId>xmlgraphics-commons</artifactId>
- <packaging>jar</packaging>
- <name>Apache XML Graphics Commons</name>
- <version>@version@</version>
- <url>http://xmlgraphics.apache.org/commons/</url>
- <description>
- Apache XML Graphics Commons is a library that consists of several reusable
- components used by Apache Batik and Apache FOP. Many of these components
- can easily be used separately outside the domains of SVG and XSL-FO.
- </description>
- <inceptionYear>2005</inceptionYear>
- <mailingLists>
- <mailingList>
- <name>XML Graphics General List</name>
- <subscribe>[email protected]</subscribe>
- <unsubscribe>[email protected]</unsubscribe>
-
<archive>http://mail-archives.apache.org/mod_mbox/xmlgraphics-general/</archive>
- </mailingList>
- <mailingList>
- <name>XML Graphics Commit List</name>
- <subscribe>[email protected]</subscribe>
- <unsubscribe>[email protected]</unsubscribe>
-
<archive>http://mail-archives.apache.org/mod_mbox/xmlgraphics-commits/</archive>
- </mailingList>
- </mailingLists>
- <licenses>
- <license>
- <name>The Apache Software License, Version 2.0</name>
- <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
- <scm>
-
<connection>scm:svn:http://svn.apache.org/repos/asf/xmlgraphics/commons/trunk</connection>
-
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/commons/trunk</developerConnection>
-
<url>http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/?root=Apache-SVN</url>
- </scm>
- <organization>
- <name>Apache Software Foundation</name>
- <url>http://www.apache.org/</url>
- </organization>
- <parent>
- <groupId>org.apache</groupId>
- <artifactId>apache</artifactId>
- <version>7</version>
- </parent>
- <dependencies>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.11.0</version>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.0.4</version>
- </dependency>
- </dependencies>
-</project>
++++++ xmlgraphics-commons-build_xml.patch ++++++
--- /var/tmp/diff_new_pack.Kwuw2Z/_old 2026-04-28 14:30:46.035446711 +0200
+++ /var/tmp/diff_new_pack.Kwuw2Z/_new 2026-04-28 14:30:46.043447033 +0200
@@ -1,10 +1,11 @@
---- build.xml 2018-05-14 11:00:43.000000000 +0200
-+++ build.xml 2020-04-03 14:37:25.091265000 +0200
-@@ -251,7 +251,17 @@
+--- build.xml 2026-04-26 15:51:34.598140786 +0200
++++ build.xml 2026-04-26 15:52:59.613219545 +0200
+@@ -261,7 +261,18 @@
<attribute name="Implementation-Title" value="${Name}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Implementation-Vendor" value="The Apache Software
Foundation (http://xmlgraphics.apache.org/)"/>
- <attribute name="Build-Id" value="${ts} (${user.name} [${os.name}
${os.version} ${os.arch}, Java ${java.runtime.version}])"/>
++ <attribute name="Automatic-Module-Name"
value="org.apache.xmlgraphics.commons"/>
+ <attribute name="Bundle-Description" value="${Name}"/>
+ <attribute name="Bundle-DocURL" value="http://www.apache.org/"/>
+ <attribute name="Bundle-License"
value="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
@@ -19,7 +20,7 @@
</manifest>
<metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
</jar>
-@@ -357,20 +367,13 @@
+@@ -396,20 +407,13 @@
</target>
<target name="junit" depends="junit-basic" description="Runs all JUnit
tests" if="junit.present">