Bootstrap Maven as non-modular packages

Resolves: rhbz#1951482
This commit is contained in:
Mikolaj Izdebski 2021-06-08 20:17:56 +02:00
parent 90a4b19889
commit 22b534829a
4 changed files with 83 additions and 253 deletions

2
.gitignore vendored
View File

@ -6,5 +6,7 @@
/maven-resolver-1.1.1-source-release.zip /maven-resolver-1.1.1-source-release.zip
/maven-resolver-1.3.1-source-release.zip /maven-resolver-1.3.1-source-release.zip
/maven-resolver-1.3.3-source-release.zip /maven-resolver-1.3.3-source-release.zip
/maven-resolver-1.4.0-source-release.zip
/maven-resolver-1.4.1-source-release.zip /maven-resolver-1.4.1-source-release.zip
/maven-resolver-1.4.2-source-release.zip /maven-resolver-1.4.2-source-release.zip
/maven-resolver-1.6.1-source-release.zip

View File

@ -1,147 +0,0 @@
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/CacheUtils.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/CacheUtils.java
new file mode 100644
index 0000000..d7e8f01
--- /dev/null
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/CacheUtils.java
@@ -0,0 +1,141 @@
+package org.eclipse.aether.internal.impl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.ArtifactRepository;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.RepositoryPolicy;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.repository.WorkspaceRepository;
+
+/**
+ * @deprecated To be deleted without replacement.
+ */
+@Deprecated
+public final class CacheUtils
+{
+
+ public static <T> boolean eq( T s1, T s2 )
+ {
+ return s1 != null ? s1.equals( s2 ) : s2 == null;
+ }
+
+ public static int hash( Object obj )
+ {
+ return obj != null ? obj.hashCode() : 0;
+ }
+
+ public static int repositoriesHashCode( List<RemoteRepository> repositories )
+ {
+ int result = 17;
+ for ( RemoteRepository repository : repositories )
+ {
+ result = 31 * result + repositoryHashCode( repository );
+ }
+ return result;
+ }
+
+ private static int repositoryHashCode( RemoteRepository repository )
+ {
+ int result = 17;
+ result = 31 * result + hash( repository.getUrl() );
+ return result;
+ }
+
+ private static boolean repositoryEquals( RemoteRepository r1, RemoteRepository r2 )
+ {
+ if ( r1 == r2 )
+ {
+ return true;
+ }
+
+ return eq( r1.getId(), r2.getId() ) && eq( r1.getUrl(), r2.getUrl() )
+ && policyEquals( r1.getPolicy( false ), r2.getPolicy( false ) )
+ && policyEquals( r1.getPolicy( true ), r2.getPolicy( true ) );
+ }
+
+ private static boolean policyEquals( RepositoryPolicy p1, RepositoryPolicy p2 )
+ {
+ if ( p1 == p2 )
+ {
+ return true;
+ }
+ // update policy doesn't affect contents
+ return p1.isEnabled() == p2.isEnabled() && eq( p1.getChecksumPolicy(), p2.getChecksumPolicy() );
+ }
+
+ public static boolean repositoriesEquals( List<RemoteRepository> r1, List<RemoteRepository> r2 )
+ {
+ if ( r1.size() != r2.size() )
+ {
+ return false;
+ }
+
+ for ( Iterator<RemoteRepository> it1 = r1.iterator(), it2 = r2.iterator(); it1.hasNext(); )
+ {
+ if ( !repositoryEquals( it1.next(), it2.next() ) )
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public static WorkspaceRepository getWorkspace( RepositorySystemSession session )
+ {
+ WorkspaceReader reader = session.getWorkspaceReader();
+ return ( reader != null ) ? reader.getRepository() : null;
+ }
+
+ public static ArtifactRepository getRepository( RepositorySystemSession session,
+ List<RemoteRepository> repositories, Class<?> repoClass,
+ String repoId )
+ {
+ if ( repoClass != null )
+ {
+ if ( WorkspaceRepository.class.isAssignableFrom( repoClass ) )
+ {
+ return session.getWorkspaceReader().getRepository();
+ }
+ else if ( LocalRepository.class.isAssignableFrom( repoClass ) )
+ {
+ return session.getLocalRepository();
+ }
+ else
+ {
+ for ( RemoteRepository repository : repositories )
+ {
+ if ( repoId.equals( repository.getId() ) )
+ {
+ return repository;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+}

View File

@ -1,27 +1,30 @@
# 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: maven-resolver Name: maven-resolver
Epoch: 1 Epoch: 1
Version: 1.4.2 Version: 1.6.1
Release: 6%{?dist} Release: 5%{?dist}
Summary: Apache Maven Artifact Resolver library
License: ASL 2.0 License: ASL 2.0
Summary: Apache Maven Artifact Resolver library
URL: https://maven.apache.org/resolver/ URL: https://maven.apache.org/resolver/
Source0: https://archive.apache.org/dist/maven/resolver/%{name}-%{version}-source-release.zip Source0: https://archive.apache.org/dist/maven/resolver/%{name}-%{version}-source-release.zip
# keep deprecated and removed aether CacheUtils for a while longer
# some packages still depend on this and things break without it
Patch0: 00-keep-deprecated-aether-CacheUtils.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: maven-local BuildRequires: maven-local-openjdk8
%if %{with bootstrap}
BuildRequires: javapackages-bootstrap
%else
BuildRequires: mvn(javax.inject:javax.inject) BuildRequires: mvn(javax.inject:javax.inject)
BuildRequires: mvn(junit:junit) BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.apache.commons:commons-lang3)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.httpcomponents:httpclient)
BuildRequires: mvn(org.apache.httpcomponents:httpcore)
BuildRequires: mvn(org.apache.maven:maven-parent:pom:)
BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api)
BuildRequires: mvn(org.apache.maven:maven-parent:pom:)
BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin)
BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds)
BuildRequires: mvn(org.codehaus.plexus:plexus-utils) BuildRequires: mvn(org.codehaus.plexus:plexus-utils)
BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject) BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject)
@ -29,10 +32,31 @@ BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus)
BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin)
BuildRequires: mvn(org.hamcrest:hamcrest-core) BuildRequires: mvn(org.hamcrest:hamcrest-core)
BuildRequires: mvn(org.mockito:mockito-core) BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.slf4j:jcl-over-slf4j)
BuildRequires: mvn(org.slf4j:slf4j-api) BuildRequires: mvn(org.slf4j:slf4j-api)
BuildRequires: mvn(org.slf4j:slf4j-simple) BuildRequires: mvn(org.slf4j:slf4j-simple)
BuildRequires: mvn(org.sonatype.sisu:sisu-guice::no_aop:) BuildRequires: mvn(org.sonatype.sisu:sisu-guice::no_aop:)
%endif
Provides: maven-resolver-api = %{epoch}:%{version}-%{release}
Provides: maven-resolver-spi = %{epoch}:%{version}-%{release}
Provides: maven-resolver-impl = %{epoch}:%{version}-%{release}
Provides: maven-resolver-util = %{epoch}:%{version}-%{release}
Provides: maven-resolver-connector-basic = %{epoch}:%{version}-%{release}
Provides: maven-resolver-transport-wagon = %{epoch}:%{version}-%{release}
Provides: maven-resolver-transport-http = %{epoch}:%{version}-%{release}
Provides: maven-resolver-transport-file = %{epoch}:%{version}-%{release}
Provides: maven-resolver-transport-classpath = %{epoch}:%{version}-%{release}
Obsoletes: maven-resolver-api < 1:1.4.2-6
Obsoletes: maven-resolver-spi < 1:1.4.2-6
Obsoletes: maven-resolver-impl < 1:1.4.2-6
Obsoletes: maven-resolver-util < 1:1.4.2-6
Obsoletes: maven-resolver-connector-basic < 1:1.4.2-6
Obsoletes: maven-resolver-transport-wagon < 1:1.4.2-6
Obsoletes: maven-resolver-transport-http < 1:1.4.2-6
Obsoletes: maven-resolver-transport-file < 1:1.4.2-6
Obsoletes: maven-resolver-transport-classpath < 1:1.4.2-6
Obsoletes: maven-resolver-test-util < 1:1.4.2-6
%description %description
Apache Maven Artifact Resolver is a library for working with artifact Apache Maven Artifact Resolver is a library for working with artifact
@ -40,83 +64,20 @@ repositories and dependency resolution. Maven Artifact Resolver deals with the
specification of local repository, remote repository, developer workspaces, specification of local repository, remote repository, developer workspaces,
artifact transports and artifact resolution. artifact transports and artifact resolution.
%package api %{?javadoc_package}
Summary: Maven Artifact Resolver API
%description api
The application programming interface for the repository system.
%package spi
Summary: Maven Artifact Resolver SPI
%description spi
The service provider interface for repository system implementations and
repository connectors.
%package util
Summary: Maven Artifact Resolver Utilities
%description util
A collection of utility classes to ease usage of the repository system.
%package impl
Summary: Maven Artifact Resolver Implementation
%description impl
An implementation of the repository system.
%package test-util
Summary: Maven Artifact Resolver Test Utilities
%description test-util
A collection of utility classes to ease testing of the repository system.
%package connector-basic
Summary: Maven Artifact Resolver Connector Basic
%description connector-basic
A repository connector implementation for repositories using URI-based layouts.
%package transport-classpath
Summary: Maven Artifact Resolver Transport Classpath
%description transport-classpath
A transport implementation for repositories using classpath:// URLs.
%package transport-file
Summary: Maven Artifact Resolver Transport File
%description transport-file
A transport implementation for repositories using file:// URLs.
%package transport-http
Summary: Maven Artifact Resolver Transport HTTP
%description transport-http
A transport implementation for repositories using http:// and https:// URLs.
%package transport-wagon
Summary: Maven Artifact Resolver Transport Wagon
%description transport-wagon
A transport implementation based on Maven Wagon.
%package javadoc
Summary: API documentation for %{name}
%description javadoc
This package provides %{summary}.
%prep %prep
%setup -q %setup -q
%patch0 -p1
# tests require jetty 7 %pom_remove_plugin -r :bnd-maven-plugin
%pom_remove_dep :::test maven-resolver-transport-http
rm -r maven-resolver-transport-http/src/test
%pom_disable_module maven-resolver-demos %pom_disable_module maven-resolver-demos
%pom_disable_module maven-resolver-synccontext-global
%pom_disable_module maven-resolver-synccontext-redisson
%pom_disable_module maven-resolver-transport-classpath
%pom_disable_module maven-resolver-transport-file
%pom_disable_module maven-resolver-transport-http
%mvn_package :maven-resolver-test-util __noinstall
# generate OSGi manifests # generate OSGi manifests
for pom in $(find -mindepth 2 -name pom.xml) ; do for pom in $(find -mindepth 2 -name pom.xml) ; do
@ -143,38 +104,31 @@ done
</archive> </archive>
</configuration>" </configuration>"
%mvn_package :maven-resolver
%mvn_alias 'org.apache.maven.resolver:maven-resolver{*}' 'org.eclipse.aether:aether@1' %mvn_alias 'org.apache.maven.resolver:maven-resolver{*}' 'org.eclipse.aether:aether@1'
%mvn_file ':maven-resolver{*}' %{name}/maven-resolver@1 aether/aether@1 %mvn_file ':maven-resolver{*}' %{name}/maven-resolver@1 aether/aether@1
%build %build
%mvn_build -s -- -Dmaven.compiler.release=8 %mvn_build
%install %install
%mvn_install %mvn_install
%files -f .mfiles %files -f .mfiles
%license LICENSE NOTICE %license LICENSE NOTICE
%files api -f .mfiles-%{name}-api
%license LICENSE NOTICE
%files spi -f .mfiles-%{name}-spi
%files util -f .mfiles-%{name}-util
%files impl -f .mfiles-%{name}-impl
%files test-util -f .mfiles-%{name}-test-util
%files connector-basic -f .mfiles-%{name}-connector-basic
%files transport-classpath -f .mfiles-%{name}-transport-classpath
%files transport-file -f .mfiles-%{name}-transport-file
%files transport-http -f .mfiles-%{name}-transport-http
%files transport-wagon -f .mfiles-%{name}-transport-wagon
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE
%changelog %changelog
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1:1.4.2-6 * Tue Jun 08 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.6.1-5
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - Bootstrap Maven for CentOS Stream 9
* Tue Jun 01 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.6.1-4
- Add epoch to obsoleted packages
* Tue Jun 01 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.6.1-3
- Obsolete removed subpackages
* Mon May 17 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.6.1-2
- Bootstrap build
- Non-bootstrap build
* Wed Feb 17 2021 Fabio Valentini <decathorpe@gmail.com> - 1:1.4.2-5 * Wed Feb 17 2021 Fabio Valentini <decathorpe@gmail.com> - 1:1.4.2-5
- Build with -release 8 for better OpenJDK 8 compatibility. - Build with -release 8 for better OpenJDK 8 compatibility.
@ -182,24 +136,45 @@ done
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.4.2-4 * Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.4.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 15 2021 Marian Koncek <mkoncek@redhat.com> - 1.6.1-1
- Update to upstream version 1.6.1
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.4.2-3 * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.4.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.4.2-2 * Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 1:1.4.2-2
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 - Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Fri Jun 26 2020 Marian Koncek <mkoncek@redhat.com> - 1.4.2-1
- Update to upstream version 1.4.2
* Sat May 09 2020 Fabio Valentini <decathorpe@gmail.com> - 1:1.4.2-1 * Sat May 09 2020 Fabio Valentini <decathorpe@gmail.com> - 1:1.4.2-1
- Update to version 1.4.2. - Update to version 1.4.2.
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.4.1-2 * Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.4.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jan 25 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.4.1-3
- Build with OpenJDK 8
* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.4.1-2
- Mass rebuild for javapackages-tools 201902
* Sun Nov 03 2019 Fabio Valentini <decathorpe@gmail.com> - 1:1.4.1-1 * Sun Nov 03 2019 Fabio Valentini <decathorpe@gmail.com> - 1:1.4.1-1
- Update to version 1.4.1. - Update to version 1.4.1.
* Wed Sep 11 2019 Marian Koncek <mkoncek@redhat.com> - 1.4.1-1
- Update to upstream version 1.4.1
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.3.3-2 * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.3.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jun 29 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.3.3-3
- Disable unneeded transporters
* Fri May 24 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.3.3-2
- Mass rebuild for javapackages-tools 201901
* Tue May 14 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.3.3-1 * Tue May 14 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:1.3.3-1
- Update to upstream version 1.3.3 - Update to upstream version 1.3.3

View File

@ -1 +1 @@
SHA512 (maven-resolver-1.4.2-source-release.zip) = 5d9513333da44e5d9b6097c8681a33f273ee78f797cdf7055be5cbf4d6c161e9e1e91a610b420201667a93ecc1f5c9a0a4a60fc1af2edfddb4c4e5d33f76ab40 SHA512 (maven-resolver-1.6.1-source-release.zip) = ab45c772e9af4061977feb4fb48e3ae9ddd8cbebe41ada40f2a762504e96fd4c0fd4a939ab707667d9888caf92ab9fa354abe0624031c7049b7a2cb133421ddd