From 48098d95570a3d6a70812831f261de8267db6620 Mon Sep 17 00:00:00 2001 From: dotasek Date: Thu, 6 Feb 2025 16:43:18 -0500 Subject: [PATCH] DO-20250204-1 (#1036) * Commit 1 * Commit 2 --- .../hl7/fhir/igtools/publisher/Publisher.java | 24 +++++-------------- .../igtools/renderers/CrossViewRenderer.java | 5 ++-- .../fhir/igtools/web/WebSourceProvider.java | 3 ++- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/publisher/Publisher.java b/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/publisher/Publisher.java index 4be42cff..501fe040 100644 --- a/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/publisher/Publisher.java +++ b/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/publisher/Publisher.java @@ -323,21 +323,9 @@ import org.hl7.fhir.r5.utils.structuremap.StructureMapUtilities; import org.hl7.fhir.r5.utils.validation.IValidationProfileUsageTracker; import org.hl7.fhir.r5.utils.validation.ValidatorSession; -import org.hl7.fhir.utilities.CommaSeparatedStringBuilder; -import org.hl7.fhir.utilities.DurationUtil; -import org.hl7.fhir.utilities.FhirPublication; -import org.hl7.fhir.utilities.IniFile; -import org.hl7.fhir.utilities.MarkDownProcessor; +import org.hl7.fhir.utilities.*; import org.hl7.fhir.utilities.MarkDownProcessor.Dialect; -import org.hl7.fhir.utilities.MimeType; -import org.hl7.fhir.utilities.StandardsStatus; -import org.hl7.fhir.utilities.StringPair; -import org.hl7.fhir.utilities.FileUtilities; -import org.hl7.fhir.utilities.TimeTracker; import org.hl7.fhir.utilities.TimeTracker.Session; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.utilities.VersionUtilities; -import org.hl7.fhir.utilities.ZipGenerator; import org.hl7.fhir.utilities.filesystem.CSFile; import org.hl7.fhir.utilities.http.HTTPResult; import org.hl7.fhir.utilities.http.ManagedWebAccess; @@ -3227,7 +3215,7 @@ else if (p.getValue().equals("no-experimental-content")) break; case "auto-oid-root": oidRoot = p.getValue(); - if (!Utilities.isValidOID(oidRoot)) { + if (!OIDUtilities.isValidOID(oidRoot)) { throw new Error("Invalid oid found in assign-missing-oids-root: "+oidRoot); } oidIni = new IniFile(oidIniLocation()); @@ -4049,11 +4037,11 @@ protected static void unzipToDirectory(InputStream inputStream, String zipTarget if (entry.isDirectory()) { continue; } - String n = Utilities.makeOSSafe(entry.getName()); + String n = CompressionUtilities.makeOSSafe(entry.getName()); String filename = Utilities.path(zipTargetDirectory, n); String dir = FileUtilities.getDirectoryForFile(filename); - Utilities.zipSlipProtect(n, Path.of(dir)); + CompressionUtilities.zipSlipProtect(n, Path.of(dir)); FileUtilities.createDirectory(dir); FileOutputStream output = new FileOutputStream(filename); @@ -4194,7 +4182,7 @@ private void loadIg(ImplementationGuideDependsOnComponent dep, int index, boolea String name = dep.getId(); if (!dep.hasId()) { logMessage("Dependency '"+idForDep(dep)+"' has no id, so can't be referred to in markdown in the IG"); - name = "u"+Utilities.makeUuidLC().replace("-", ""); + name = "u"+UUIDUtilities.makeUuidLC().replace("-", ""); } if (!isValidIGToken(name)) throw new Exception("IG Name must be a valid token ("+name+")"); @@ -14653,7 +14641,7 @@ private static String convertUrlToLocalIg(String ig) throws IOException { String ghUrl = "https://github.com/"+org+"/"+repo+"/archive/refs/heads/"+branch+".zip"; InputStream zip = fetchGithubUrl(ghUrl); - Utilities.unzip(zip, Paths.get(f.getAbsolutePath())); + CompressionUtilities.unzip(zip, Paths.get(f.getAbsolutePath())); for (File fd : f.listFiles()) { if (fd.isDirectory()) { return fd.getAbsolutePath(); diff --git a/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/renderers/CrossViewRenderer.java b/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/renderers/CrossViewRenderer.java index 1a639677..b2d18d7a 100644 --- a/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/renderers/CrossViewRenderer.java +++ b/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/renderers/CrossViewRenderer.java @@ -51,6 +51,7 @@ import org.hl7.fhir.r5.utils.UserDataNames; import org.hl7.fhir.utilities.HL7WorkGroups; import org.hl7.fhir.utilities.HL7WorkGroups.HL7WorkGroup; +import org.hl7.fhir.utilities.OIDUtilities; import org.hl7.fhir.utilities.StandardsStatus; import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.validation.ValidationOptions; @@ -976,7 +977,7 @@ else if (l > 60) { } l = l + (ec.hasExpression() ? ec.getExpression().length() : 0); if (ec.getType() == ExtensionContextType.ELEMENT) { - String ref = Utilities.oidRoot(ec.getExpression()); + String ref = OIDUtilities.oidRoot(ec.getExpression()); if (ref.startsWith("@")) ref = ref.substring(1); if (ref.contains(".")) { @@ -1206,7 +1207,7 @@ private void findValueSets(List list, OperationDefinition opd) { for (OperationDefinitionParameterComponent p : opd.getParameter()) { if (p.hasBinding()) { resolveVS(list, p.getBinding().getValueSet(), opd); - }; + }; } } diff --git a/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/web/WebSourceProvider.java b/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/web/WebSourceProvider.java index f14600ed..17d0e5f3 100644 --- a/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/web/WebSourceProvider.java +++ b/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/web/WebSourceProvider.java @@ -16,6 +16,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import org.hl7.fhir.utilities.CompressionUtilities; import org.hl7.fhir.utilities.FTPClient; import org.hl7.fhir.utilities.FileUtilities; import org.hl7.fhir.utilities.Utilities; @@ -115,7 +116,7 @@ protected static void cleanZipTargets(Path target, InputStream inputStream) thro try (ZipInputStream zis = new ZipInputStream(inputStream)) { ZipEntry zipEntry = zis.getNextEntry(); while (zipEntry != null) { - Path newPath = Utilities.zipSlipProtect(Utilities.makeOSSafe(zipEntry.getName()), target); + Path newPath = CompressionUtilities.zipSlipProtect(CompressionUtilities.makeOSSafe(zipEntry.getName()), target); if (Files.exists(newPath)) { Files.delete(newPath); }