Skip to content

Commit 367e52f

Browse files
committed
iter
1 parent cda64cc commit 367e52f

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/TransportVersionGenerationFuncTest.groovy

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@
99

1010
package org.elasticsearch.gradle.internal.transport
1111

12+
import org.elasticsearch.gradle.util.Pair
13+
import org.gradle.internal.impldep.com.google.common.collect.Streams
1214
import org.gradle.testkit.runner.TaskOutcome
1315

16+
import java.util.stream.Stream
17+
1418
class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTest {
1519
def "test setup works"() {
1620
when:
@@ -19,6 +23,40 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
1923
result.task(":myserver:generateTransportVersionDefinition").outcome == TaskOutcome.SUCCESS
2024
}
2125

26+
def "A definition should be generated for an undefined reference"() {
27+
given:
28+
String tvName = "potato_tv"
29+
when:
30+
def result = gradleRunner("generateTransportVersionDefinition", "--name=" + tvName, "--increment=1").build()
31+
then:
32+
result.task(":myserver:generateTransportVersionDefinition").outcome == TaskOutcome.SUCCESS
33+
validateDefinitionFile(tvName, List.of("9.2"))
34+
}
35+
36+
void validateDefinitionFile(String name, List<String> branches) { // TODO add primary increment
37+
String filename = "myserver/src/main/resources/transport/definitions/named/" + name + ".csv"
38+
assert file(filename).exists()
39+
40+
String contents = file(filename).text
41+
assert contents.strip().isEmpty() == false
42+
String[] x = contents.strip().split(",")
43+
Stream<Integer> ids = Arrays.stream(x).map(Integer::valueOf)
44+
assert branches.size() == ids.count(): "The definition file does not have the correct number of ids"
45+
46+
def latestInfo = branches.stream()
47+
.map { file("myserver/src/main/resources/transport/latest/${it}.csv").text }
48+
.map { contents.strip().split(",") }
49+
.map { Pair<String, Integer>.of(it.first(), Integer.valueOf(it.last())) }
50+
51+
Streams.zip(ids, latestInfo, { (id, latest) -> Pair.of(id, latest) })
52+
.forEach {
53+
(id, Pair latest) -> {
54+
assert name == latest.left(): "The latest file should contain the same name as the new transport version"
55+
assert id == latest.right(): "The latest file should contain the same id as the new transport version"
56+
}
57+
}
58+
}
59+
2260
/*
2361
TODO: Add tests that check that:
2462
- TVs added ontop of main in git, but are no longer referenced, are deleted

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/GenerateTransportVersionDefinitionTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ private List<String> getChangedDefinitionNames() throws IOException {
216216
String namedDefinitionsBasePath = TransportVersionUtils.getResourcePath(getResourcesProjectDir().get(), "definitions/named/");
217217
for (String changedResource : getChangedResources(namedDefinitionsBasePath)) {
218218
String definitionName = changedResource.substring(
219-
changedResource.lastIndexOf(File.pathSeparator) + 1,
219+
changedResource.lastIndexOf(File.separator) + 1,
220220
changedResource.length() - 4 /* .csv */
221221
);
222222
changedDefinitionNames.add(definitionName);

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ record TransportVersionReference(String name, String location) {
2626
private static final Attribute<Boolean> REFERENCES_ATTRIBUTE = Attribute.of("transport-version-references", Boolean.class);
2727

2828
static List<TransportVersionReference> listFromFile(Path file) throws IOException {
29-
assert file.endsWith(".csv");
29+
assert file.toString().endsWith(".csv") : file + " does not end in .csv";
3030
List<TransportVersionReference> results = new ArrayList<>();
3131
for (String line : Files.readAllLines(file, StandardCharsets.UTF_8)) {
3232
String[] parts = line.split(",", 2);

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionReferencesPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public void apply(Project project) {
3232
t.setDescription("Collects all TransportVersion references used throughout the project");
3333
SourceSet mainSourceSet = GradleUtils.getJavaSourceSets(project).findByName(SourceSet.MAIN_SOURCE_SET_NAME);
3434
t.getClassPath().setFrom(mainSourceSet.getOutput());
35-
t.getOutputFile().set(project.getLayout().getBuildDirectory().file("transport-version/references.txt"));
35+
t.getOutputFile().set(project.getLayout().getBuildDirectory().file("transport-version/references.csv"));
3636
});
3737

3838
Configuration tvReferencesConfig = project.getConfigurations().create("transportVersionReferences", c -> {

0 commit comments

Comments
 (0)