Skip to content

Commit 8719a30

Browse files
committed
Fix quoutes in open api generator
1 parent c43da3d commit 8719a30

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

core/esmf-aspect-model-document-generators/src/main/java/org/eclipse/esmf/aspectmodel/generator/AbstractSchemaArtifact.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@
2929
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
3030
import com.fasterxml.jackson.databind.node.ObjectNode;
3131
import com.fasterxml.jackson.databind.node.TextNode;
32+
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
33+
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
3234
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
35+
import com.fasterxml.jackson.dataformat.yaml.util.StringQuotingChecker;
3336
import com.google.common.collect.ImmutableMap;
3437
import com.google.common.collect.Streams;
3538
import io.vavr.control.Try;
@@ -137,10 +140,24 @@ protected Map<Path, String> getContentWithSeparateSchemasAsYaml( final Optional<
137140

138141
protected String jsonToYaml( final JsonNode json ) {
139142
try {
140-
return new YAMLMapper().writeValueAsString( json );
143+
final YAMLFactory yamlFactory = YAMLFactory.builder()
144+
.stringQuotingChecker( new OpenApiStringQuotingChecker() ).build();
145+
return new YAMLMapper( yamlFactory ).enable( YAMLGenerator.Feature.MINIMIZE_QUOTES )
146+
.writeValueAsString( json );
141147
} catch ( final JsonProcessingException exception ) {
142148
LOG.error( "JSON could not be converted to YAML", exception );
143149
return json.toString();
144150
}
145151
}
152+
153+
private static class OpenApiStringQuotingChecker extends StringQuotingChecker.Default {
154+
155+
@Override
156+
protected boolean valueHasQuotableChar( final String inputStr ) {
157+
if ( inputStr.contains( "#" ) ) {
158+
return true;
159+
}
160+
return super.valueHasQuotableChar( inputStr );
161+
}
162+
}
146163
}

0 commit comments

Comments
 (0)