Skip to content

Commit 098cf55

Browse files
committed
code cleanup, generated bundle now also copied to project build dir
Generating the bundle in the prepare-package phase requires a "manual" copy to the project build directory.
1 parent c6f30e5 commit 098cf55

File tree

2 files changed

+24
-15
lines changed

2 files changed

+24
-15
lines changed

dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/BundleGenerator.java

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,15 @@ public class BundleGenerator
7272

7373
private final Path projectBaseDir;
7474
private final Path baseFolder;
75+
private final Path projectBuildDirectory;
7576

76-
public BundleGenerator(Path projectBaseDir, Path baseFolder) throws MojoExecutionException
77+
public BundleGenerator(Path projectBaseDir, Path baseFolder, Path projectBuildDirectory)
78+
throws MojoExecutionException
7779
{
78-
this.projectBaseDir = projectBaseDir;
79-
this.baseFolder = baseFolder;
80+
this.projectBaseDir = Objects.requireNonNull(projectBaseDir, "projectBaseDir");
81+
this.baseFolder = Objects.requireNonNull(baseFolder, "baseFolder");
82+
this.projectBuildDirectory = Objects.requireNonNull(projectBuildDirectory, "projectBuildDirectory");
8083

81-
if (projectBaseDir == null)
82-
throw new MojoExecutionException("projectBaseDir not defined");
83-
if (baseFolder == null)
84-
throw new MojoExecutionException("baseFolder not defined");
8584
if (!Files.isReadable(baseFolder))
8685
throw new MojoExecutionException("baseFolder '" + baseFolder.toString() + "' not readable");
8786
}
@@ -93,15 +92,17 @@ private Path relativeToProjectDir(Path path)
9392

9493
public void generateAndSaveBundle() throws MojoFailureException
9594
{
95+
final Path bundleFilename = getBundleFilename();
96+
9697
Bundle bundle;
9798
try
9899
{
99-
logger.info("Generating bundle at {} ...", relativeToProjectDir(getBundleFilename()));
100+
logger.info("Generating bundle at {} ...", relativeToProjectDir(bundleFilename));
100101
bundle = generateBundle();
101102
}
102103
catch (IOException e)
103104
{
104-
logger.error("Error while generating bundle", e);
105+
logger.error("Unable to generate bundle", e);
105106
throw new MojoFailureException(e);
106107
}
107108

@@ -115,12 +116,16 @@ public void generateAndSaveBundle() throws MojoFailureException
115116

116117
try
117118
{
118-
saveBundle(bundle);
119-
logger.info("Bundle saved at {}", relativeToProjectDir(getBundleFilename()));
119+
saveBundle(bundle, bundleFilename);
120+
logger.info("Bundle saved at {}", relativeToProjectDir(bundleFilename));
121+
122+
Path target = projectBuildDirectory.resolve("classes/fhir/" + BUNDLE_FILENAME);
123+
Files.copy(bundleFilename, target);
124+
logger.info("Bundle copied to {}", relativeToProjectDir(target));
120125
}
121126
catch (IOException | TransformerException e)
122127
{
123-
logger.error("Error while generating bundle", e);
128+
logger.error("Unable to save bundle", e);
124129
throw new MojoFailureException(e);
125130
}
126131
}
@@ -334,11 +339,11 @@ private String toLabel(BundleEntryComponent entry)
334339
};
335340
}
336341

337-
private void saveBundle(Bundle bundle) throws IOException, TransformerException
342+
private void saveBundle(Bundle bundle, Path bundleFilename) throws IOException, TransformerException
338343
{
339344
String xml = newXmlParser().encodeResourceToString(bundle);
340345

341-
try (OutputStream out = Files.newOutputStream(getBundleFilename());
346+
try (OutputStream out = Files.newOutputStream(bundleFilename);
342347
OutputStreamWriter writer = new OutputStreamWriter(out, StandardCharsets.UTF_8))
343348
{
344349
// minimized output: empty-element tags, no indentation, no line-breaks

dsf-maven/dsf-maven-plugin/src/main/java/dev/dsf/maven/bundle/GenerateFhirBundleMojo.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@ public class GenerateFhirBundleMojo extends AbstractMojo
1919
@Parameter(defaultValue = "dsf.baseFolder", required = true)
2020
private File baseFolder;
2121

22+
@Parameter(defaultValue = "${project.build.directory}", readonly = true, required = true)
23+
private File projectBuildDirectory;
24+
2225
@Override
2326
public void execute() throws MojoExecutionException, MojoFailureException
2427
{
2528
getLog().debug("projectBaseDir: " + projectBaseDir);
2629
getLog().debug("baseFolder: " + baseFolder);
2730

28-
new BundleGenerator(projectBaseDir.toPath(), baseFolder.toPath()).generateAndSaveBundle();
31+
new BundleGenerator(projectBaseDir.toPath(), baseFolder.toPath(), projectBuildDirectory.toPath())
32+
.generateAndSaveBundle();
2933
}
3034
}

0 commit comments

Comments
 (0)