Skip to content

Commit ae57f74

Browse files
committed
fix json schema validation
1 parent 858b0fe commit ae57f74

File tree

7 files changed

+59
-4453
lines changed

7 files changed

+59
-4453
lines changed

libxtracfg/java/build.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,8 @@ repositories {
2626
}
2727

2828
dependencies {
29-
implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.2.0-SNAPSHOT'
30-
implementation group: 'org.slf4j', name: 'slf4j-nop', version: '1.7.35'
31-
// use this instead for debugging purposes
32-
//implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.35'
29+
implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.3.0-SNAPSHOT'
30+
implementation group: 'org.slf4j', name: project.hasProperty('CI') ? 'slf4j-nop' : 'slf4j-simple', version: '2.0.16'
3331

3432
// 24.x is for JDK 21
3533
compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '24.1.0'

libxtracfg/java/dev.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ sourceSets {
1313
java {
1414
srcDirs 'src/dev/java'
1515
}
16+
resources {
17+
srcDirs 'src/dev/resources'
18+
}
1619
}
1720
}
1821

libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ public class XtraCfgDev {
77

88
public static void main(String[] args) {
99
if (args.length == 0) {
10+
System.out.println(
11+
"Example: ./gradlew run --rerun --args='{\"command\":\"check\",\"subcommand\":\"entities\",\"ignoreRedundant\":true,\"verbose\":true,\"debug\":true,\"source\":\"/path/to/store\"}'");
12+
System.out.println(
13+
"Or: ./gradlew run --rerun --args=\"{command:check,subcommand:entities,ignoreRedundant:true,verbose:true,debug:true,source:/path/to/store}\"");
14+
System.out.println();
15+
1016
throw new IllegalArgumentException("No command given");
1117
}
1218

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
org.slf4j.simpleLogger.logFile=System.out
2+
org.slf4j.simpleLogger.defaultLogLevel=error
3+
org.slf4j.simpleLogger.log.de.ii=debug
4+
org.slf4j.simpleLogger.levelInBrackets=true
5+
org.slf4j.simpleLogger.showDateTime=false
6+
org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z
7+
org.slf4j.simpleLogger.showThreadName=false

libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ public enum Type {
4040

4141
public static boolean DEV = false;
4242

43+
private static final org.slf4j.Logger LOGGER =
44+
org.slf4j.LoggerFactory.getLogger(EntitiesHandler.class);
45+
4346
private static final TypeReference<LinkedHashMap<String, Object>> AS_MAP =
4447
new TypeReference<LinkedHashMap<String, Object>>() {};
4548

@@ -426,6 +429,10 @@ private static List<Upgrade> getUpgrades(
426429
? ldproxyCfg.getOverrideIdentifiers()
427430
: List.of();
428431

432+
if (debug && LOGGER.isDebugEnabled()) {
433+
LOGGER.debug("defaultIdentifiers: {}", defaultIdentifiers);
434+
}
435+
429436
// TODO: optionally compare ordering of elements
430437
return Stream.concat(
431438
Stream.concat(
@@ -629,6 +636,10 @@ private static Optional<Upgrade> getDefaultUpgrade(
629636
Path relYml = ldproxyCfg.getDataDirectory().relativize(yml);
630637
FileInfo fileInfo = new FileType(Map.of("path", relYml.toString())).get(ldproxyCfg);
631638

639+
if (debug && LOGGER.isDebugEnabled()) {
640+
LOGGER.debug("fileInfo: {} {}", fileInfo.isValid(), fileInfo.entitySubType);
641+
}
642+
632643
if (!fileInfo.isValid() || fileInfo.entitySubType.isEmpty()) {
633644
return Optional.empty();
634645
}
@@ -639,7 +650,12 @@ private static Optional<Upgrade> getDefaultUpgrade(
639650
Map<String, Object> original = ldproxyCfg.getObjectMapper().readValue(yml.toFile(), AS_MAP);
640651
Map<String, Object> upgraded =
641652
getUpgradedDefaultsOrOverrides(
642-
ldproxyCfg, yml, storeIdentifier, Type.Defaults, fileInfo, original);
653+
ldproxyCfg, yml, storeIdentifier, Type.Defaults, fileInfo, original, debug);
654+
655+
if (debug && LOGGER.isDebugEnabled()) {
656+
LOGGER.debug("original1: {}", original);
657+
LOGGER.debug("upgraded1: {}", upgraded);
658+
}
643659

644660
if (fileInfo.subProperty.isPresent()) {
645661
try {
@@ -674,8 +690,7 @@ private static Optional<Upgrade> getDefaultUpgrade(
674690
}
675691

676692
if (force || !diff.isEmpty()) {
677-
return Optional.of(
678-
new Upgrade(Type.Defaults, relYml, original, upgraded, null, Map.of()));
693+
return Optional.of(new Upgrade(Type.Defaults, relYml, original, upgraded, null, Map.of()));
679694
}
680695

681696
return Optional.empty();
@@ -699,7 +714,7 @@ private static Optional<Upgrade> getOverrideUpgrade(
699714
Map<String, Object> original = ldproxyCfg.getObjectMapper().readValue(yml.toFile(), AS_MAP);
700715
Map<String, Object> upgraded =
701716
getUpgradedDefaultsOrOverrides(
702-
ldproxyCfg, yml, identifier, Type.Overrides, fileInfo, original);
717+
ldproxyCfg, yml, identifier, Type.Overrides, fileInfo, original, debug);
703718

704719
Map<String, String> diff = MapDiffer.diff(original, upgraded, true);
705720
if (debug) {
@@ -719,9 +734,16 @@ private static Map<String, Object> getUpgradedDefaultsOrOverrides(
719734
Identifier identifier,
720735
Type type,
721736
FileInfo fileInfo,
722-
Map<String, Object> original)
737+
Map<String, Object> original,
738+
boolean debug)
723739
throws IOException {
724740
String fileContent = Validation.loadFileContent(yml, type, fileInfo);
741+
742+
if (debug && LOGGER.isDebugEnabled()) {
743+
LOGGER.debug("fileInfo: {} {}", fileInfo.entityType, fileInfo.entitySubType);
744+
LOGGER.debug("fileContent: {}", fileContent);
745+
}
746+
725747
EntityDataBuilder<? extends EntityData> builder =
726748
ldproxyCfg
727749
.getEntityFactories()
@@ -735,6 +757,10 @@ private static Map<String, Object> getUpgradedDefaultsOrOverrides(
735757
.readerForUpdating(builder)
736758
.readValue(fileContent);
737759

760+
if (debug && LOGGER.isDebugEnabled()) {
761+
LOGGER.debug("builder: {}", builder.build());
762+
}
763+
738764
Map<String, Object> upgraded =
739765
ldproxyCfg.getEntityDataDefaultsStore().asMap(identifier, builder.build());
740766
Map<String, Object> cleanUpgraded = new LinkedHashMap<>();
@@ -746,6 +772,15 @@ private static Map<String, Object> getUpgradedDefaultsOrOverrides(
746772
if (entry.getKey().equals("label") && !original.containsKey("label")) {
747773
continue;
748774
}
775+
if (entry.getKey().equals("providerType") && !original.containsKey("providerType")) {
776+
continue;
777+
}
778+
if (entry.getKey().equals("providerSubType") && !original.containsKey("providerSubType")) {
779+
continue;
780+
}
781+
if (entry.getKey().equals("serviceType") && !original.containsKey("serviceType")) {
782+
continue;
783+
}
749784
if (entry.getKey().equals("enabled")
750785
&& !(original.containsKey("enabled") || original.containsKey("shouldStart"))) {
751786
continue;

libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public Result run(LdproxyCfg ldproxyCfg) {
8686

8787
// TODO: multi-file overrides
8888
if (path.getNameCount() >= 3
89-
&& Objects.equals(path.getName(1).toString(), "overrides")
89+
&& !Objects.equals(type, "defaults")
9090
&& CONTENT_TYPES.contains(type)
9191
&& ENTITY_TYPES.contains(path.getFileName().toString())) {
9292

0 commit comments

Comments
 (0)