Skip to content

Commit 1fdce11

Browse files
authored
Make --write-verification-metadata faster (#111103) (#112030)
by ignoring elasticsearch distributions when resolving artifacts (cherry picked from commit 022b84b)
1 parent f0948d3 commit 1fdce11

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

build-tools/src/main/java/org/elasticsearch/gradle/DistributionDownloadPlugin.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.gradle.api.NamedDomainObjectContainer;
1515
import org.gradle.api.Plugin;
1616
import org.gradle.api.Project;
17+
import org.gradle.api.artifacts.Configuration;
1718
import org.gradle.api.artifacts.dsl.DependencyHandler;
1819
import org.gradle.api.artifacts.repositories.IvyArtifactRepository;
1920
import org.gradle.api.artifacts.type.ArtifactTypeDefinition;
@@ -53,6 +54,8 @@ public class DistributionDownloadPlugin implements Plugin<Project> {
5354

5455
private Property<Boolean> dockerAvailability;
5556

57+
private boolean writingDependencies = false;
58+
5659
@Inject
5760
public DistributionDownloadPlugin(ObjectFactory objectFactory) {
5861
this.objectFactory = objectFactory;
@@ -65,6 +68,7 @@ public void setDockerAvailability(Provider<Boolean> dockerAvailability) {
6568

6669
@Override
6770
public void apply(Project project) {
71+
writingDependencies = project.getGradle().getStartParameter().getWriteDependencyVerifications().isEmpty() == false;
6872
project.getDependencies().registerTransform(UnzipTransform.class, transformSpec -> {
6973
transformSpec.getFrom().attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.ZIP_TYPE);
7074
transformSpec.getTo().attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.DIRECTORY_TYPE);
@@ -87,7 +91,6 @@ private void setupDistributionContainer(Project project) {
8791
var extractedConfiguration = project.getConfigurations().create(DISTRO_EXTRACTED_CONFIG_PREFIX + name);
8892
extractedConfiguration.getAttributes()
8993
.attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.DIRECTORY_TYPE);
90-
9194
var distribution = new ElasticsearchDistribution(
9295
name,
9396
objectFactory,
@@ -96,16 +99,20 @@ private void setupDistributionContainer(Project project) {
9699
objectFactory.fileCollection().from(extractedConfiguration)
97100
);
98101

99-
registerDistributionDependencies(project, distribution);
102+
// when running with --write-dependency-verification to update dependency verification data,
103+
// we do not register the dependencies as we ignore elasticsearch internal dependencies anyhow and
104+
// want to reduce general resolution time
105+
if (writingDependencies == false) {
106+
registerDistributionDependencies(project, distribution);
107+
}
100108
return distribution;
101109
});
102110
project.getExtensions().add(CONTAINER_NAME, distributionsContainer);
103111
}
104112

105113
private void registerDistributionDependencies(Project project, ElasticsearchDistribution distribution) {
106-
project.getConfigurations()
107-
.getByName(DISTRO_CONFIG_PREFIX + distribution.getName())
108-
.getDependencies()
114+
Configuration distroConfig = project.getConfigurations().getByName(DISTRO_CONFIG_PREFIX + distribution.getName());
115+
distroConfig.getDependencies()
109116
.addLater(
110117
project.provider(() -> distribution.maybeFreeze())
111118
.map(
@@ -114,9 +121,9 @@ private void registerDistributionDependencies(Project project, ElasticsearchDist
114121
)
115122
);
116123

117-
project.getConfigurations()
118-
.getByName(DISTRO_EXTRACTED_CONFIG_PREFIX + distribution.getName())
119-
.getDependencies()
124+
Configuration extractedDistroConfig = project.getConfigurations()
125+
.getByName(DISTRO_EXTRACTED_CONFIG_PREFIX + distribution.getName());
126+
extractedDistroConfig.getDependencies()
120127
.addAllLater(
121128
project.provider(() -> distribution.maybeFreeze())
122129
.map(

0 commit comments

Comments
 (0)