static CliResult writeToOutputFile(Config config, Path outputPath) throws IOException { System.out.printf("Saving config to %s", outputPath); System.out.println(); JaxbUtil.marshalWithNoValidation(config, System.out); System.out.println(); try (OutputStream outputStream = Files.newOutputStream(outputPath)) { JaxbUtil.marshal(config, outputStream); System.out.printf("Saved config to %s", outputPath); System.out.println(); return new CliResult(0, false, config); } catch (ConstraintViolationException validationException) { validationException.getConstraintViolations() .stream() .map(cv -> "Warning: " + cv.getMessage() + " on property " + cv.getPropertyPath()) .forEach(System.err::println); Files.write(outputPath, JaxbUtil.marshalToStringNoValidation(config).getBytes()); System.out.printf("Saved config to %s", outputPath); System.out.println(); return new CliResult(2, false, config); } }