diff --git a/.easymock.metadata b/.easymock.metadata
index e237fa2..fc266e9 100644
--- a/.easymock.metadata
+++ b/.easymock.metadata
@@ -1 +1 @@
-360dd15d7f8ef2cc4ca37de7495f272c348f2e2c SOURCES/easymock-4.0.2.tar.gz
+462e4511479560c8c45a1859a8d82576b7d9537a SOURCES/easymock-4.3.tar.gz
diff --git a/.gitignore b/.gitignore
index f8f9ede..1d9b5fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/easymock-4.0.2.tar.gz
+SOURCES/easymock-4.3.tar.gz
diff --git a/SOURCES/generate-tarball.sh b/SOURCES/generate-tarball.sh
index 3d5fe1e..cd9e1f7 100755
--- a/SOURCES/generate-tarball.sh
+++ b/SOURCES/generate-tarball.sh
@@ -9,7 +9,7 @@ wget "https://github.com/${name}/${name}/archive/${name}-${version}.tar.gz" -O "
rm -rf tarball-tmp
mkdir tarball-tmp
-cd tarball-tmp
+pushd tarball-tmp
tar xf "../${name}-${version}.orig.tar.gz"
# CLEAN TARBALL
@@ -18,6 +18,6 @@ find -name '*.class' -delete
# Contains minified js of uncertain origin
rm -r */website
-tar cf "../${name}-${version}.tar.gz" *
-cd ..
+tar -czf "../${name}-${version}.tar.gz" *
+popd
rm -r tarball-tmp "${name}-${version}.orig.tar.gz"
diff --git a/SPECS/easymock.spec b/SPECS/easymock.spec
index 9549f0e..b502b40 100644
--- a/SPECS/easymock.spec
+++ b/SPECS/easymock.spec
@@ -1,36 +1,45 @@
+%bcond_with bootstrap
+
Name: easymock
-Version: 4.0.2
-Release: 2%{?dist}
+Version: 4.3
+Release: 20%{?dist}
Summary: Easy mock objects
-License: ASL 2.0
-URL: http://www.easymock.org
+License: Apache-2.0
+URL: https://www.easymock.org
+BuildArch: noarch
+ExclusiveArch: %{java_arches} noarch
# ./generate-tarball.sh
Source0: %{name}-%{version}.tar.gz
# Remove bundled binaries which cannot be easily verified for licensing
Source1: generate-tarball.sh
-Patch1: 0001-Disable-android-support.patch
-Patch2: 0002-Unshade-cglib-and-asm.patch
-Patch3: 0003-Fix-OSGi-manifest.patch
-Patch4: 0004-Port-to-hamcrest-2.1.patch
-
-BuildArch: noarch
+Patch: 0001-Disable-android-support.patch
+Patch: 0002-Unshade-cglib-and-asm.patch
+Patch: 0003-Fix-OSGi-manifest.patch
+Patch: 0004-Port-to-hamcrest-2.1.patch
+%if %{with bootstrap}
+BuildRequires: javapackages-bootstrap
+%else
BuildRequires: maven-local
BuildRequires: mvn(cglib:cglib)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-remote-resources-plugin)
-BuildRequires: mvn(org.apache.maven.surefire:surefire-junit47)
+BuildRequires: mvn(org.apache.maven.surefire:surefire-junit-platform)
BuildRequires: mvn(org.apache.maven.surefire:surefire-testng)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
+BuildRequires: mvn(org.junit.jupiter:junit-jupiter)
+BuildRequires: mvn(org.junit.vintage:junit-vintage-engine)
BuildRequires: mvn(org.objenesis:objenesis)
BuildRequires: mvn(org.ow2.asm:asm)
BuildRequires: mvn(org.testng:testng)
+%endif
+%if %{without bootstrap}
# xmvn-builddep misses this:
BuildRequires: mvn(org.apache:apache-jar-resource-bundle)
-
+%endif
Provides: %{name}3 = %{version}-%{release}
%description
@@ -40,24 +49,24 @@ of recording expectations, most refactorings will not affect the Mock Objects.
So EasyMock is a perfect fit for Test-Driven Development.
%package javadoc
-Summary: Javadoc for %{name}
+Summary: API documentation for %{name}
%description javadoc
-Javadoc for %{name}.
+API documentation for %{name}.
%prep
-%setup -q -n %{name}-%{name}-%{version}
+%autosetup -p1 -n %{name}-%{name}-%{version}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
%pom_remove_plugin :license-maven-plugin
%pom_remove_plugin :maven-enforcer-plugin
%pom_remove_plugin :animal-sniffer-maven-plugin
%pom_remove_plugin :animal-sniffer-maven-plugin core
+%pom_remove_plugin :maven-gpg-plugin test-testng
+%pom_remove_plugin :maven-gpg-plugin test-java8
+%pom_remove_plugin :maven-gpg-plugin test-junit5
+
# remove android support
rm core/src/main/java/org/easymock/internal/Android*.java
rm core/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java
@@ -84,6 +93,21 @@ rm core/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java
# ssh not needed during our builds
%pom_xpath_remove pom:extensions
+# Force Surefire to run tests with JUnit, not with TestNG
+%pom_xpath_inject "pom:plugin[pom:artifactId='maven-surefire-plugin']" \
+ "none:none" core
+
+# Workaround Java 17 compatibility issue that should be fixed in
+# easymock 4.4: https://github.com/easymock/easymock/issues/274
+%pom_xpath_inject "pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:configuration" \
+ "--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" core
+%pom_xpath_inject "pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:configuration" \
+ "--add-opens=java.base/java.lang=ALL-UNNAMED" test-testng
+%pom_add_plugin :maven-surefire-plugin test-java8 "
+ --add-opens=java.base/java.lang=ALL-UNNAMED"
+%pom_add_plugin :maven-surefire-plugin test-junit5 "
+ --add-opens=java.base/java.lang=ALL-UNNAMED"
+
%build
%mvn_build
@@ -97,15 +121,97 @@ rm core/src/test/java/org/easymock/tests2/ClassExtensionHelperTest.java
%license core/LICENSE.txt
%changelog
+* Fri Nov 29 2024 Mikolaj Izdebski - 4.3-17
+- Update javapackages test plan to f42
+
+* Wed Jul 17 2024 Fedora Release Engineering - 4.3-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Fri May 31 2024 Mikolaj Izdebski - 4.3-9
+- Switch to a newer patch macro syntax
+
+* Tue Feb 27 2024 Jiri Vanek - 4.3-8
+- Rebuilt for java-21-openjdk as system jdk
+
+* Fri Feb 23 2024 Jiri Vanek - 4.3-7
+- bump of release for for java-21-openjdk as system jdk
+
+* Wed Jan 24 2024 Fedora Release Engineering - 4.3-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Jan 19 2024 Fedora Release Engineering - 4.3-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Sep 01 2023 Mikolaj Izdebski - 4.3-4
+- Convert License tag to SPDX format
+
+* Wed Jul 19 2023 Fedora Release Engineering - 4.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Thu Jan 19 2023 Fedora Release Engineering - 4.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Thu Sep 08 2022 Marian Koncek - 4.3-1
+- Update to upstream version 4.3
+
+* Thu Jul 21 2022 Fedora Release Engineering - 4.2-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Sat Feb 05 2022 Jiri Vanek - 4.2-7
+- Rebuilt for java-17-openjdk as system jdk
+
+* Thu Jan 20 2022 Fedora Release Engineering - 4.2-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Tue Nov 02 2021 Mikolaj Izdebski - 4.2-5
+- Workaround build issue with OpenJDK 17
+
+* Wed Jul 21 2021 Fedora Release Engineering - 4.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Mon May 17 2021 Mikolaj Izdebski - 4.2-3
+- Bootstrap build
+- Non-bootstrap build
+
+* Tue Jan 26 2021 Fedora Release Engineering - 4.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Aug 31 2020 Fabio Valentini - 4.2-1
+- Update to version 4.2.
+
+* Mon Jul 27 2020 Fedora Release Engineering - 3.6-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Fri Jul 10 2020 Jiri Vanek - 3.6-6
+- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
+
+* Wed Mar 04 2020 Marian Koncek - 4.2-1
+- Update to upstream version 4.2
+
+* Tue Jan 28 2020 Fedora Release Engineering - 3.6-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Tue Nov 05 2019 Mikolaj Izdebski - 4.0.2-2
- Mass rebuild for javapackages-tools 201902
+* Wed Jul 24 2019 Fedora Release Engineering - 3.6-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Thu Jul 18 2019 Marian Koncek - 4.0.2-1
- Update to upstream version 4.0.2
* Fri May 24 2019 Mikolaj Izdebski - 3.5-5
- Mass rebuild for javapackages-tools 201901
+* Thu Jan 31 2019 Fedora Release Engineering - 3.6-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Nov 30 2018 Mat Booth - 3.6-2
+- Rebuild to fix OSGi dependency on ASM 7
+
+* Mon Oct 8 2018 Mikolaj Izdebski - 3.6-1
+- Update to upstream version 3.6
+
* Tue Jul 31 2018 Michael Simacek - 3.5-4
- Repack the tarball without binaries