Add fhirVersions to package creator, auto-selected by --fhir-version

This commit is contained in:
Tadgh 2021-03-16 13:43:35 -04:00
parent 14f12e7dab
commit fb36294330
2 changed files with 14 additions and 3 deletions

View File

@ -24,6 +24,8 @@ import ca.uhn.fhir.parser.DataFormatException;
import ca.uhn.fhir.rest.api.EncodingEnum; import ca.uhn.fhir.rest.api.EncodingEnum;
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
import com.google.common.io.Files; import com.google.common.io.Files;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Options; import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException; import org.apache.commons.cli.ParseException;
@ -37,7 +39,6 @@ import org.hl7.fhir.utilities.npm.PackageGenerator;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.print.attribute.standard.MediaSize;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -67,7 +68,7 @@ public class CreatePackageCommand extends BaseCommand {
@Override @Override
public String getCommandDescription() { public String getCommandDescription() {
return "Create an NPM package using the FHIR packging format"; return "Create an NPM package using the FHIR packaging format";
} }
@Override @Override
@ -129,6 +130,7 @@ public class CreatePackageCommand extends BaseCommand {
manifestGenerator.name(myPackageName); manifestGenerator.name(myPackageName);
manifestGenerator.version(myPackageVersion); manifestGenerator.version(myPackageVersion);
manifestGenerator.description(myPackageDescription); manifestGenerator.description(myPackageDescription);
injectFhirVersionsArray(manifestGenerator);
if (isNotBlank(myPackageDescription)) { if (isNotBlank(myPackageDescription)) {
manifestGenerator.description(myPackageDescription); manifestGenerator.description(myPackageDescription);
} }
@ -177,6 +179,13 @@ public class CreatePackageCommand extends BaseCommand {
} }
} }
private void injectFhirVersionsArray(PackageGenerator manifestGenerator) {
JsonObject rootJsonObject = manifestGenerator.getRootJsonObject();
JsonArray fhirVersionsArray = new JsonArray();
fhirVersionsArray.add(myFhirCtx.getVersion().getVersion().getFhirVersionString());
rootJsonObject.add("fhirVersions", fhirVersionsArray);
}
public void addFiles(String[] thePackageValues, String theFolder) throws ParseException, ExecutionException { public void addFiles(String[] thePackageValues, String theFolder) throws ParseException, ExecutionException {
if (thePackageValues != null) { if (thePackageValues != null) {
for (String nextPackageValue : thePackageValues) { for (String nextPackageValue : thePackageValues) {

View File

@ -101,6 +101,9 @@ public class CreatePackageCommandTest extends BaseTest {
String expectedPackageJson = "{\n" + String expectedPackageJson = "{\n" +
" \"name\": \"com.example.ig\",\n" + " \"name\": \"com.example.ig\",\n" +
" \"version\": \"1.0.1\",\n" + " \"version\": \"1.0.1\",\n" +
" \"fhirVersions\": [\n" +
" \"4.0.1\"\n" +
" ],\n" +
" \"dependencies\": {\n" + " \"dependencies\": {\n" +
" \"hl7.fhir.core\": \"4.0.1\",\n" + " \"hl7.fhir.core\": \"4.0.1\",\n" +
" \"foo.bar\": \"1.2.3\"\n" + " \"foo.bar\": \"1.2.3\"\n" +
@ -111,7 +114,6 @@ public class CreatePackageCommandTest extends BaseTest {
// Try parsing the module again to make sure we can // Try parsing the module again to make sure we can
NpmPackage loadedPackage = NpmPackage.fromPackage(new FileInputStream(igArchive)); NpmPackage loadedPackage = NpmPackage.fromPackage(new FileInputStream(igArchive));
assertEquals("com.example.ig", loadedPackage.name()); assertEquals("com.example.ig", loadedPackage.name());
} }
@Test @Test