diff --git a/.gitignore b/.gitignore
index 57f808a..b354dd3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/jmock-2.5.1-clean-src-svn.tar.gz
/2.8.1.tar.gz
/2.8.2.tar.gz
+/jmock-2.12.0.tar.gz
diff --git a/jmock.spec b/jmock.spec
index 1faa9b9..6f2a481 100644
--- a/jmock.spec
+++ b/jmock.spec
@@ -1,26 +1,35 @@
-%global namedreltag %{nil}
-%global namedversion %{version}%{?namedreltag}
+Name: jmock
+Version: 2.12.0
+Release: 1%{?dist}
+Summary: Java library for testing code with mock objects
+License: BSD
-Name: jmock
-Version: 2.8.2
-Release: 13%{?dist}
-Summary: Java library for testing code with mock objects
-License: BSD
-Url: http://www.jmock.org/
-Source0: https://github.com/jmock-developers/jmock-library/archive/%{namedversion}.tar.gz
+URL: http://www.jmock.org/
+Source0: https://github.com/jmock-developers/jmock-library/archive/%{version}/%{name}-%{version}.tar.gz
+
+BuildArch: noarch
BuildRequires: maven-local
BuildRequires: mvn(cglib:cglib)
+BuildRequires: mvn(com.google.auto.service:auto-service)
+BuildRequires: mvn(com.google.code.findbugs:jsr305)
+BuildRequires: mvn(javax.xml.ws:jaxws-api)
BuildRequires: mvn(junit:junit)
+BuildRequires: mvn(net.bytebuddy:byte-buddy)
+BuildRequires: mvn(org.apache-extras.beanshell:bsh)
BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
-BuildRequires: mvn(org.beanshell:bsh)
BuildRequires: mvn(org.codehaus.mojo:exec-maven-plugin)
+BuildRequires: mvn(org.hamcrest:hamcrest)
BuildRequires: mvn(org.hamcrest:hamcrest-library)
+BuildRequires: mvn(org.junit.jupiter:junit-jupiter-api)
+BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine)
+BuildRequires: mvn(org.junit.jupiter:junit-jupiter-params)
+BuildRequires: mvn(org.junit.platform:junit-platform-launcher)
BuildRequires: mvn(org.objenesis:objenesis)
BuildRequires: mvn(org.ow2.asm:asm)
-
-BuildArch: noarch
+# required for some unit tests
+BuildRequires: mvn(org.apache.maven.surefire:surefire-junit-platform)
%description
Mock objects help you design and test the interactions between the objects in
@@ -34,106 +43,124 @@ The jMock library:
* plugs into your favorite test framework
* is easy to extend.
+
%package example
-Summary: jMock Examples
+Summary: jMock Examples
%description example
jMock Examples.
+
+%package imposters
+Summary: jMock imposters
+
+%description imposters
+jMock imposters.
+
+
%package junit3
-Summary: jMock JUnit 3 Integration
+Summary: jMock JUnit 3 Integration
%description junit3
jMock JUnit 3 Integration.
+
%package junit4
-Summary: jMock JUnit 4 Integration
+Summary: jMock JUnit 4 Integration
%description junit4
jMock JUnit 4 Integration.
+
+%package junit5
+Summary: jMock JUnit 5 Integration
+
+%description junit5
+jMock JUnit 5 Integration.
+
+
%package legacy
-Summary: jMock Legacy Plugins
+Summary: jMock Legacy Plugins
%description legacy
Plugins that make it easier to use jMock with legacy code.
+
%package parent
-Summary: jMock Parent POM
+Summary: jMock Parent POM
%description parent
jMock Parent POM.
+
%package testjar
-Summary: jMock Test Jar
+Summary: jMock Test Jar
%description testjar
Source for JAR files used in jMock Core tests.
+
%package javadoc
-Summary: Javadoc for %{name}
+Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
+
%prep
-%setup -q -n %{name}-library-%{namedversion}
+%setup -q -n %{name}-library-%{version}
# remove unnecessary dependency on parent POM
%pom_remove_parent
-%pom_remove_plugin :nexus-staging-maven-plugin
+# remove maven plugins that are not required for RPM builds
+%pom_remove_plugin :maven-enforcer-plugin
%pom_remove_plugin :maven-javadoc-plugin
%pom_remove_plugin :maven-source-plugin
-
+%pom_remove_plugin :nexus-staging-maven-plugin
+%pom_remove_plugin -r :versions-maven-plugin
%pom_remove_plugin :maven-gpg-plugin testjar
-%pom_change_dep cglib: :cglib
-%pom_change_dep cglib: :cglib %{name}
+# use correct maven artifact for @javax.annotations.Nullable
+%pom_change_dep com.google.code.findbugs:annotations com.google.code.findbugs:jsr305 testjar
-sed -i "s|%classpath|$(build-classpath objectweb-asm/asm)|" %{name}/pom.xml
+# don't install imposters-tests package
+%mvn_package org.jmock:jmock-imposters-tests __noinstall
-%pom_xpath_remove pom:build %{name}-example
-%pom_xpath_inject "pom:project" "
-
- src/main
-" %{name}-example
-# package org.jmock.integration.junit{3,4} do not exist
-%pom_add_dep org.%{name}:%{name}-junit3:'${project.version}' %{name}-example
-%pom_add_dep org.%{name}:%{name}-junit4:'${project.version}' %{name}-example
-
-%mvn_alias org.%{name}:%{name} :%{name}-script
-%mvn_package org.%{name}:%{name}::tests: %{name}
-%mvn_package org.%{name}:%{name}-junit3::tests: %{name}-junit3
-# AssertionError: Expected: (null or an empty string) but: was "the Mockery is not thread-safe: use a Synchroniser to ensure thread safety"
-rm jmock-legacy/src/test/java/org/jmock/test/acceptance/MockeryFinalizationAcceptanceTests.java
%build
-# Skip tests because EE API removed from Java 11 "java.xml.ws" is not available in Fedora
-%mvn_build -s -f
+%mvn_build -s
+
%install
%mvn_install
-%files -f .mfiles-%{name}
+
+%files -f .mfiles-%{name}
%doc README*
%license LICENSE.txt
-%files example -f .mfiles-%{name}-example
-%files junit3 -f .mfiles-%{name}-junit3
-%files junit4 -f .mfiles-%{name}-junit4
-%files legacy -f .mfiles-%{name}-legacy
+%files example -f .mfiles-%{name}-example
+%files imposters -f .mfiles-%{name}-imposters
+%files junit3 -f .mfiles-%{name}-junit3
+%files junit4 -f .mfiles-%{name}-junit4
+%files junit5 -f .mfiles-%{name}-junit5
+%files legacy -f .mfiles-%{name}-legacy
-%files parent -f .mfiles-%{name}-parent
+%files parent -f .mfiles-%{name}-parent
%license LICENSE.txt
-%files testjar -f .mfiles-%{name}-testjar
+%files testjar -f .mfiles-%{name}-testjar
%license LICENSE.txt
-%files javadoc -f .mfiles-javadoc
+%files javadoc -f .mfiles-javadoc
%license LICENSE.txt
+
%changelog
+* Tue Jul 28 2020 Fabio Valentini - 2.12.0-1
+- Update to version 2.12.0.
+
* Tue Jul 28 2020 Fedora Release Engineering - 2.8.2-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
@@ -206,3 +233,4 @@ rm jmock-legacy/src/test/java/org/jmock/test/acceptance/MockeryFinalizationAccep
* Thu Apr 19 2012 gil cattaneo 2.5.1-1
- initial rpm
+
diff --git a/sources b/sources
index 9c08964..af13a63 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ddfc7d745f85452cc611033a67cd369d 2.8.2.tar.gz
+SHA512 (jmock-2.12.0.tar.gz) = b1ba12981e7379f5b07a29749c7640906c02f72f52158921d0ac02abf69c9c8c2dc753f4462ff0afa5807852a06f59a6da9ed9357ae7dc0303b0377a0e3da854