Skip to content

Commit df4284a

Browse files
dnestorogradinac
authored andcommitted
Add support for both old and new serialization-config formats
1 parent fe74d0e commit df4284a

File tree

3 files changed

+29
-29
lines changed

3 files changed

+29
-29
lines changed

metadata/com.sun.mail/jakarta.mail/2.0.1/resource-config.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818
"pattern": "\\QMETA-INF/javamail.default.providers\\E"
1919
},
2020
{
21-
"condition": {
22-
"typeReachable": "jakarta.mail.Session"
23-
},
2421
"pattern": "\\QMETA-INF/mailcap\\E"
2522
}
2623
]

metadata/javax.cache/cache-api/1.1.1/serialization-config.json

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,27 @@
44
"types": [
55
{
66
"condition": {
7-
"typeReachable": "java.lang.Object"
7+
"typeReachable": "javax.cache.configuration.FactoryBuilder"
88
},
99
"name": "javax.cache.configuration.FactoryBuilder$SingletonFactory"
1010
},
1111
{
1212
"condition": {
13-
"typeReachable": "java.lang.Object"
13+
"typeReachable": "javax.cache.expiry.AccessedExpiryPolicy"
1414
},
1515
"name": "javax.cache.expiry.AccessedExpiryPolicy"
1616
},
1717
{
1818
"condition": {
19-
"typeReachable": "java.lang.Object"
19+
"typeReachable": "javax.cache.expiry.Duration"
2020
},
2121
"name": "javax.cache.expiry.Duration"
2222
},
2323
{
2424
"condition": {
25-
"typeReachable": "java.lang.Object"
25+
"typeReachable": "javax.cache.expiry.EternalExpiryPolicy"
2626
},
2727
"name": "javax.cache.expiry.EternalExpiryPolicy"
28-
},
29-
{
30-
"condition": {
31-
"typeReachable": "java.lang.Object"
32-
},
33-
"name": "java.lang.String"
34-
},
35-
{
36-
"condition": {
37-
"typeReachable": "java.lang.Object"
38-
},
39-
"name": "java.lang.Number"
40-
},
41-
{
42-
"condition": {
43-
"typeReachable": "java.lang.Object"
44-
},
45-
"name": "java.lang.Integer"
4628
}
4729
]
4830
}

tests/tck-build-logic/src/main/java/org/graalvm/internal/tck/ConfigFilesChecker.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.gradle.api.tasks.options.Option;
77

88
import java.io.File;
9-
import java.nio.file.Path;
9+
import java.io.FileNotFoundException;
1010
import java.util.*;
1111
import java.util.stream.Collectors;
1212

@@ -33,7 +33,7 @@ void setCoordinates(String coordinates) {
3333

3434

3535
@TaskAction
36-
void run() throws IllegalArgumentException {
36+
void run() throws IllegalArgumentException, FileNotFoundException {
3737
Coordinates coordinates = Coordinates.parse(this.coordinates);
3838
if (coordinates.group().equalsIgnoreCase("org.example") || coordinates.group().equalsIgnoreCase("samples")) {
3939
return;
@@ -160,8 +160,25 @@ private boolean resourceConfigFilesContainsErrors(File file) {
160160
return containsErrors;
161161
}
162162

163+
private boolean checkOldSerializationConfig(File file) {
164+
List<Map<String, Object>> entries = getConfigEntries(file);
165+
166+
if (entries.isEmpty()) {
167+
System.out.println("ERROR: empty serialization-config detected: " + file.toURI());
168+
return true;
169+
}
170+
171+
boolean containsErrors = containsDuplicatedEntries(entries, file);
172+
for (var entry : entries) {
173+
containsErrors |= checkTypeReachable(entry, file);
174+
}
175+
176+
return containsErrors;
177+
}
178+
163179
@SuppressWarnings("unchecked")
164-
private boolean serializationConfigFilesContainsErrors(File file) {
180+
private boolean checkNewSerializationConfig(File file) {
181+
boolean containsErrors = false;
165182
Map<String, Object> entries = getConfigEntry(file);
166183

167184
List<Map<String, Object>> types = (List<Map<String, Object>>) entries.get("types");
@@ -172,7 +189,6 @@ private boolean serializationConfigFilesContainsErrors(File file) {
172189
return true;
173190
}
174191

175-
boolean containsErrors = false;
176192
if (types != null) {
177193
// check include entries
178194
containsErrors |= containsDuplicatedEntries(types, file);
@@ -194,6 +210,11 @@ private boolean serializationConfigFilesContainsErrors(File file) {
194210
return containsErrors;
195211
}
196212

213+
private boolean serializationConfigFilesContainsErrors(File file) throws FileNotFoundException {
214+
Scanner sc = new Scanner(file);
215+
return sc.nextLine().contains("[") ? checkOldSerializationConfig(file) : checkNewSerializationConfig(file);
216+
}
217+
197218
private boolean proxyConfigFilesContainsErrors(File file) {
198219
List<Map<String, Object>> entries = getConfigEntries(file);
199220

0 commit comments

Comments
 (0)