@Override public InputStream open(String path) throws IOException { final JsonNode originalNode = objectMapper.readTree(yamlFactory.createParser(delegate.open(defaultConfigurationPath))); final JsonNode overrideNode = objectMapper.readTree(yamlFactory.createParser(delegate.open(path))); if (!(originalNode instanceof ObjectNode && overrideNode instanceof ObjectNode)) { throw new SingularityConfigurationMergeException(String.format("Both %s and %s need to be YAML objects", defaultConfigurationPath, path)); } merge((ObjectNode)originalNode, (ObjectNode)overrideNode); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); objectMapper.writeTree(yamlFactory.createGenerator(baos), originalNode); return new ByteArrayInputStream(baos.toByteArray()); }
YAMLFactory yf = new YAMLFactory(); ObjectMapper mapper = new ObjectMapper(yf); ObjectNode root = (ObjectNode) mapper.readTree(yamlFileIn); // modify root here FileOutputStream fos = new FileOutputStream(yamlFileOut); yf.createGenerator(fos).writeObject(root); // works. yay.
public <T> void writeFile(File file, T value) throws IOException { file.getParentFile().mkdirs(); // TODO use yaml if file path ends with dig or yml, otherwise use json? try (YAMLGenerator out = yaml.createGenerator(new FileOutputStream(file))) { // TODO write to a String first, then write to file. to not create partially-written broken file mapper.writeValue(out, value); } }
public <T> String toYaml(T value) { try { StringWriter writer = new StringWriter(); try (YAMLGenerator out = yaml.createGenerator(writer)) { mapper.writeValue(out, value); } return writer.toString(); } catch (IOException ex) { throw new RuntimeException(ex); } }
@Override public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException { return new YamlXContentGenerator(yamlFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes); }
void writeDiagnosticReport(Map<String, Object> diagnosticInfo, Writer writer) throws IOException { try (JsonGenerator jsonGenerator = YAML_FACTORY.createGenerator(writer)) { jsonGenerator.setPrettyPrinter(DEFAULT_PRETTY_PRINTER); jsonGenerator.writeObject(diagnosticInfo); jsonGenerator.flush(); } } }
@Override public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException { return new YamlXContentGenerator(yamlFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes); }
@Override public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException { return new YamlXContentGenerator(yamlFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes); }
@Override public XContentGenerator createGenerator(OutputStream os, Set<String> includes, Set<String> excludes) throws IOException { return new YamlXContentGenerator(yamlFactory.createGenerator(os, JsonEncoding.UTF8), os, includes, excludes); }
public void serialize(Writer w, JsonElement e) { try { YAMLGenerator yaml = factory.createGenerator(w); serialize(yaml, e); yaml.flush(); } catch (IOException e1) { throw new IllegalStateException(e1); } }
/** * Creates YAML generator instance. * @return YAMLGenerator instance. */ private YAMLGenerator createYamlGenerator() { final Writer writer = new StringWriter(); YAMLFactory yamlFactory = new YAMLFactory(); yamlFactory.configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true); yamlFactory.disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER); try { return yamlFactory.createGenerator(writer); } catch (IOException ex) { throw new RuntimeException("Cannot create YAML generator.", ex); } } }
@Override public InputStream open(String path) throws IOException { final JsonNode originalNode = objectMapper.readTree(yamlFactory.createParser(delegate.open(defaultConfigurationPath))); final JsonNode overrideNode = objectMapper.readTree(yamlFactory.createParser(delegate.open(path))); if (!(originalNode instanceof ObjectNode && overrideNode instanceof ObjectNode)) { throw new SingularityConfigurationMergeException(String.format("Both %s and %s need to be YAML objects", defaultConfigurationPath, path)); } merge((ObjectNode)originalNode, (ObjectNode)overrideNode); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); objectMapper.writeTree(yamlFactory.createGenerator(baos), originalNode); return new ByteArrayInputStream(baos.toByteArray()); }
try (YAMLGenerator out = yaml.createGenerator(workspace.newOutputStream(tempFile), JsonEncoding.UTF8)) { mapper.writeValue(out, embulkConfig);