diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java index 63aedd6566d89..0982fe0267cc5 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java @@ -174,24 +174,21 @@ private void setupRootDownload(Project rootProject, ElasticsearchDistribution di } private static void addIvyRepo(Project project, String name, String url, String group) { - project.getRepositories().ivy(ivyRepo -> { - ivyRepo.setName(name); - ivyRepo.setUrl(url); - ivyRepo.metadataSources(IvyArtifactRepository.MetadataSources::artifact); + IvyArtifactRepository ivyRepo = project.getRepositories().ivy(repo -> { + repo.setName(name); + repo.setUrl(url); + repo.metadataSources(IvyArtifactRepository.MetadataSources::artifact); // this header is not a credential but we hack the capability to send this header to avoid polluting our download stats - ivyRepo.credentials(HttpHeaderCredentials.class, creds -> { + repo.credentials(HttpHeaderCredentials.class, creds -> { creds.setName("X-Elastic-No-KPI"); creds.setValue("1"); }); - ivyRepo.getAuthentication().create("header", HttpHeaderAuthentication.class); - ivyRepo.patternLayout(layout -> layout.artifact("/downloads/elasticsearch/[module]-[revision](-[classifier]).[ext]")); - ivyRepo.content(content -> content.includeGroup(group)); + repo.getAuthentication().create("header", HttpHeaderAuthentication.class); + repo.patternLayout(layout -> layout.artifact("/downloads/elasticsearch/[module]-[revision](-[classifier]).[ext]")); }); - project.getRepositories().all(repo -> { - if (repo.getName().equals(name) == false) { - // all other repos should ignore the special group name - repo.content(content -> content.excludeGroup(group)); - } + project.getRepositories().exclusiveContent(exclusiveContentRepository -> { + exclusiveContentRepository.filter(config -> config.includeGroup(group)); + exclusiveContentRepository.forRepositories(ivyRepo); }); } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/JdkDownloadPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/JdkDownloadPlugin.java index 9c48fd8ac1b19..a0fe4eb081137 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/JdkDownloadPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/JdkDownloadPlugin.java @@ -79,16 +79,6 @@ public void apply(Project project) { setupRootJdkDownload(project.getRootProject(), jdk); } }); - - // all other repos should ignore the special jdk artifacts - project.getRootProject().getRepositories().all(repo -> { - if (repo.getName().startsWith(REPO_NAME_PREFIX) == false) { - repo.content(content -> { - content.excludeGroup("adoptopenjdk"); - content.excludeGroup("openjdk"); - }); - } - }); } @SuppressWarnings("unchecked") @@ -145,13 +135,16 @@ private static void setupRootJdkDownload(Project rootProject, Jdk jdk) { } // Define the repository if we haven't already - if (rootProject.getRepositories().findByName(repoName) == null) { - repositories.ivy(ivyRepo -> { - ivyRepo.setName(repoName); - ivyRepo.setUrl(repoUrl); - ivyRepo.metadataSources(IvyArtifactRepository.MetadataSources::artifact); - ivyRepo.patternLayout(layout -> layout.artifact(artifactPattern)); - ivyRepo.content(content -> content.includeGroup(jdk.getVendor())); + if (repositories.findByName(repoName) == null) { + IvyArtifactRepository ivyRepo = repositories.ivy(repo -> { + repo.setName(repoName); + repo.setUrl(repoUrl); + repo.metadataSources(IvyArtifactRepository.MetadataSources::artifact); + repo.patternLayout(layout -> layout.artifact(artifactPattern)); + }); + repositories.exclusiveContent(exclusiveContentRepository -> { + exclusiveContentRepository.filter(config -> config.includeGroup(jdk.getVendor())); + exclusiveContentRepository.forRepositories(ivyRepo); }); }