-
Notifications
You must be signed in to change notification settings - Fork 24.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrap VersionPropertiesLoader in a BuildService to decouple build logic projects #78704
Wrap VersionPropertiesLoader in a BuildService to decouple build logic projects #78704
Conversation
Pinging @elastic/es-delivery (Team:Delivery) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
public void close() throws Exception { | ||
} | ||
|
||
public interface Params extends BuildServiceParameters { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we move this to the bottom of the class definition?
...ons/src/main/java/org/elasticsearch/gradle/internal/conventions/VersionPropertiesPlugin.java
Show resolved
Hide resolved
.registerIfAbsent("versions", VersionPropertiesBuildService.class, spec -> { | ||
spec.getParameters().getInfoPath().set(infoPath); | ||
}); | ||
project.getExtensions().add("versions", serviceProvider.forUseAtConfigurationTime().get().getProperties()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I definitely like this pattern of adding the service itself as a project extension 👍
By using a BuildService we can decouple the configuration of projects but keep making expensive operations (e.g. parsing properties file or reading minimumJavaCompiler from file) only once per build. This bring us closer to decouple projects and get ultimatively configuration cache compliant. In general we will bring in more BuildServices for the main build to follow along that Pattern and ultimatevely remove usages of allprojects and subprojects in our build.
6e508e4
to
1c3bbe7
Compare
…c projects (elastic#78704) By using a BuildService we can decouple the configuration of projects but keep making expensive operations (e.g. parsing properties file or reading minimumJavaCompiler from file) only once per build. This bring us closer to decouple projects and get ultimatively configuration cache compliant. In general we will bring in more BuildServices for the main build to follow along that Pattern and ultimatevely remove usages of allprojects and subprojects in our build.
* master: Fix DataTierTests package and add a validation test (elastic#78880) Fix split package org.elasticsearch.common.xcontent (elastic#78831) Store DataTier Preference directly on IndexMetadata (elastic#78668) [DOCS] Fixes typo in calendar API example (elastic#78867) Improve Node Shutdown Observability (elastic#78727) Convert encrypted snapshot license object to LicensedFeature (elastic#78731) Revert "Make nodePaths() singular (elastic#72514)" (elastic#78801) Fix incorrect generic type in PolicyStepsRegistry (elastic#78628) [DOCS] Fixes ML get calendars API (elastic#78808) Implement GET API for System Feature Upgrades (elastic#78642) [TEST] More MetadataStateFormat tests (elastic#78577) Add support for rest compatibility headers to the HLRC (elastic#78490) Un-ignoring tests after backporting fix (elastic#78830) Add node REPLACE shutdown implementation (elastic#76247) Wrap VersionPropertiesLoader in a BuildService to decouple build logic projects (elastic#78704) Adjust /_cat/templates not to request all metadata (elastic#78829) [DOCS] Fixes ML get scheduled events API (elastic#78809) Enable exit on out of memory error (elastic#71542) # Conflicts: # server/src/main/java/org/elasticsearch/cluster/metadata/DataStream.java
By using a BuildService we can decouple the configuration of projects but keep making
expensive operations (e.g. parsing properties file or reading minimumJavaCompiler from file) only once
per build.
This bring us closer to decouple projects and get ultimatively configuration cache compliant. In
general we will bring in more BuildServices for the main build to follow along that Pattern and
ultimatevely remove usages of allprojects and subprojects in our build.