Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
7950ded6e4
|
@ -1,7 +1,7 @@
|
||||||
## Validator Changes
|
## Validator Changes
|
||||||
|
|
||||||
* no changes
|
* Warning in Validator CLI when character encoding is not UTF-8
|
||||||
|
|
||||||
## Other code changes
|
## Other code changes
|
||||||
|
|
||||||
* no changes
|
* no changes
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package org.hl7.fhir.utilities;
|
||||||
|
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
public class FileFormat {
|
||||||
|
|
||||||
|
public static boolean fileEncodingIsUtf8() {
|
||||||
|
return Charset.defaultCharset().equals(StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void checkCharsetAndWarnIfNotUTF8(PrintStream out) {
|
||||||
|
if (fileEncodingIsUtf8()) return;
|
||||||
|
out.println("");
|
||||||
|
out.println("WARNING: Default file encoding is " + Charset.defaultCharset() + " which may cause unexpected results. ");
|
||||||
|
out.println(" To fix this issue, run this program with the parameter '-Dfile.encoding=UTF-8'");
|
||||||
|
out.println(" Future releases may not be able to run at all with encoding " + Charset.defaultCharset());
|
||||||
|
out.println("");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package org.hl7.fhir.utilities;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.containsString;
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class FileFormatTest {
|
||||||
|
@Test
|
||||||
|
public void testCurrentFileFormat() throws IOException {
|
||||||
|
ByteArrayOutputStream bo = new ByteArrayOutputStream();
|
||||||
|
|
||||||
|
FileFormat.checkCharsetAndWarnIfNotUTF8(new PrintStream(bo));
|
||||||
|
|
||||||
|
bo.flush();
|
||||||
|
String allWrittenLines = new String(bo.toByteArray());
|
||||||
|
|
||||||
|
assertAWarningIsGivenWhenNotUTF8(allWrittenLines);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void assertAWarningIsGivenWhenNotUTF8(String allWrittenLines) {
|
||||||
|
if (Charset.defaultCharset().equals(StandardCharsets.UTF_8)) {
|
||||||
|
assertEquals(0, allWrittenLines.length());
|
||||||
|
} else {
|
||||||
|
assertThat(allWrittenLines, containsString("WARNING"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -61,6 +61,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
import org.hl7.fhir.r5.model.ImplementationGuide;
|
import org.hl7.fhir.r5.model.ImplementationGuide;
|
||||||
import org.hl7.fhir.r5.model.StructureDefinition;
|
import org.hl7.fhir.r5.model.StructureDefinition;
|
||||||
import org.hl7.fhir.r5.terminologies.JurisdictionUtilities;
|
import org.hl7.fhir.r5.terminologies.JurisdictionUtilities;
|
||||||
|
import org.hl7.fhir.utilities.FileFormat;
|
||||||
import org.hl7.fhir.utilities.TimeTracker;
|
import org.hl7.fhir.utilities.TimeTracker;
|
||||||
import org.hl7.fhir.utilities.Utilities;
|
import org.hl7.fhir.utilities.Utilities;
|
||||||
import org.hl7.fhir.utilities.VersionUtilities;
|
import org.hl7.fhir.utilities.VersionUtilities;
|
||||||
|
@ -154,6 +155,8 @@ public class ValidatorCli {
|
||||||
|
|
||||||
CliContext cliContext = Params.loadCliContext(args);
|
CliContext cliContext = Params.loadCliContext(args);
|
||||||
|
|
||||||
|
FileFormat.checkCharsetAndWarnIfNotUTF8(System.out);
|
||||||
|
|
||||||
if (shouldDisplayHelpToUser(args)) {
|
if (shouldDisplayHelpToUser(args)) {
|
||||||
Display.displayHelpDetails();
|
Display.displayHelpDetails();
|
||||||
} else if (Params.hasParam(args, Params.COMPARE)) {
|
} else if (Params.hasParam(args, Params.COMPARE)) {
|
||||||
|
|
Loading…
Reference in New Issue