diff --git a/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/api/ValueSetManager.java b/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/api/ValueSetManager.java index 552b25b2a8b..20a22f89bb3 100644 --- a/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/api/ValueSetManager.java +++ b/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/api/ValueSetManager.java @@ -68,6 +68,7 @@ import org.projecthusky.valueset.model.ValueSet; import org.projecthusky.valueset.model.ValueSetEntry; import org.projecthusky.valueset.model.Version; +import org.projecthusky.valueset.utils.VsUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; @@ -147,7 +148,7 @@ public ValueSet downloadValueSet(ValueSetConfig valueSetConfig) var sourceUrlString = valueSetConfig.getSourceUrl(); var downloadedString = ""; try { - downloadedString = IOUtils.toString(new URL(sourceUrlString), StandardCharsets.UTF_8); + downloadedString = VsUtils.downloadAsString(new URL(sourceUrlString)); downloadedString = downloadedString.replace("<", "<"); downloadedString = downloadedString.replace(">", ">"); downloadedString = downloadedString.replace("&", "&"); @@ -196,7 +197,7 @@ public ValueSet downloadValueSet(ValueSetConfig valueSetConfig) public byte[] downloadValueSetRaw(ValueSetConfig valueSetConfig) throws IOException { byte[] retVal = null; if (valueSetConfig != null && SourceSystemType.ARTDECOR_FHIR.equals(valueSetConfig.getSourceSystemType())) { - retVal = IOUtils.toByteArray(new URL(valueSetConfig.getSourceUrl())); + retVal = VsUtils.downloadAsByteArray(new URL(valueSetConfig.getSourceUrl())); } return retVal; } diff --git a/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/utils/VsUtils.java b/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/utils/VsUtils.java new file mode 100644 index 00000000000..a8504e63f03 --- /dev/null +++ b/husky-communication/husky-valueset-gen/src/main/java/org/projecthusky/valueset/utils/VsUtils.java @@ -0,0 +1,54 @@ +/** + * + */ +package org.projecthusky.valueset.utils; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.nio.charset.StandardCharsets; + +import org.apache.commons.io.IOUtils; + +/** + * + */ +public class VsUtils { + + /** + * Method to download as a string + * + * @param url + * the url to download form + * @return the string of the downloaded content + * @throws IOException + * occures on errors during download + */ + public static String downloadAsString(URL url) throws IOException { + URLConnection connection = url.openConnection(); + connection.setRequestProperty("User-Agent", "Mozilla/5.0 Gecko/20100316 Firefox/3.6.2"); + InputStream is = connection.getInputStream(); + String downloadedString = IOUtils.toString(is, StandardCharsets.UTF_8); + return downloadedString; + } + + /** + * Method to download as a byte array + * + * @param url + * the url to download form + * @return the byte array of the downloaded content + * @throws IOException + * occures on errors during download + */ + public static byte[] downloadAsByteArray(URL url) throws IOException { + URLConnection connection = url.openConnection(); + connection.setRequestProperty("User-Agent", + "Mozilla/5.0 Gecko/20100316 Firefox/3.6.2"); + InputStream is = connection.getInputStream(); + byte[] downloadedBytes = IOUtils.toByteArray(is, is.available()); + return downloadedBytes; + } + +}