Skip to content

Commit 7e995eb

Browse files
committed
Ignore AppCDS archives when generating quarkus-artifact.properties
1 parent fe8dfb6 commit 7e995eb

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

core/deployment/src/main/java/io/quarkus/runner/bootstrap/AugmentActionImpl.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.Collections;
1212
import java.util.HashMap;
1313
import java.util.List;
14+
import java.util.ListIterator;
1415
import java.util.Map;
1516
import java.util.Properties;
1617
import java.util.Set;
@@ -244,14 +245,14 @@ private void writeDebugSourceFile(BuildResult result) {
244245

245246
private void writeArtifactResultMetadataFile(BuildSystemTargetBuildItem outputTargetBuildItem,
246247
List<ArtifactResultBuildItem> artifactResultBuildItems) {
247-
ArtifactResultBuildItem lastArtifact = artifactResultBuildItems.get(artifactResultBuildItems.size() - 1);
248+
ArtifactResultBuildItem effectiveArtifact = effectiveArtifact(artifactResultBuildItems);
248249
Path quarkusArtifactMetadataPath = outputTargetBuildItem.getOutputDirectory().resolve("quarkus-artifact.properties");
249250
Properties properties = new Properties();
250-
properties.put("type", lastArtifact.getType());
251-
if (lastArtifact.getPath() != null) {
252-
properties.put("path", artifactPathForResultMetadata(outputTargetBuildItem, lastArtifact));
251+
properties.put("type", effectiveArtifact.getType());
252+
if (effectiveArtifact.getPath() != null) {
253+
properties.put("path", artifactPathForResultMetadata(outputTargetBuildItem, effectiveArtifact));
253254
} else {
254-
if (lastArtifact.getType().endsWith("-container")) {
255+
if (effectiveArtifact.getType().endsWith("-container")) {
255256
// in this case we write "path" as to contain the path to the artifact from which the container was built
256257
try {
257258
ArtifactResultBuildItem baseArtifact = artifactResultBuildItems.get(artifactResultBuildItems.size() - 2);
@@ -264,7 +265,7 @@ private void writeArtifactResultMetadataFile(BuildSystemTargetBuildItem outputTa
264265
}
265266
}
266267
}
267-
Map<String, String> metadata = lastArtifact.getMetadata();
268+
Map<String, String> metadata = effectiveArtifact.getMetadata();
268269
if (metadata != null) {
269270
for (Map.Entry<String, String> entry : metadata.entrySet()) {
270271
properties.put("metadata." + entry.getKey(), entry.getValue());
@@ -277,6 +278,18 @@ private void writeArtifactResultMetadataFile(BuildSystemTargetBuildItem outputTa
277278
}
278279
}
279280

281+
private ArtifactResultBuildItem effectiveArtifact(List<ArtifactResultBuildItem> artifactResultBuildItems) {
282+
ListIterator li = artifactResultBuildItems.listIterator(artifactResultBuildItems.size());
283+
while (li.hasPrevious()) {
284+
ArtifactResultBuildItem result = (ArtifactResultBuildItem) li.previous();
285+
if ("appCDS".equals(result.getType())) {
286+
continue;
287+
}
288+
return result;
289+
}
290+
throw new IllegalStateException("Unable to locate effective artifact");
291+
}
292+
280293
private static String artifactPathForResultMetadata(BuildSystemTargetBuildItem outputTargetBuildItem,
281294
ArtifactResultBuildItem artifactResultBuildItem) {
282295
return outputTargetBuildItem.getOutputDirectory().relativize(artifactResultBuildItem.getPath()).toString();

0 commit comments

Comments
 (0)