Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions metadata/com.microsoft.sqlserver/mssql-jdbc/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
"12.8.0.jre11",
"12.8.0.jre8",
"12.8.1.jre11",
"12.8.1.jre11",
"12.8.1.jre8",
"12.10.1.jre11",
"12.10.1.jre8",
Expand All @@ -46,13 +45,10 @@
"13.1.1.jre11-preview",
"13.1.1.jre8-preview",
"13.2.0.jre11",
"13.2.0.jre11",
"13.2.0.jre8",
"13.2.1.jre11",
"13.2.1.jre11",
"13.2.1.jre8",
"13.3.0.jre11-preview",
"13.3.0.jre11-preview",
"13.3.0.jre8-preview"
]
}
Expand Down
9 changes: 1 addition & 8 deletions metadata/io.netty/netty-transport/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,7 @@
"metadata-version" : "4.1.115.Final",
"tested-versions" : [
"4.1.115.Final",
"4.1.116.Final",
"4.2.0.Alpha1",
"4.2.0.Alpha2",
"4.2.0.Alpha3",
"4.2.0.RC1",
"4.2.0.RC4",
"4.2.1.Final",
"4.2.2.Final"
"4.1.116.Final"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ abstract class FetchExistingLibrariesWithNewerVersionsTask extends DefaultTask {

List<String> newerVersions = getNewerVersionsFromLibraryIndex(data, startingVersion, library)

// filter out already tested versions
List<String> testedVersions = getTestedVersions(library);
newerVersions.removeAll(testedVersions);

// filter pre-release versions if full release exists
return filterPreReleases(newerVersions)
}
Expand Down Expand Up @@ -147,30 +151,45 @@ abstract class FetchExistingLibrariesWithNewerVersionsTask extends DefaultTask {
}

static String getLatestLibraryVersion(String libraryModule) {
try {
List<String> testedVersions = getTestedVersions(libraryModule);
if (testedVersions.isEmpty()) {
throw new IllegalStateException("Cannot find any tested version for: " + libraryModule);
}

testedVersions.sort(Comparator.comparing(VersionNumber::parse));
return testedVersions.get(testedVersions.size() - 1);
} catch (IOException e) {
throw new RuntimeException(e);
}
}

/**
* Reads the tested versions of a given library from its metadata index file.
*/
static List<String> getTestedVersions(String libraryModule) {
try {
String[] coordinates = libraryModule.split(":");
String group = coordinates[0];
String artifact = coordinates[1];

File coordinatesMetadataIndex = new File("metadata/" + group + "/" + artifact +"/index.json");
File indexFile = new File("metadata/" + group + "/" + artifact + "/index.json");
if (!indexFile.exists()) {
return Collections.emptyList();
}

ObjectMapper objectMapper = new ObjectMapper()
.enable(SerializationFeature.INDENT_OUTPUT)
.setSerializationInclusion(JsonInclude.Include.NON_NULL);

List<MetadataVersionsIndexEntry> entries = objectMapper.readValue(coordinatesMetadataIndex, new TypeReference<List<MetadataVersionsIndexEntry>>() {
});
List<MetadataVersionsIndexEntry> entries = objectMapper.readValue(indexFile,
new TypeReference<List<MetadataVersionsIndexEntry>>() {});

List<String> allTested = new ArrayList<>();
List<String> testedVersions = new ArrayList<>();
for (MetadataVersionsIndexEntry entry : entries) {
allTested.addAll(entry.testedVersions());
testedVersions.addAll(entry.testedVersions());
}

if (allTested.isEmpty()) {
throw new IllegalStateException("Cannot find any tested version for: " + libraryModule);
}

allTested.sort(Comparator.comparing(VersionNumber::parse));
return allTested.get(allTested.size() - 1);
return testedVersions;
} catch (IOException e) {
throw new RuntimeException(e);
}
Expand Down
Loading