commit: b0f49711676a3e81be3554241cd698865c604373 Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net> AuthorDate: Tue May 20 06:07:23 2025 +0000 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> CommitDate: Sun Oct 19 18:12:01 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0f49711
dev-java/jackson-databind: add 2.20.0 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net> Part-of: https://github.com/gentoo/gentoo/pull/44063 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org> dev-java/jackson-databind/Manifest | 2 + ...atabind-2.20.0-JDKStringLikeTypeDeserTest.patch | 37 ++++++++++ ...-databind-2.20.0-JDKTypeSerializationTest.patch | 42 ++++++++++++ ...bind-2.20.0-NoClassDefFoundWorkaroundTest.patch | 60 +++++++++++++++++ .../jackson-databind-2.20.0.ebuild | 78 ++++++++++++++++++++++ 5 files changed, 219 insertions(+) diff --git a/dev-java/jackson-databind/Manifest b/dev-java/jackson-databind/Manifest index 34113ea0eb6d..6df936920404 100644 --- a/dev-java/jackson-databind/Manifest +++ b/dev-java/jackson-databind/Manifest @@ -1 +1,3 @@ DIST jackson-databind-2.13.4.1.tar.gz 48063423 BLAKE2B 88370810068f3c1b3973f310e55e6fb53067ff9796de960d2c57cd50ee59dd552f58b4e73d4455076b18ec996ce7714ab84000a4887a1779fcf259859c891346 SHA512 22b7a4225903a0fad3d7d17a5fad79905da96a4a7ebf70b7d9f2c778e88f8c9c2a27d96f66beae96f189ebcd9ca19fd7b12405009ae38023ec8b0511e1ba1af2 +DIST jackson-databind-2.20.0.tar.gz 1744001 BLAKE2B 3167541356510eba3b2573b0df3e8f03a4798f78ba03f93b038bc63c746419a8d2ba4a765686de24b0c1de83c2d0560159835a4c2b4fb4d4e9b6b9613b051ce2 SHA512 d6c25efac9084809b9c6406a629e3b526ddbdcbb0b1b5dd8736711cb899718bd7bb54f38b300deeca009c6d1acebb1d7e6a13144d3755d4b8ae5d63695a69eff +DIST jsr-275-0.9.1.jar 238820 BLAKE2B 6e49815d4806fb4f7f85ccefd05cdbcef77bf309ed0a538d06ef5138d5f456901d3e4099aee9d8a6b18e40b75728fbc5218130d54e50ff6e2728223487172796 SHA512 58c8c4a98145ea4eaeffe070c592c3dde2cc0987d3aa99555509c04566d2fd356eb6bc5f484fe922eb61c875de359f9aff027f76ac9cc20b196d7fd954406c70 diff --git a/dev-java/jackson-databind/files/jackson-databind-2.20.0-JDKStringLikeTypeDeserTest.patch b/dev-java/jackson-databind/files/jackson-databind-2.20.0-JDKStringLikeTypeDeserTest.patch new file mode 100644 index 000000000000..8f95f28f0bb2 --- /dev/null +++ b/dev-java/jackson-databind/files/jackson-databind-2.20.0-JDKStringLikeTypeDeserTest.patch @@ -0,0 +1,37 @@ +testInetAddress() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.deser.jdk.JDKStringLikeTypeDeserTest]/[method:testInetAddress()] + parent: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.deser.jdk.JDKStringLikeTypeDeserTest] + source: MethodSource [className = 'com.fasterxml.jackson.databind.deser.jdk.JDKStringLikeTypeDeserTest', methodName = 'testInetAddress', methodParameterTypes = ''] + caught: com.fasterxml.jackson.databind.JsonMappingException: Unexpected IOException (of type java.net.UnknownHostException): google.com: Temporary failure in name resolution + at com.fasterxml.jackson.databind.JsonMappingException.fromUnexpectedIOE(JsonMappingException.java:344) + at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3958) + at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3922) + at com.fasterxml.jackson.databind.deser.jdk.JDKStringLikeTypeDeserTest.testInetAddress(JDKStringLikeTypeDeserTest.java:178) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + duration: 13 ms + status: ✘ FAILED + +diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/JDKStringLikeTypeDeserTest.java b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/JDKStringLikeTypeDeserTest.java +index 8fe9ca9..56ac9a9 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/deser/jdk/JDKStringLikeTypeDeserTest.java ++++ b/src/test/java/com/fasterxml/jackson/databind/deser/jdk/JDKStringLikeTypeDeserTest.java +@@ -10,6 +10,7 @@ import java.util.UUID; + import java.util.regex.Pattern; + + import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.Disabled; + + import com.fasterxml.jackson.annotation.*; + +@@ -167,7 +168,7 @@ public class JDKStringLikeTypeDeserTest + assertEquals("abc", cs.toString()); + } + +- @Test ++ @Test @Disabled + public void testInetAddress() throws IOException + { + InetAddress address = MAPPER.readValue(q("127.0.0.1"), InetAddress.class); diff --git a/dev-java/jackson-databind/files/jackson-databind-2.20.0-JDKTypeSerializationTest.patch b/dev-java/jackson-databind/files/jackson-databind-2.20.0-JDKTypeSerializationTest.patch new file mode 100644 index 000000000000..5942fdc9c7e0 --- /dev/null +++ b/dev-java/jackson-databind/files/jackson-databind-2.20.0-JDKTypeSerializationTest.patch @@ -0,0 +1,42 @@ +testInetAddress() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.ser.jdk.JDKTypeSerializationTest]/[method:testInetAddress()] + parent: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.ser.jdk.JDKTypeSerializationTest] + source: MethodSource [className = 'com.fasterxml.jackson.databind.ser.jdk.JDKTypeSerializationTest', methodName = 'testInetAddress', methodParameterTypes = ''] + caught: java.net.UnknownHostException: google.com: Temporary failure in name resolution + at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) + at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52) + at java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1134) + at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1712) + at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060) + at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1702) + at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1582) + at java.base/java.net.InetAddress.getByName(InetAddress.java:1492) + at com.fasterxml.jackson.databind.ser.jdk.JDKTypeSerializationTest.testInetAddress(JDKTypeSerializationTest.java:111) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + duration: 11 ms + status: ✘ FAILED + +diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/jdk/JDKTypeSerializationTest.java b/src/test/java/com/fasterxml/jackson/databind/ser/jdk/JDKTypeSerializationTest.java +index c41228d..3907623 100644 +--- a/src/test/java/com/fasterxml/jackson/databind/ser/jdk/JDKTypeSerializationTest.java ++++ b/src/test/java/com/fasterxml/jackson/databind/ser/jdk/JDKTypeSerializationTest.java +@@ -10,6 +10,7 @@ import java.util.*; + import java.util.regex.Pattern; + + import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.Disabled; + + import com.fasterxml.jackson.annotation.JsonFormat; + +@@ -104,7 +105,7 @@ public class JDKTypeSerializationTest + assertEquals(q(""), MAPPER.writeValueAsString(Locale.ROOT)); + } + +- @Test ++ @Test @Disabled + public void testInetAddress() throws IOException + { + assertEquals(q("127.0.0.1"), MAPPER.writeValueAsString(InetAddress.getByName("127.0.0.1"))); diff --git a/dev-java/jackson-databind/files/jackson-databind-2.20.0-NoClassDefFoundWorkaroundTest.patch b/dev-java/jackson-databind/files/jackson-databind-2.20.0-NoClassDefFoundWorkaroundTest.patch new file mode 100644 index 000000000000..154bd5ddeb5b --- /dev/null +++ b/dev-java/jackson-databind/files/jackson-databind-2.20.0-NoClassDefFoundWorkaroundTest.patch @@ -0,0 +1,60 @@ +testClassIsMissing() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest]/[method:testClassIsMissing()] + parent: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest] + source: MethodSource [className = 'com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest', methodName = 'testClassIsMissing', methodParameterTypes = ''] + caught: org.opentest4j.AssertionFailedError: Should not have found javax.measure.Measure + at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38) + at org.junit.jupiter.api.Assertions.fail(Assertions.java:138) + at com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest.testClassIsMissing(NoClassDefFoundWorkaroundTest.java:29) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + duration: 19 ms + status: ✘ FAILED +testUseMissingClass() + tags: [] + uniqueId: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest]/[method:testUseMissingClass()] + parent: [engine:junit-jupiter]/[class:com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest] + source: MethodSource [className = 'com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest', methodName = 'testUseMissingClass', methodParameterTypes = ''] + caught: org.opentest4j.AssertionFailedError: cannot instantiate a missing class ==> expected: <true> but was: <false> + at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) + at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132) + at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63) + at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36) + at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:214) + at com.fasterxml.jackson.databind.introspect.NoClassDefFoundWorkaroundTest.testUseMissingClass(NoClassDefFoundWorkaroundTest.java:53) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1604) + duration: 5 ms + status: ✘ FAILED + +--- a/src/test/java/com/fasterxml/jackson/databind/introspect/NoClassDefFoundWorkaroundTest.java ++++ b/src/test/java/com/fasterxml/jackson/databind/introspect/NoClassDefFoundWorkaroundTest.java +@@ -4,6 +4,7 @@ import java.util.List; + + import javax.measure.Measure; + import org.junit.jupiter.api.Test; ++import org.junit.jupiter.api.Disabled; + + import com.fasterxml.jackson.databind.ObjectMapper; + import com.fasterxml.jackson.databind.testutil.DatabindTestUtil; +@@ -21,7 +22,7 @@ public class NoClassDefFoundWorkaroundTest extends DatabindTestUtil + public Measure<?> measure; + } + +- @Test ++ @Test @Disabled + public void testClassIsMissing() + { + try { +@@ -40,7 +41,7 @@ public class NoClassDefFoundWorkaroundTest extends DatabindTestUtil + assertNotNull(result); + } + +- @Test ++ @Test @Disabled + public void testUseMissingClass() throws Exception + { + boolean missing = false; diff --git a/dev-java/jackson-databind/jackson-databind-2.20.0.ebuild b/dev-java/jackson-databind/jackson-databind-2.20.0.ebuild new file mode 100644 index 000000000000..fbc174314608 --- /dev/null +++ b/dev-java/jackson-databind/jackson-databind-2.20.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-jupiter" + +inherit java-pkg-2 java-pkg-simple junit5 + +JMV="0.9.1" +DESCRIPTION="General data-binding functionality for Jackson: works on core streaming API" +HOMEPAGE="https://github.com/FasterXML/jackson-databind" +SRC_URI="https://github.com/FasterXML/${PN}/archive/${P}.tar.gz + test? ( https://repo1.maven.org/maven2/javax/measure/jsr-275/${JMV}/jsr-275-${JMV}.jar )" +S="${WORKDIR}/${PN}-${P}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" + +CP_DEPEND=" + ~dev-java/jackson-annotations-$(ver_cut 1-2):0 + ~dev-java/jackson-core-${PV}:0 +" + +DEPEND=" + ${CP_DEPEND} + || ( virtual/jdk:25 virtual/jdk:21 virtual/jdk:17 virtual/jdk:11 ) + test? ( + >=dev-java/asm-9.8-r1:0 + >=dev-java/assertj-core-3.27.6:0 + dev-java/fastdoubleparser:0 + >=dev-java/guava-testlib-33.5.0:0 + >=dev-java/jol-core-0.17:0 + dev-java/junit:5[suite] + >=dev-java/mockito-5.20.0:0 + ) +" + +RDEPEND=" + ${CP_DEPEND} + >=virtual/jre-1.8:* +" + +DOCS=( {README,SECURITY}.md release-notes/{CREDITS,VERSION}-2.x ) +PATCHES=( + "${FILESDIR}/jackson-databind-2.20.0-NoClassDefFoundWorkaroundTest.patch" + "${FILESDIR}/jackson-databind-2.20.0-JDKStringLikeTypeDeserTest.patch" + "${FILESDIR}/jackson-databind-2.20.0-JDKTypeSerializationTest.patch" +) + +JAVA_GENTOO_CLASSPATH_EXTRA=( "${DISTDIR}/jsr-275-${JMV}.jar" ) +JAVA_INTERMEDIATE_JAR_NAME="com.fasterxml.jackson.databind" +JAVA_RELEASE_SRC_DIRS=( ["9"]="src/moditect" ) +JAVA_RESOURCE_DIRS="src/main/resources" +JAVA_SRC_DIR="src/main/java" +JAVA_TEST_EXTRA_ARGS=( -Djdk.attach.allowAttachSelf -Djol.magicFieldOffset=true ) +JAVA_TEST_GENTOO_CLASSPATH="asm assertj-core fastdoubleparser guava-testlib jol-core mockito" +JAVA_TEST_SRC_DIR="src/test/java" +JAVA_TEST_RESOURCE_DIRS="src/test/resources" + +src_prepare() { + default # bug #780585 + java-pkg-2_src_prepare + + sed -e 's:@package@:com.fasterxml.jackson.databind.cfg:g' \ + -e "s:@projectversion@:${PV}:g" \ + -e 's:@projectgroupid@:com.fasterxml.jackson.core:g' \ + -e "s:@projectartifactid@:${PN}:g" \ + "${JAVA_SRC_DIR}/com/fasterxml/jackson/databind/cfg/PackageVersion.java.in" \ + > "${JAVA_SRC_DIR}/com/fasterxml/jackson/databind/cfg/PackageVersion.java" || die + + local vm_version="$(java-config -g PROVIDES_VERSION)" + if ver_test "${vm_version}" -ge 17; then + JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.{lang,util}=ALL-UNNAMED ) + fi +}
