add support for blocked repository
This commit is contained in:
parent
a4c5230ed8
commit
d62b58e5ba
184
add-support-for-blocked-repository.patch
Normal file
184
add-support-for-blocked-repository.patch
Normal file
@ -0,0 +1,184 @@
|
||||
From 514cec19743c4f441f0137cd6d035422a046e6a1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Herv=C3=A9=20Boutemy?= <hboutemy@apache.org>
|
||||
Date: Sun, 7 Mar 2021 08:48:37 +0100
|
||||
Subject: [PATCH] [MRESOLVER-166] add support for blocked repository/mirror
|
||||
|
||||
---
|
||||
.../aether/repository/RemoteRepository.java | 40 ++++++++++++++++++-
|
||||
.../repository/DefaultMirrorSelector.java | 21 ++++++++--
|
||||
2 files changed, 55 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
|
||||
index fd5c480..52fc894 100644
|
||||
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
|
||||
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
|
||||
@@ -59,6 +59,8 @@ public final class RemoteRepository
|
||||
|
||||
private final boolean repositoryManager;
|
||||
|
||||
+ private boolean blocked;
|
||||
+
|
||||
RemoteRepository( Builder builder )
|
||||
{
|
||||
if ( builder.prototype != null )
|
||||
@@ -76,6 +78,7 @@ public final class RemoteRepository
|
||||
repositoryManager =
|
||||
( builder.delta & Builder.REPOMAN ) != 0 ? builder.repositoryManager
|
||||
: builder.prototype.repositoryManager;
|
||||
+ blocked = ( builder.delta & Builder.BLOCKED ) != 0 ? builder.blocked : builder.prototype.blocked;
|
||||
mirroredRepositories =
|
||||
( builder.delta & Builder.MIRRORED ) != 0 ? copy( builder.mirroredRepositories )
|
||||
: builder.prototype.mirroredRepositories;
|
||||
@@ -90,7 +93,8 @@ public final class RemoteRepository
|
||||
proxy = builder.proxy;
|
||||
authentication = builder.authentication;
|
||||
repositoryManager = builder.repositoryManager;
|
||||
- mirroredRepositories = copy( builder.mirroredRepositories );
|
||||
+ blocked = builder.blocked;
|
||||
+ mirroredRepositories = copy( builder.mirroredRepositories );
|
||||
}
|
||||
|
||||
Matcher m = URL_PATTERN.matcher( url );
|
||||
@@ -207,6 +211,16 @@ public final class RemoteRepository
|
||||
return repositoryManager;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Indicates whether this repository is blocked against any download request.
|
||||
+ *
|
||||
+ * @return {@code true} if this repository is blocked against any download request, {@code false} otherwise.
|
||||
+ */
|
||||
+ public boolean isBlocked()
|
||||
+ {
|
||||
+ return blocked;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
@@ -235,6 +249,11 @@ public final class RemoteRepository
|
||||
{
|
||||
buffer.append( ", managed" );
|
||||
}
|
||||
+ if ( isBlocked() )
|
||||
+ {
|
||||
+ buffer.append( ", blocked" );
|
||||
+
|
||||
+ }
|
||||
buffer.append( ")" );
|
||||
return buffer.toString();
|
||||
}
|
||||
@@ -294,7 +313,7 @@ public final class RemoteRepository
|
||||
private static final RepositoryPolicy DEFAULT_POLICY = new RepositoryPolicy();
|
||||
|
||||
static final int ID = 0x0001, TYPE = 0x0002, URL = 0x0004, RELEASES = 0x0008, SNAPSHOTS = 0x0010,
|
||||
- PROXY = 0x0020, AUTH = 0x0040, MIRRORED = 0x0080, REPOMAN = 0x0100;
|
||||
+ PROXY = 0x0020, AUTH = 0x0040, MIRRORED = 0x0080, REPOMAN = 0x0100, BLOCKED = 0x0200;
|
||||
|
||||
int delta;
|
||||
|
||||
@@ -318,6 +337,8 @@ public final class RemoteRepository
|
||||
|
||||
boolean repositoryManager;
|
||||
|
||||
+ boolean blocked;
|
||||
+
|
||||
/**
|
||||
* Creates a new repository builder.
|
||||
*
|
||||
@@ -574,6 +595,21 @@ public final class RemoteRepository
|
||||
return this;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Marks the repository as blocked or not.
|
||||
+ *
|
||||
+ * @param blocked {@code true} if the repository should not be allowed to get any request.
|
||||
+ * @return This builder for chaining, never {@code null}.
|
||||
+ */
|
||||
+ public Builder setBlocked( boolean blocked )
|
||||
+ {
|
||||
+ this.blocked = blocked;
|
||||
+ if ( prototype != null )
|
||||
+ {
|
||||
+ delta( BLOCKED, this.blocked, prototype.isBlocked() );
|
||||
+ }
|
||||
+ return this;
|
||||
+ }
|
||||
}
|
||||
|
||||
}
|
||||
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java
|
||||
index c123b47..f493708 100644
|
||||
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java
|
||||
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java
|
||||
@@ -39,6 +39,13 @@ public final class DefaultMirrorSelector
|
||||
|
||||
private final List<MirrorDef> mirrors = new ArrayList<MirrorDef>();
|
||||
|
||||
+ @Deprecated
|
||||
+ public DefaultMirrorSelector add( String id, String url, String type, boolean repositoryManager,
|
||||
+ String mirrorOfIds, String mirrorOfTypes )
|
||||
+ {
|
||||
+ return add( id, url, type, repositoryManager, false, mirrorOfIds, mirrorOfTypes );
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Adds the specified mirror to this selector.
|
||||
*
|
||||
@@ -46,6 +53,7 @@ public final class DefaultMirrorSelector
|
||||
* @param url The URL of the mirror, must not be {@code null}.
|
||||
* @param type The content type of the mirror, must not be {@code null}.
|
||||
* @param repositoryManager A flag whether the mirror is a repository manager or a simple server.
|
||||
+ * @param blocked A flag whether the mirror blocks any download request.
|
||||
* @param mirrorOfIds The identifier(s) of remote repositories to mirror, must not be {@code null}. Multiple
|
||||
* identifiers can be separated by comma and additionally the wildcards "*" and "external:*" can be used
|
||||
* to match all (external) repositories, prefixing a repo id with an exclamation mark allows to express
|
||||
@@ -55,10 +63,10 @@ public final class DefaultMirrorSelector
|
||||
* wildcard "*" and the "!" negation syntax are supported. For example "*,!p2".
|
||||
* @return This selector for chaining, never {@code null}.
|
||||
*/
|
||||
- public DefaultMirrorSelector add( String id, String url, String type, boolean repositoryManager,
|
||||
+ public DefaultMirrorSelector add( String id, String url, String type, boolean repositoryManager, boolean blocked,
|
||||
String mirrorOfIds, String mirrorOfTypes )
|
||||
{
|
||||
- mirrors.add( new MirrorDef( id, url, type, repositoryManager, mirrorOfIds, mirrorOfTypes ) );
|
||||
+ mirrors.add( new MirrorDef( id, url, type, repositoryManager, blocked, mirrorOfIds, mirrorOfTypes ) );
|
||||
|
||||
return this;
|
||||
}
|
||||
@@ -77,6 +85,8 @@ public final class DefaultMirrorSelector
|
||||
|
||||
builder.setRepositoryManager( mirror.repositoryManager );
|
||||
|
||||
+ builder.setBlocked( mirror.blocked );
|
||||
+
|
||||
if ( mirror.type != null && mirror.type.length() > 0 )
|
||||
{
|
||||
builder.setContentType( mirror.type );
|
||||
@@ -253,17 +263,20 @@ public final class DefaultMirrorSelector
|
||||
|
||||
final boolean repositoryManager;
|
||||
|
||||
+ final boolean blocked;
|
||||
+
|
||||
final String mirrorOfIds;
|
||||
|
||||
final String mirrorOfTypes;
|
||||
|
||||
- MirrorDef( String id, String url, String type, boolean repositoryManager, String mirrorOfIds,
|
||||
- String mirrorOfTypes )
|
||||
+ MirrorDef( String id, String url, String type, boolean repositoryManager, boolean blocked, String mirrorOfIds,
|
||||
+ String mirrorOfTypes )
|
||||
{
|
||||
this.id = id;
|
||||
this.url = url;
|
||||
this.type = type;
|
||||
this.repositoryManager = repositoryManager;
|
||||
+ this.blocked = blocked;
|
||||
this.mirrorOfIds = mirrorOfIds;
|
||||
this.mirrorOfTypes = mirrorOfTypes;
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
Name: maven-resolver
|
||||
Version: 1.1.1
|
||||
Release: 3
|
||||
Release: 4
|
||||
Epoch: 1
|
||||
License: ASL 2.0
|
||||
Summary: Apache Maven Artifact Resolver library
|
||||
URL: http://maven.apache.org/resolver/
|
||||
Source0: http://archive.apache.org/dist/maven/resolver/%{name}-%{version}-source-release.zip
|
||||
BuildArch: noarch
|
||||
Patch0001: add-support-for-blocked-repository.patch
|
||||
BuildRequires: maven-local mvn(javax.inject:javax.inject) mvn(junit:junit) mvn(org.apache.felix:maven-bundle-plugin)
|
||||
BuildRequires: mvn(org.apache.httpcomponents:httpclient) mvn(org.apache.httpcomponents:httpcore) mvn(org.apache.maven:maven-parent:pom:)
|
||||
BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) mvn(org.codehaus.plexus:plexus-classworlds)
|
||||
@ -155,5 +156,8 @@ done
|
||||
%files help -f .mfiles-javadoc
|
||||
|
||||
%changelog
|
||||
* Fri Jul 16 2021 wutao <wutao61@huawei.com>- 1.1.1-4
|
||||
- add support for blocked repository
|
||||
|
||||
* Tue Dec 03 2019 gulining<gulining1@huawei.com> - 1.1.1-3
|
||||
- Pakcage init
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user