From bbe95508d1f4d003f9b95098ed117e19f1d50ae2 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Tue, 8 Jun 2021 20:17:56 +0200 Subject: [PATCH] Bootstrap Maven as non-modular packages Resolves: rhbz#1951482 --- .gitignore | 3 + ...ove-test-dependency-on-JUnit-Pioneer.patch | 255 ++++++++++++++++++ apache-commons-lang3.spec | 96 ++++--- sources | 2 +- 4 files changed, 325 insertions(+), 31 deletions(-) create mode 100644 0001-Remove-test-dependency-on-JUnit-Pioneer.patch diff --git a/.gitignore b/.gitignore index 5cfcf57..1281a95 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,7 @@ /commons-lang3-3.6-src.tar.gz /commons-lang3-3.7-src.tar.gz /commons-lang3-3.8.1-src.tar.gz +/commons-lang3-3.9-src.tar.gz +/commons-lang3-3.10-src.tar.gz /commons-lang3-3.11-src.tar.gz +/commons-lang3-3.12.0-src.tar.gz diff --git a/0001-Remove-test-dependency-on-JUnit-Pioneer.patch b/0001-Remove-test-dependency-on-JUnit-Pioneer.patch new file mode 100644 index 0000000..9492ec0 --- /dev/null +++ b/0001-Remove-test-dependency-on-JUnit-Pioneer.patch @@ -0,0 +1,255 @@ +From 98753efcb2ff4d531a1eca08ded5c227ae6149b6 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Thu, 11 Mar 2021 13:14:20 +0100 +Subject: [PATCH] Remove test dependency on JUnit Pioneer + +sed -i '/org.junit-pioneer/,//d' pom.xml + +sed -i '/^import org.junitpioneer/ d + /@Default\(Locale\|TimeZone\)([^)]*)/ { + h + d + } + /@Test/ { + x + s/\( *\)..*/\1@org.junit.jupiter.api.Disabled("JUnit Pioneer not available")/ + /./p + s/.*// + x + }' $(grep org.junitpioneer -rl src/test/java/) +--- + pom.xml | 6 ------ + .../commons/lang3/StringUtilsContainsTest.java | 3 +-- + .../commons/lang3/time/DateFormatUtilsTest.java | 6 ++---- + .../apache/commons/lang3/time/DateUtilsTest.java | 11 +++++------ + .../commons/lang3/time/FastDateFormatTest.java | 14 +++++--------- + .../commons/lang3/time/FastDatePrinterTest.java | 10 +++------- + 6 files changed, 16 insertions(+), 34 deletions(-) + +diff --git a/pom.xml b/pom.xml +index 167a85a47..d08c66336 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -533,12 +533,6 @@ + junit-jupiter + test + +- +- org.junit-pioneer +- junit-pioneer +- 1.3.0 +- test +- + + org.hamcrest + hamcrest +diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsContainsTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsContainsTest.java +index 6ef2732a1..2e9d44f55 100644 +--- a/src/test/java/org/apache/commons/lang3/StringUtilsContainsTest.java ++++ b/src/test/java/org/apache/commons/lang3/StringUtilsContainsTest.java +@@ -23,7 +23,6 @@ + import java.util.Locale; + + import org.junit.jupiter.api.Test; +-import org.junitpioneer.jupiter.DefaultLocale; + + /** + * Unit tests {@link org.apache.commons.lang3.StringUtils} - Contains methods +@@ -248,7 +247,7 @@ public void testContainsAny_StringWithSupplementaryChars() { + assertFalse(StringUtils.containsAny(CharU20001, CharU20000)); + } + +- @DefaultLocale(language = "de", country = "DE") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testContainsIgnoreCase_LocaleIndependence() { + final Locale[] locales = { Locale.ENGLISH, new Locale("tr"), Locale.getDefault() }; +diff --git a/src/test/java/org/apache/commons/lang3/time/DateFormatUtilsTest.java b/src/test/java/org/apache/commons/lang3/time/DateFormatUtilsTest.java +index cff1aac5e..515650a98 100644 +--- a/src/test/java/org/apache/commons/lang3/time/DateFormatUtilsTest.java ++++ b/src/test/java/org/apache/commons/lang3/time/DateFormatUtilsTest.java +@@ -30,8 +30,6 @@ + import java.util.TimeZone; + + import org.junit.jupiter.api.Test; +-import org.junitpioneer.jupiter.DefaultLocale; +-import org.junitpioneer.jupiter.DefaultTimeZone; + + /** + * TestCase for DateFormatUtils. +@@ -153,7 +151,7 @@ public void testLANG1000() throws Exception { + DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.parse(date); + } + +- @DefaultTimeZone("UTC") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testLang530() throws ParseException { + final Date d = new Date(); +@@ -205,7 +203,7 @@ public void testLang916() { + } + } + +- @DefaultLocale(language = "en") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testSMTP() { + TimeZone timeZone = TimeZone.getTimeZone("GMT-3"); +diff --git a/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java b/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java +index dd6025dce..00a97010e 100644 +--- a/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java ++++ b/src/test/java/org/apache/commons/lang3/time/DateUtilsTest.java +@@ -39,7 +39,6 @@ + import org.junit.jupiter.api.BeforeAll; + import org.junit.jupiter.api.BeforeEach; + import org.junit.jupiter.api.Test; +-import org.junitpioneer.jupiter.DefaultLocale; + + /** + * Unit tests {@link org.apache.commons.lang3.time.DateUtils}. +@@ -795,13 +794,13 @@ public void testLANG799() throws ParseException { + } + + // Parse English date with German Locale +- @DefaultLocale(language = "de") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testLANG799_DE_FAIL() { + assertThrows(ParseException.class, () -> DateUtils.parseDate("Wed, 09 Apr 2008 23:55:38 GMT", "EEE, dd MMM yyyy HH:mm:ss zzz")); + } + +- @DefaultLocale(language = "de") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testLANG799_DE_OK() throws ParseException { + DateUtils.parseDate("Mi, 09 Apr 2008 23:55:38 GMT", "EEE, dd MMM yyyy HH:mm:ss zzz"); +@@ -809,13 +808,13 @@ public void testLANG799_DE_OK() throws ParseException { + } + + // Parse German date with English Locale +- @DefaultLocale(language = "en") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testLANG799_EN_FAIL() { + assertThrows(ParseException.class, () -> DateUtils.parseDate("Mi, 09 Apr 2008 23:55:38 GMT", "EEE, dd MMM yyyy HH:mm:ss zzz")); + } + +- @DefaultLocale(language = "en") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testLANG799_EN_OK() throws ParseException { + DateUtils.parseDate("Wed, 09 Apr 2008 23:55:38 GMT", "EEE, dd MMM yyyy HH:mm:ss zzz"); +@@ -823,7 +822,7 @@ public void testLANG799_EN_OK() throws ParseException { + } + + // Parse German date with English Locale, specifying German Locale override +- @DefaultLocale(language = "en") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testLANG799_EN_WITH_DE_LOCALE() throws ParseException { + DateUtils.parseDate("Mi, 09 Apr 2008 23:55:38 GMT", Locale.GERMAN, "EEE, dd MMM yyyy HH:mm:ss zzz"); +diff --git a/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java b/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java +index b945d1748..fcf41956d 100644 +--- a/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java ++++ b/src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java +@@ -36,8 +36,6 @@ + import java.util.concurrent.atomic.AtomicLongArray; + + import org.junit.jupiter.api.Test; +-import org.junitpioneer.jupiter.DefaultLocale; +-import org.junitpioneer.jupiter.DefaultTimeZone; + + /** + * Unit tests {@link org.apache.commons.lang3.time.FastDateFormat}. +@@ -92,7 +90,7 @@ private AtomicLongArray measureTime(final Format printer, final Format parser) t + return totalElapsed; + } + +- @DefaultLocale(language = "en", country = "US") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void test_changeDefault_Locale_DateInstance() { + final FastDateFormat format1 = FastDateFormat.getDateInstance(FastDateFormat.FULL, Locale.GERMANY); +@@ -107,7 +105,7 @@ public void test_changeDefault_Locale_DateInstance() { + assertNotSame(format2, format3); + } + +- @DefaultLocale(language = "en", country = "US") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void test_changeDefault_Locale_DateTimeInstance() { + final FastDateFormat format1 = FastDateFormat.getDateTimeInstance(FastDateFormat.FULL, FastDateFormat.FULL, Locale.GERMANY); +@@ -147,7 +145,7 @@ public void test_getInstance_String() { + assertEquals(TimeZone.getDefault(), format2.getTimeZone()); + } + +- @DefaultLocale(language = "en", country = "US") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void test_getInstance_String_Locale() { + final FastDateFormat format1 = FastDateFormat.getInstance("MM/DD/yyyy", Locale.GERMANY); +@@ -159,8 +157,7 @@ public void test_getInstance_String_Locale() { + assertEquals(Locale.GERMANY, format1.getLocale()); + } + +- @DefaultLocale(language = "en", country = "US") +- @DefaultTimeZone("America/New_York") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void test_getInstance_String_TimeZone() { + +@@ -180,8 +177,7 @@ public void test_getInstance_String_TimeZone() { + assertNotSame(format4, format6); + } + +- @DefaultLocale(language = "en", country = "US") +- @DefaultTimeZone("America/New_York") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void test_getInstance_String_TimeZone_Locale() { + final FastDateFormat format1 = FastDateFormat.getInstance("MM/DD/yyyy", +diff --git a/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java b/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java +index f3511a51e..d4de29113 100644 +--- a/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java ++++ b/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java +@@ -32,8 +32,6 @@ + + import org.apache.commons.lang3.SerializationUtils; + import org.junit.jupiter.api.Test; +-import org.junitpioneer.jupiter.DefaultLocale; +-import org.junitpioneer.jupiter.DefaultTimeZone; + + /** + * Unit tests {@link org.apache.commons.lang3.time.FastDatePrinter}. +@@ -166,8 +164,7 @@ public void testEquals() { + assertNotEquals(printer1, new Object()); + } + +- @DefaultLocale(language = "en", country = "US") +- @DefaultTimeZone("America/New_York") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testFormat() { + final GregorianCalendar cal1 = new GregorianCalendar(2003, 0, 10, 15, 33, 20); +@@ -407,7 +404,7 @@ public void testStringBufferOptions() { + assertEquals(expected, format.format(epoch, sb).toString()); + } + +- @DefaultTimeZone("UTC") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testTimeZoneAsZ() { + final Calendar c = Calendar.getInstance(FastTimeZone.getGmtTimeZone()); +@@ -433,8 +430,7 @@ public void testToStringContainsName() { + assertTrue(printer.toString().startsWith("FastDate")); + } + +- @DefaultLocale(language = "en", country = "US") +- @DefaultTimeZone("America/New_York") ++ @org.junit.jupiter.api.Disabled("JUnit Pioneer not available") + @Test + public void testWeekYear() { + final GregorianCalendar cal = new GregorianCalendar(2020, 12, 31, 0, 0, 0); +-- +2.29.2 + diff --git a/apache-commons-lang3.spec b/apache-commons-lang3.spec index e67a1ed..0616bb6 100644 --- a/apache-commons-lang3.spec +++ b/apache-commons-lang3.spec @@ -1,21 +1,33 @@ -%global srcname commons-lang3 +# Workaround for rhbz#1969370: __bootstrap macro is not defined in +# CentOS Stream, See https://bugzilla.redhat.com/1969370 +%global __bootstrap ~bootstrap + +%bcond_without bootstrap Name: apache-commons-lang3 -Version: 3.11 +Version: 3.12.0 Release: 3%{?dist} Summary: Provides a host of helper utilities for the java.lang API License: ASL 2.0 - URL: https://commons.apache.org/lang -Source0: https://archive.apache.org/dist/commons/lang/source/%{srcname}-%{version}-src.tar.gz - BuildArch: noarch -BuildRequires: maven-local +Source0: https://archive.apache.org/dist/commons/lang/source/commons-lang3-%{version}-src.tar.gz +Patch1: 0001-Remove-test-dependency-on-JUnit-Pioneer.patch + +BuildRequires: maven-local-openjdk8 +%if %{with bootstrap} +BuildRequires: javapackages-bootstrap +%else BuildRequires: mvn(biz.aQute.bnd:biz.aQute.bndlib) +BuildRequires: mvn(com.google.code.findbugs:jsr305) BuildRequires: mvn(org.apache.commons:commons-parent:pom:) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) +BuildRequires: mvn(org.easymock:easymock) +BuildRequires: mvn(org.hamcrest:hamcrest) +BuildRequires: mvn(org.junit.jupiter:junit-jupiter) +%endif %description The standard Java libraries fail to provide enough methods for @@ -34,47 +46,54 @@ therefore created differently named artifact and jar files. This is the new version, while apache-commons-lang is the compatibility package. - -%package javadoc -Summary: Javadoc for %{name} - -%description javadoc -API documentation for %{name}. - +%{?javadoc_package} %prep -%autosetup -n %{srcname}-%{version}-src +%setup -n commons-lang3-%{version}-src + +%patch1 -p1 -# remove unnecessary maven plugins %pom_remove_plugin :maven-javadoc-plugin +%pom_remove_dep org.openjdk.jmh:jmh-core +%pom_remove_dep org.openjdk.jmh:jmh-generator-annprocess +%pom_remove_dep :junit-bom %mvn_file : %{name} commons-lang3 +# testParseSync() test fails on ARM and PPC64LE for unknown reason +sed -i 's/\s*public void testParseSync().*/@org.junit.jupiter.api.Disabled\n&/' \ + src/test/java/org/apache/commons/lang3/time/FastDateFormatTest.java + +# non-deterministic tests fail randomly +rm src/test/java/org/apache/commons/lang3/RandomStringUtilsTest.java + +# Missing dependencies +rm src/test/java/org/apache/commons/lang3/HashSetvBitSetTest.java + +# Remove limits and Java 11 options +sed -i '//d' pom.xml %build -# test dependencies are not all packaged for fedora: -# - org.easymock:easymock 4.2 -# - org.junit-pioneer:junit-pioneer -# - org.openjdk.jmh:jmh-core -# - org.openjdk.jmh:jmh-generator-annprocess -%mvn_build -f - +# See "-DcommonsLang3Version" in maven-surefire for the tested version +%mvn_build %install %mvn_install - %files -f .mfiles %license LICENSE.txt NOTICE.txt %doc RELEASE-NOTES.txt -%files javadoc -f .mfiles-javadoc -%license LICENSE.txt NOTICE.txt - - %changelog -* Thu Apr 15 2021 Mohan Boddu - 3.11-3 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Tue Jun 08 2021 Mikolaj Izdebski - 3.12.0-3 +- Bootstrap Maven for CentOS Stream 9 + +* Mon May 17 2021 Mikolaj Izdebski - 3.12.0-2 +- Bootstrap build +- Non-bootstrap build + +* Wed Mar 10 2021 Mikolaj Izdebski - 3.12.0-1 +- Update to upstream version 3.12.0 * Tue Jan 26 2021 Fedora Release Engineering - 3.11-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild @@ -83,18 +102,36 @@ API documentation for %{name}. - Update to version 3.11. - Fixes RHBZ#1699692 +* Tue Aug 04 2020 Marian Koncek - 3.11-1 +- Update to upstream version 3.11 + * Mon Jul 27 2020 Fedora Release Engineering - 3.8.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Fri Jul 10 2020 Jiri Vanek - 3.8.1-6 - Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 +* Wed Apr 15 2020 Marian Koncek - 3.10-1 +- Update to upstream version 3.10 + * Tue Jan 28 2020 Fedora Release Engineering - 3.8.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +* Sat Jan 25 2020 Mikolaj Izdebski - 3.9-4 +- Build with OpenJDK 8 + +* Tue Nov 05 2019 Mikolaj Izdebski - 3.9-3 +- Mass rebuild for javapackages-tools 201902 + * Wed Jul 24 2019 Fedora Release Engineering - 3.8.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild +* Fri May 24 2019 Mikolaj Izdebski - 3.9-2 +- Mass rebuild for javapackages-tools 201901 + +* Mon May 13 2019 Mikolaj Izdebski - 3.9-1 +- Update to upstream version 3.9 + * Thu Jan 31 2019 Fedora Release Engineering - 3.8.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild @@ -206,4 +243,3 @@ API documentation for %{name}. * Thu Nov 3 2011 Stanislav Ochotnicky - 3.0.1-1 - Initial version of the package - diff --git a/sources b/sources index 99ba852..1233e7b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (commons-lang3-3.11-src.tar.gz) = ebcb13e47c24e6984835d9d6904fe33077aa3ba781cd61db109fa7005517e4e74cf086c4789a1d65cf3d6c4924b32337c98827a75f91aab908d8e8b9d3b92087 +SHA512 (commons-lang3-3.12.0-src.tar.gz) = 80d1b960ae0b02859be329ea60d68cef33f3c7be7ec19752b3c9cfef442adef480878317ce2cfa309a27e662e2c72cab22023eaa3702e27970a1e5d55ca43f57