diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..5361c8f
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/maven-build.properties b/maven-build.properties
new file mode 100644
index 0000000..78b3322
--- /dev/null
+++ b/maven-build.properties
@@ -0,0 +1,22 @@
+#Generated by Maven Ant Plugin - DO NOT EDIT THIS FILE!
+#Mon Feb 11 23:31:38 CET 2013
+bouncycastle.version=1.46
+maven.settings.offline=true
+maven.build.finalName=voms-api-java-2.0.10
+maven.build.resourceDir.0=src/main/resources
+maven.build.testOutputDir=${maven.build.dir}/test-classes
+maven.build.testResourceDir.0=src/test/resources
+maven.reporting.outputDirectory=${maven.build.dir}/site
+project.build.sourceEncoding=UTF-8
+maven.build.srcDir.0=src/main/java
+project.build.directory=${maven.build.dir}
+maven.test.reports=${maven.build.dir}/test-reports
+maven.build.dir=target
+project.build.outputDirectory=${maven.build.outputDir}
+assembly.javadoc.dir=/usr/share/javadoc/voms-api-java
+assembly.doc.dir=/usr/share/doc/voms-api-java-2.0.10
+project.reporting.outputEncoding=UTF-8
+maven.build.testDir.0=src/test/java
+maven.settings.interactiveMode=true
+assembly.java.dir=/usr/share/java
+maven.build.outputDir=${maven.build.dir}/classes
diff --git a/maven-build.xml b/maven-build.xml
new file mode 100644
index 0000000..ec793d0
--- /dev/null
+++ b/maven-build.xml
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ =================================== WARNING ===================================
+ JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.
+ ===============================================================================
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sources b/sources
index 5df8bdb..cfa6114 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-SHA512 (voms-api-java-3.3.7.tar.gz) = b623480b972742625e0c7cd95bfefee36a580f743240434d5591a9f35a19977a4d7d3abc90b598666e86f8e6d3a40a6c6ca66e19309a1ea8d2be979af57aaa58
-SHA512 (helper-scripts-master.tar.gz) = 8704b5bdbee360c0db70e6ece2781a385c62c802c9000754f62efbd23bd22542ace77f68b8064661201f441b40234475a005d9f67b50f0aea435636a0a851225
+c2b017434cfba3e31b88b28920695cd4 2_0_10.tar.gz
diff --git a/voms-api-java-test.patch b/voms-api-java-test.patch
index b32fafc..39961b2 100644
--- a/voms-api-java-test.patch
+++ b/voms-api-java-test.patch
@@ -1,28 +1,12 @@
-diff --git a/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java b/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
-index a0f7a87..4244925 100644
---- a/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
-+++ b/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
-@@ -31,6 +31,7 @@ import org.italiangrid.voms.test.utils.Utils;
- import org.italiangrid.voms.test.utils.VOMSAA;
- import org.junit.Assert;
- import org.junit.BeforeClass;
-+import org.junit.Ignore;
- import org.junit.Test;
+diff -ur voms-api-java-2_0_10.orig/pom.xml voms-api-java-2_0_10/pom.xml
+--- voms-api-java-2_0_10.orig/pom.xml 2013-01-11 16:15:57.000000000 +0100
++++ voms-api-java-2_0_10/pom.xml 2013-02-11 23:26:58.928257785 +0100
+@@ -17,7 +17,7 @@
+ /usr/share/doc/${project.name}-${project.version}
+ /usr/share/javadoc/${project.name}
+ 1.45
+- **/LoadTest.java
++ **/LoadTest.java,**/TestCerts.java
+
- import eu.emi.security.authn.x509.X509CertChainValidatorExt;
-@@ -316,6 +317,7 @@ public class TestACValidator implements Fixture {
- }
-
- @Test
-+ @Ignore
- public void testTargetValidationSuccess() throws Exception {
-
- VOMSAA aa = Utils.getVOMSAA();
-@@ -342,6 +344,7 @@ public class TestACValidator implements Fixture {
- }
-
- @Test
-+ @Ignore
- public void testTargetValidationFailure() throws Exception {
-
- VOMSAA aa = Utils.getVOMSAA();
+
diff --git a/voms-api-java.spec b/voms-api-java.spec
index 2b354af..ac23e2e 100644
--- a/voms-api-java.spec
+++ b/voms-api-java.spec
@@ -1,31 +1,83 @@
+# Use maven if it is available - otherwise fall back to ant
+%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7
+%global maven 1
+%else
+%global maven 0
+%endif
+
Name: voms-api-java
-Version: 3.3.7
-Release: 4%{?dist}
+Version: 2.0.10
+%global tagver %(tr . _ <<< %{version})
+Release: 2%{?dist}
Summary: Virtual Organization Membership Service Java API
-License: Apache-2.0
-URL: https://github.com/italiangrid/%{name}
-Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
-# Helper scripts for generating test certificates
-Source1: https://baltig.infn.it/mw-devel/helper-scripts/-/archive/master/helper-scripts-master.tar.gz
-# Disable tests requiring non-local network
+Group: Development/Libraries
+License: ASL 2.0
+URL: https://wiki.italiangrid.it/VOMS
+Source0: https://github.com/italiangrid/%{name}/archive/%{tagver}.tar.gz
+# These are build instructions for ant generated from the maven
+# build instrutions using the maven ant plugin.
+# These are used for building on EPEL since there is no maven
+# available there.
+Source1: build.xml
+Source2: maven-build.xml
+Source3: maven-build.properties
Patch0: %{name}-test.patch
-
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-ExclusiveArch: %{java_arches} noarch
-%if %{?fedora}%{!?fedora:0} >= 43
-BuildRequires: maven-local-openjdk25
-%else
-BuildRequires: maven-local
+# There is no bouncycastle in EPEL 5 ppc and EPEL 6 ppc64
+%if %{?rhel}%{!?rhel:0} == 5
+ExcludeArch: ppc
%endif
-BuildRequires: mvn(eu.eu-emi.security:canl) >= 2.8.3
-BuildRequires: mvn(junit:junit)
-BuildRequires: mvn(org.hamcrest:hamcrest-library)
-BuildRequires: mvn(org.mockito:mockito-core)
-BuildRequires: faketime
-BuildRequires: openssl
-Requires: mvn(eu.eu-emi.security:canl) >= 2.8.3
+%if %{?rhel}%{!?rhel:0} == 6
+ExcludeArch: ppc64
+%endif
+
+Requires: java
+Requires: jpackage-utils
+Requires: bouncycastle >= 1.39
+%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7
+Requires: apache-commons-cli
+Requires: apache-commons-lang
+%else
+Requires: jakarta-commons-cli
+Requires: jakarta-commons-lang
+%endif
+Requires: log4j
+
+Provides: vomsjapi = %{version}-%{release}
+Obsoletes: vomsjapi < 2.0.7
+
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: jpackage-utils
+
+%if %maven
+BuildRequires: maven-local
+BuildRequires: maven-compiler-plugin
+BuildRequires: maven-install-plugin
+BuildRequires: maven-jar-plugin
+BuildRequires: maven-javadoc-plugin
+BuildRequires: maven-release-plugin
+BuildRequires: maven-resources-plugin
+BuildRequires: maven-surefire-plugin
+BuildRequires: maven-surefire-provider-junit
+%else
+BuildRequires: ant
+BuildRequires: ant-junit
+%endif
+
+BuildRequires: bouncycastle >= 1.39
+%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7
+BuildRequires: apache-commons-cli
+BuildRequires: apache-commons-io
+BuildRequires: apache-commons-lang
+%else
+BuildRequires: jakarta-commons-cli
+BuildRequires: jakarta-commons-io
+BuildRequires: jakarta-commons-lang
+%endif
+BuildRequires: log4j
%description
The Virtual Organization Membership Service (VOMS) is an attribute authority
@@ -39,248 +91,69 @@ This package provides a java client API for VOMS.
%package javadoc
Summary: Virtual Organization Membership Service Java API Documentation
+Group: Documentation
+Requires: jpackage-utils
+Requires: %{name} = %{version}-%{release}
+Provides: vomsjapi-javadoc = %{version}-%{release}
+Obsoletes: vomsjapi-javadoc < 2.0.7
%description javadoc
Virtual Organization Membership Service (VOMS) Java API Documentation.
%prep
-%setup -q -a 1
-%patch -P0 -p1
+%setup -q -n %{name}-%{tagver}
+%patch0 -p1
+install -m 644 %SOURCE1 .
+install -m 644 %SOURCE2 .
+install -m 644 %SOURCE3 .
-# Remove unused dependency
-%pom_remove_dep net.jcip:jcip-annotations
-
-# F33+ and EPEL8+ doesn't use the maven-javadoc-plugin to generate javadoc
-# Remove maven-javadoc-plugin configuration to avoid build failure
-%pom_remove_plugin org.apache.maven.plugins:maven-javadoc-plugin
-
-# Do not create source jars
-%pom_remove_plugin org.apache.maven.plugins:maven-source-plugin
-
-%if %{?rhel}%{!?rhel:0} == 9
-# Modify bouncycastle dependencies for RHEL 9
-%pom_change_dep org.bouncycastle:bcprov-jdk18on org.bouncycastle:bcprov-jdk15on
-%pom_change_dep org.bouncycastle:bcpkix-jdk18on org.bouncycastle:bcpkix-jdk15on
-%endif
-
-# Generate test certificates
-export PATH=$PWD/helper-scripts-master/x509-scripts/scripts:$PATH
-pushd src/test/resources
-./setup.sh
-popd
+sed -e s/bcprov-ext-jdk16/bcprov-jdk16/ -i pom.xml
%build
-%mvn_build
+%if %{maven}
+mvn-rpmbuild -Dbouncycastle.version=1.46 install javadoc:aggregate
+%else
+export CLASSPATH=$(build-classpath bcprov log4j commons-cli commons-io commons-lang)
+ant -Dbuild.sysclasspath=last package javadoc
+%endif
%install
-%mvn_install
+mkdir -p %{buildroot}%{_javadir}
+install -m 644 target/%{name}-%{version}.jar \
+ %{buildroot}%{_javadir}/%{name}.jar
+ln -s %{name}.jar %{buildroot}%{_javadir}/vomsjapi.jar
-%files -f .mfiles
-%doc AUTHORS README.md
-%license LICENSE
+mkdir -p %{buildroot}%{_javadocdir}/%{name}
+%if %{maven}
+cp -pr target/site/javadoc/apidocs %{buildroot}%{_javadocdir}/%{name}
+%else
+cp -pr target/site/apidocs %{buildroot}%{_javadocdir}/%{name}
+%endif
-%files javadoc -f .mfiles-javadoc
-%license LICENSE
+%if %{maven}
+mkdir -p %{buildroot}%{_mavenpomdir}
+install -m 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
+%add_maven_depmap JPP-%{name}.pom %{name}.jar -a org.glite:vomsjapi
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{_javadir}/%{name}.jar
+%{_javadir}/vomsjapi.jar
+%if %{maven}
+%{_mavenpomdir}/JPP-%{name}.pom
+%{_mavendepmapfragdir}/%{name}
+%endif
+%doc AUTHORS LICENSE README.md
+
+%files javadoc
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{name}
%changelog
-* Fri Jul 17 2026 Fedora Release Engineering - 3.3.7-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
-
-* Sat Jun 13 2026 Yaakov Selkowitz - 3.3.7-3
-- Rebuilt for openssl 4.0
-
-* Sat Jan 17 2026 Fedora Release Engineering - 3.3.7-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
-
-* Sat Dec 20 2025 Mattias Ellert - 3.3.7-1
-- Update to version 3.3.7
-
-* Mon Sep 08 2025 Mattias Ellert - 3.3.6-2
-- Include upstream's scripts for generating test certificates
-- Enable tests again
-
-* Tue Aug 05 2025 Mattias Ellert - 3.3.6-1
-- Update to version 3.3.6
-
-* Tue Jul 29 2025 jiri vanek - 3.3.5-4
-- Rebuilt for java-25-openjdk as preffered jdk
-
-* Fri Jul 25 2025 Fedora Release Engineering - 3.3.5-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
-
-* Tue Apr 22 2025 Mattias Ellert - 3.3.5-2
-- Update URL tag
-
-* Thu Apr 17 2025 Mattias Ellert - 3.3.5-1
-- Update to version 3.3.5
-- Do not run tests
- - some scripts needed for generating the test certificates are missing
-
-* Sun Jan 19 2025 Fedora Release Engineering - 3.3.3-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
-
-* Thu Nov 28 2024 Mattias Ellert - 3.3.3-2
-- Update bouncycastle dependencies for EPEL 10
-
-* Sat Aug 03 2024 Mattias Ellert - 3.3.3-1
-- Update to version 3.3.3
-
-* Sat Jul 20 2024 Fedora Release Engineering - 3.3.2-18
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
-
-* Thu Mar 14 2024 Mattias Ellert - 3.3.2-17
-- Update bouncycastle dependencies
-
-* Tue Feb 27 2024 Jiri Vanek - 3.3.2-16
-- Rebuilt for java-21-openjdk as system jdk
-
-* Sat Jan 27 2024 Fedora Release Engineering - 3.3.2-15
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
-
-* Sat Dec 16 2023 Mattias Ellert - 3.3.2-14
-- Adjust to removed deprecaded API in Mockito
-
-* Sat Jul 22 2023 Fedora Release Engineering - 3.3.2-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
-
-* Sat Jan 21 2023 Fedora Release Engineering - 3.3.2-12
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
-
-* Tue Dec 13 2022 Mattias Ellert - 3.3.2-11
-- Disable tests that fail due to more expired certificates
-
-* Mon Oct 17 2022 Mattias Ellert - 3.3.2-10
-- Disable tests that fail due to expired certificates
-
-* Wed Sep 28 2022 Mattias Ellert - 3.3.2-9
-- Disable failing multi-thread test
-- Disable tests using obsolete hashes (md5/sha1)
-
-* Sat Jul 23 2022 Fedora Release Engineering - 3.3.2-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
-
-* Fri Jul 08 2022 Jiri Vanek - 3.3.2-7
-- Rebuilt for Drop i686 JDKs
-
-* Sat Feb 05 2022 Jiri Vanek - 3.3.2-6
-- Rebuilt for java-17-openjdk as system jdk
-
-* Sat Jan 22 2022 Fedora Release Engineering - 3.3.2-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Fri Jan 14 2022 Mattias Ellert - 3.3.2-4
-- Disable failing tests due to changes in bouncycastle
-
-* Fri Jul 23 2021 Fedora Release Engineering - 3.3.2-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Wed Jan 27 2021 Fedora Release Engineering - 3.3.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Tue Oct 13 2020 Mattias Ellert - 3.3.2-1
-- Update to version 3.3.2 - matches canl-java 2.6.x
-- Drop patches voms-api-java-javadoc-source.patch and -no-local.patch
-
-* Wed Jul 29 2020 Fedora Release Engineering - 3.3.0-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Wed Jul 15 2020 Mattias Ellert - 3.3.0-10
-- Fedora 33 builds javadoc the same way EPEL 8 does
-
-* Sat Jul 11 2020 Jiri Vanek - 3.3.0-9
-- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
-
-* Tue May 05 2020 Mattias Ellert - 3.3.0-8
-- Only remove the maven-javadoc-plugin configuration on EPEL 8
-- Add source version to javadoc configuration (backported from git)
-
-* Fri Jan 31 2020 Fedora Release Engineering - 3.3.0-7
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Tue Aug 20 2019 Mattias Ellert - 3.3.0-6
-- Remove maven-javadoc-plugin configuration
-- Remove unused dependency net.jcip:jcip-annotations
-
-* Sat Jul 27 2019 Fedora Release Engineering - 3.3.0-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Sun Feb 03 2019 Fedora Release Engineering - 3.3.0-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Fri Dec 07 2018 Mattias Ellert - 3.3.0-3
-- Add BuildRequires on hamcrest-library (no longer pulled in by mockito)
-
-* Sat Jul 14 2018 Fedora Release Engineering - 3.3.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Thu Feb 08 2018 Mattias Ellert - 3.3.0-1
-- Update to version 3.3.0 - matches canl-java 2.5.x
-- Drop patch voms-api-java-canl-2.5.patch
-
-* Fri Jan 05 2018 Mattias Ellert - 3.2.0-5
-- Adapt to canl-java 2.5
-- Use jcip-annotations for EPEL 7 build
-
-* Thu Jul 27 2017 Fedora Release Engineering - 3.2.0-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
-
-* Thu Feb 16 2017 Mattias Ellert - 3.2.0-3
-- Remove maven source plugin
-
-* Sat Feb 11 2017 Fedora Release Engineering - 3.2.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
-
-* Sun Feb 14 2016 Mattias Ellert - 3.2.0-1
-- Update to version 3.2.0 - matches canl-java 2.2.x
-- Drop patches: voms-api-java-bc147.patch, -javadoc.patch and -testfix.patch
-
-* Sun Feb 14 2016 Mattias Ellert - 3.1.0-1
-- Update to version 3.1.0 - matches canl-java 2.1.x
-- Drop patches: voms-api-java-bc147.patch and -javadoc.patch
-
-* Thu Feb 11 2016 Mattias Ellert - 3.0.5-5
-- Backport fix for failing test due to new canl-java version
-
-* Fri Feb 05 2016 Fedora Release Engineering - 3.0.5-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Sat Jul 11 2015 Mattias Ellert - 3.0.5-3
-- Remove build-dependency on cobertura-maven-plugin
- (cobertura was removed from Fedora due to licensing issues)
-- Enable tests in EPEL 7
-- Implement new license packaging guidelines
-
-* Fri Jun 19 2015 Fedora Release Engineering - 3.0.5-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Tue Dec 16 2014 Mattias Ellert - 3.0.5-1
-- Update to version 3.0.5
-- Rebase patches (and fix some deprecation warnings)
-
-* Mon Nov 17 2014 Mattias Ellert - 3.0.4-1
-- Update to version 3.0.4
-- Drop patch voms-api-java-timezone-dep-test.patch (fixed upstream)
-
-* Thu Jun 26 2014 Mattias Ellert - 3.0.3-1
-- Update to version 3.0.3
-
-* Sun Jun 08 2014 Fedora Release Engineering - 3.0.2-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Mon Mar 10 2014 Mattias Ellert - 3.0.2-2
-- Disable tests that fail outside the Central European time zone
-
-* Sun Mar 09 2014 Mattias Ellert - 3.0.2-1
-- Update to version 3
-- Apply patch for bouncycastle 1.47+ on Fedora 21+ and EPEL 7+
-- Convert to using xmvn
-
-* Mon Oct 14 2013 Mattias Ellert - 2.0.10-4
-- Disable CRL tests (the CRL in the sources has expired)
-
-* Sun Aug 04 2013 Fedora Release Engineering - 2.0.10-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
* Tue Feb 12 2013 Mattias Ellert - 2.0.10-2
- Add BR on maven-surefire-provider-junit