in tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/CqCatalog.java [184:225]
static void serialize(final Path catalogPath, ArtifactModel<?> model) {
String kind = model.getKind() == Kind.console ? "dev-consoles" : model.getKind().toString() + "s";
final Path out = catalogPath.resolve(kind)
.resolve(model.getName().replace(":", "-") + ".json");
try {
Files.createDirectories(out.getParent());
} catch (IOException e) {
throw new RuntimeException("Could not create " + out.getParent(), e);
}
String rawJson;
switch (model.getKind()) {
case bean:
rawJson = JsonMapper.createParameterJsonSchema((PojoBeanModel) model);
break;
case component:
rawJson = JsonMapper.createParameterJsonSchema((ComponentModel) model);
break;
case console:
rawJson = JsonMapper.createParameterJsonSchema((DevConsoleModel) model);
break;
case dataformat:
rawJson = JsonMapper.createParameterJsonSchema((DataFormatModel) model);
break;
case language:
rawJson = JsonMapper.createParameterJsonSchema((LanguageModel) model);
break;
case transformer:
rawJson = JsonMapper.createParameterJsonSchema((TransformerModel) model);
break;
case other:
rawJson = JsonMapper.createJsonSchema((OtherModel) model);
break;
default:
throw new IllegalStateException("Cannot serialize kind " + model.getKind());
}
try {
Files.write(out, rawJson.getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
throw new RuntimeException("Could not write to " + out, e);
}
}