Skip to content

Commit 416e22b

Browse files
committed
Rename AppCDS build items now that we support JEP 483
1 parent 6e90039 commit 416e22b

File tree

13 files changed

+136
-130
lines changed

13 files changed

+136
-130
lines changed

core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/AppCDSRequestedBuildItem.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/AppCDSResultBuildItem.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/AppCDSContainerImageBuildItem.java renamed to core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/JvmStartupOptimizerArchiveContainerImageBuildItem.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
/**
66
* Indicates that a specific container image should be used to generate the AppCDS file
77
*/
8-
public final class AppCDSContainerImageBuildItem extends SimpleBuildItem {
8+
public final class JvmStartupOptimizerArchiveContainerImageBuildItem extends SimpleBuildItem {
99

1010
private final String containerImage;
1111

12-
public AppCDSContainerImageBuildItem(String containerImage) {
12+
public JvmStartupOptimizerArchiveContainerImageBuildItem(String containerImage) {
1313
this.containerImage = containerImage;
1414
}
1515

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package io.quarkus.deployment.pkg.builditem;
2+
3+
import java.nio.file.Path;
4+
5+
import io.quarkus.builder.item.SimpleBuildItem;
6+
7+
/**
8+
* Build item to indicate to the various steps that generation
9+
* of a JVM startup archive has been requested
10+
*/
11+
public final class JvmStartupOptimizerArchiveRequestedBuildItem extends SimpleBuildItem {
12+
13+
/**
14+
* Directory where various files needed for JVM startup archive generation will reside
15+
*/
16+
private final Path dir;
17+
private final JvmStartupOptimizerArchiveType type;
18+
19+
public JvmStartupOptimizerArchiveRequestedBuildItem(Path dir, JvmStartupOptimizerArchiveType type) {
20+
this.dir = dir;
21+
this.type = type;
22+
}
23+
24+
public Path getDir() {
25+
return dir;
26+
}
27+
28+
public JvmStartupOptimizerArchiveType getType() {
29+
return type;
30+
}
31+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package io.quarkus.deployment.pkg.builditem;
2+
3+
import java.nio.file.Path;
4+
5+
import io.quarkus.builder.item.SimpleBuildItem;
6+
7+
/**
8+
* A build item containing the result of the JVM startup archive generation process
9+
*/
10+
public final class JvmStartupOptimizerArchiveResultBuildItem extends SimpleBuildItem {
11+
12+
/**
13+
* The file containing the generated archive
14+
*/
15+
private final Path archive;
16+
/**
17+
* The type of archive generated
18+
*/
19+
private final JvmStartupOptimizerArchiveType type;
20+
21+
public JvmStartupOptimizerArchiveResultBuildItem(Path archive) {
22+
this(archive, JvmStartupOptimizerArchiveType.AppCDS);
23+
}
24+
25+
public JvmStartupOptimizerArchiveResultBuildItem(Path archive, JvmStartupOptimizerArchiveType type) {
26+
this.archive = archive;
27+
this.type = type;
28+
}
29+
30+
public Path getArchive() {
31+
return archive;
32+
}
33+
34+
public JvmStartupOptimizerArchiveType getType() {
35+
return type;
36+
}
37+
}

core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@
6969
import io.quarkus.deployment.builditem.TransformedClassesBuildItem;
7070
import io.quarkus.deployment.configuration.ClassLoadingConfig;
7171
import io.quarkus.deployment.pkg.PackageConfig;
72-
import io.quarkus.deployment.pkg.builditem.AppCDSRequestedBuildItem;
7372
import io.quarkus.deployment.pkg.builditem.ArtifactResultBuildItem;
7473
import io.quarkus.deployment.pkg.builditem.BuildSystemTargetBuildItem;
7574
import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
7675
import io.quarkus.deployment.pkg.builditem.JarBuildItem;
76+
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveRequestedBuildItem;
7777
import io.quarkus.deployment.pkg.builditem.NativeImageSourceJarBuildItem;
7878
import io.quarkus.deployment.pkg.builditem.OutputTargetBuildItem;
7979
import io.quarkus.deployment.pkg.builditem.UberJarIgnoredResourceBuildItem;
@@ -198,10 +198,12 @@ public JarBuildItem buildRunnerJar(CurateOutcomeBuildItem curateOutcomeBuildItem
198198
List<UberJarIgnoredResourceBuildItem> uberJarIgnoredResourceBuildItems,
199199
QuarkusBuildCloseablesBuildItem closeablesBuildItem,
200200
List<AdditionalApplicationArchiveBuildItem> additionalApplicationArchiveBuildItems,
201-
MainClassBuildItem mainClassBuildItem, Optional<AppCDSRequestedBuildItem> appCDS) throws Exception {
201+
MainClassBuildItem mainClassBuildItem,
202+
Optional<JvmStartupOptimizerArchiveRequestedBuildItem> jvmStartupOptimizerArchiveRequested)
203+
throws Exception {
202204

203-
if (appCDS.isPresent()) {
204-
handleAppCDSSupportFileGeneration(transformedClasses, generatedClasses, appCDS.get());
205+
if (jvmStartupOptimizerArchiveRequested.isPresent()) {
206+
handleAppCDSSupportFileGeneration(transformedClasses, generatedClasses, jvmStartupOptimizerArchiveRequested.get());
205207
}
206208

207209
return switch (packageConfig.jar().type()) {
@@ -224,9 +226,11 @@ public JarBuildItem buildRunnerJar(CurateOutcomeBuildItem curateOutcomeBuildItem
224226
// the idea here is to just dump the class names of the generated and transformed classes into a file
225227
// that is read at runtime when AppCDS generation is requested
226228
private void handleAppCDSSupportFileGeneration(TransformedClassesBuildItem transformedClasses,
227-
List<GeneratedClassBuildItem> generatedClasses, AppCDSRequestedBuildItem appCDS) throws IOException {
228-
Path appCDsDir = appCDS.getAppCDSDir();
229-
Path generatedClassesFile = appCDsDir.resolve("generatedAndTransformed.lst");
229+
List<GeneratedClassBuildItem> generatedClasses,
230+
JvmStartupOptimizerArchiveRequestedBuildItem jvmStartupOptimizerArchiveRequested)
231+
throws IOException {
232+
Path dir = jvmStartupOptimizerArchiveRequested.getDir();
233+
Path generatedClassesFile = dir.resolve("generatedAndTransformed.lst");
230234
try (BufferedWriter writer = Files.newBufferedWriter(generatedClassesFile, StandardOpenOption.CREATE)) {
231235
StringBuilder classes = new StringBuilder();
232236
for (GeneratedClassBuildItem generatedClass : generatedClasses) {

core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JvmStartupOptimizerArchiveBuildStep.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
import io.quarkus.deployment.annotations.BuildProducer;
2222
import io.quarkus.deployment.annotations.BuildStep;
2323
import io.quarkus.deployment.pkg.PackageConfig;
24-
import io.quarkus.deployment.pkg.builditem.AppCDSContainerImageBuildItem;
25-
import io.quarkus.deployment.pkg.builditem.AppCDSRequestedBuildItem;
26-
import io.quarkus.deployment.pkg.builditem.AppCDSResultBuildItem;
2724
import io.quarkus.deployment.pkg.builditem.ArtifactResultBuildItem;
2825
import io.quarkus.deployment.pkg.builditem.CompiledJavaVersionBuildItem;
2926
import io.quarkus.deployment.pkg.builditem.JarBuildItem;
27+
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveContainerImageBuildItem;
28+
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveRequestedBuildItem;
29+
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveResultBuildItem;
3030
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveType;
3131
import io.quarkus.deployment.pkg.builditem.OutputTargetBuildItem;
3232
import io.quarkus.deployment.steps.MainClassBuildStep;
@@ -44,30 +44,31 @@ public class JvmStartupOptimizerArchiveBuildStep {
4444

4545
@BuildStep(onlyIf = AppCDSRequired.class)
4646
public void requested(PackageConfig packageConfig, OutputTargetBuildItem outputTarget,
47-
BuildProducer<AppCDSRequestedBuildItem> producer)
47+
BuildProducer<JvmStartupOptimizerArchiveRequestedBuildItem> producer)
4848
throws IOException {
49-
Path appCDSDir = outputTarget.getOutputDirectory().resolve("appcds");
50-
IoUtils.createOrEmptyDir(appCDSDir);
49+
Path archiveDir = outputTarget.getOutputDirectory().resolve("jvmstartuparchive");
50+
IoUtils.createOrEmptyDir(archiveDir);
5151

52-
producer.produce(new AppCDSRequestedBuildItem(outputTarget.getOutputDirectory().resolve("appcds"),
53-
packageConfig.jar().appcds().useAot() ? JvmStartupOptimizerArchiveType.AOT
54-
: JvmStartupOptimizerArchiveType.AppCDS));
52+
producer.produce(
53+
new JvmStartupOptimizerArchiveRequestedBuildItem(outputTarget.getOutputDirectory().resolve("jvmstartuparchive"),
54+
packageConfig.jar().appcds().useAot() ? JvmStartupOptimizerArchiveType.AOT
55+
: JvmStartupOptimizerArchiveType.AppCDS));
5556
}
5657

5758
@BuildStep(onlyIfNot = NativeOrNativeSourcesBuild.class)
58-
public void build(Optional<AppCDSRequestedBuildItem> requested,
59+
public void build(Optional<JvmStartupOptimizerArchiveRequestedBuildItem> requested,
5960
JarBuildItem jarResult, OutputTargetBuildItem outputTarget, PackageConfig packageConfig,
6061
CompiledJavaVersionBuildItem compiledJavaVersion,
61-
Optional<AppCDSContainerImageBuildItem> appCDSContainerImage,
62-
BuildProducer<AppCDSResultBuildItem> appCDS,
62+
Optional<JvmStartupOptimizerArchiveContainerImageBuildItem> jvmStartupOptimizerArchiveContainerImage,
63+
BuildProducer<JvmStartupOptimizerArchiveResultBuildItem> jvmStartupOptimizerArchive,
6364
BuildProducer<ArtifactResultBuildItem> artifactResult) throws Exception {
6465
if (requested.isEmpty()) {
6566
return;
6667
}
6768

6869
// to actually execute the commands needed to generate the AppCDS file, either the JVM in the container image will be used
6970
// (if specified), or the JVM running the build
70-
String containerImage = determineContainerImage(packageConfig, appCDSContainerImage);
71+
String containerImage = determineContainerImage(packageConfig, jvmStartupOptimizerArchiveContainerImage);
7172
String javaBinPath = null;
7273
if (containerImage == null) {
7374
javaBinPath = System.getProperty("java.home") + File.separator + "bin" + File.separator
@@ -117,18 +118,18 @@ public void build(Optional<AppCDSRequestedBuildItem> requested,
117118
}
118119
}
119120

120-
appCDS.produce(new AppCDSResultBuildItem(archivePath));
121+
jvmStartupOptimizerArchive.produce(new JvmStartupOptimizerArchiveResultBuildItem(archivePath));
121122
artifactResult.produce(new ArtifactResultBuildItem(archivePath, "appCDS", Collections.emptyMap()));
122123
}
123124

124125
private String determineContainerImage(PackageConfig packageConfig,
125-
Optional<AppCDSContainerImageBuildItem> appCDSContainerImage) {
126+
Optional<JvmStartupOptimizerArchiveContainerImageBuildItem> jvmStartupOptimizerArchiveContainer) {
126127
if (!packageConfig.jar().appcds().useContainer()) {
127128
return null;
128129
} else if (packageConfig.jar().appcds().builderImage().isPresent()) {
129130
return packageConfig.jar().appcds().builderImage().get();
130-
} else if (appCDSContainerImage.isPresent()) {
131-
return appCDSContainerImage.get().getContainerImage();
131+
} else if (jvmStartupOptimizerArchiveContainer.isPresent()) {
132+
return jvmStartupOptimizerArchiveContainer.get().getContainerImage();
132133
}
133134
return null;
134135
}

extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/ArcProcessor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
import io.quarkus.arc.runtime.BeanContainer;
6767
import io.quarkus.arc.runtime.LaunchModeProducer;
6868
import io.quarkus.arc.runtime.LoggerProducer;
69-
import io.quarkus.arc.runtime.appcds.AppCDSRecorder;
69+
import io.quarkus.arc.runtime.appcds.JvmStartupOptimizerArchiveRecorder;
7070
import io.quarkus.arc.runtime.context.ArcContextProvider;
7171
import io.quarkus.bootstrap.BootstrapDebug;
7272
import io.quarkus.deployment.Capabilities;
@@ -93,7 +93,7 @@
9393
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
9494
import io.quarkus.deployment.builditem.nativeimage.ReflectiveFieldBuildItem;
9595
import io.quarkus.deployment.builditem.nativeimage.ReflectiveMethodBuildItem;
96-
import io.quarkus.deployment.pkg.builditem.AppCDSRequestedBuildItem;
96+
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveRequestedBuildItem;
9797
import io.quarkus.runtime.LaunchMode;
9898
import io.quarkus.runtime.QuarkusApplication;
9999
import io.quarkus.runtime.annotations.QuarkusMain;
@@ -638,10 +638,10 @@ public PreBeanContainerBuildItem notifyBeanContainerListeners(ArcContainerBuildI
638638

639639
@Record(RUNTIME_INIT)
640640
@BuildStep
641-
public void signalBeanContainerReady(AppCDSRecorder recorder, PreBeanContainerBuildItem bi,
642-
Optional<AppCDSRequestedBuildItem> appCDSRequested,
641+
public void signalBeanContainerReady(JvmStartupOptimizerArchiveRecorder recorder, PreBeanContainerBuildItem bi,
642+
Optional<JvmStartupOptimizerArchiveRequestedBuildItem> jvmStartupOptimizerArchiveRequested,
643643
BuildProducer<BeanContainerBuildItem> beanContainerProducer) {
644-
if (appCDSRequested.isPresent()) {
644+
if (jvmStartupOptimizerArchiveRequested.isPresent()) {
645645
recorder.controlGenerationAndExit();
646646
}
647647
beanContainerProducer.produce(new BeanContainerBuildItem(bi.getValue()));

extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/appcds/AppCDSRecorder.java renamed to extensions/arc/runtime/src/main/java/io/quarkus/arc/runtime/appcds/JvmStartupOptimizerArchiveRecorder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
import io.quarkus.runtime.init.InitializationTaskRecorder;
77

88
@Recorder
9-
public class AppCDSRecorder {
9+
public class JvmStartupOptimizerArchiveRecorder {
1010

1111
public void controlGenerationAndExit() {
1212
if (ApplicationLifecycleManager.isAppCDSGeneration()) {
1313
InitializationTaskRecorder.preventFurtherRecorderSteps(5,
14-
"Unable to properly shutdown Quarkus application when creating AppCDS",
14+
"Unable to properly shutdown Quarkus application when creating JVM startup archive",
1515
PreventFurtherStepsException::new);
1616
}
1717
}

extensions/container-image/container-image-buildpack/deployment/src/main/java/io/quarkus/container/image/buildpack/deployment/BuildpackProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
import io.quarkus.deployment.annotations.BuildProducer;
3535
import io.quarkus.deployment.annotations.BuildStep;
3636
import io.quarkus.deployment.builditem.MainClassBuildItem;
37-
import io.quarkus.deployment.pkg.builditem.AppCDSResultBuildItem;
3837
import io.quarkus.deployment.pkg.builditem.ArtifactResultBuildItem;
3938
import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
4039
import io.quarkus.deployment.pkg.builditem.JarBuildItem;
40+
import io.quarkus.deployment.pkg.builditem.JvmStartupOptimizerArchiveResultBuildItem;
4141
import io.quarkus.deployment.pkg.builditem.NativeImageBuildItem;
4242
import io.quarkus.deployment.pkg.builditem.OutputTargetBuildItem;
4343
import io.quarkus.deployment.pkg.steps.NativeBuild;
@@ -71,7 +71,7 @@ public void buildFromJar(ContainerImageConfig containerImageConfig, BuildpackCon
7171
Optional<ContainerImageBuildRequestBuildItem> buildRequest,
7272
Optional<ContainerImagePushRequestBuildItem> pushRequest,
7373
List<ContainerImageLabelBuildItem> containerImageLabels,
74-
Optional<AppCDSResultBuildItem> appCDSResult,
74+
Optional<JvmStartupOptimizerArchiveResultBuildItem> jvmStartupOptimizerArchiveResult,
7575
BuildProducer<ArtifactResultBuildItem> artifactResultProducer,
7676
BuildProducer<ContainerImageBuilderBuildItem> containerImageBuilder) {
7777

0 commit comments

Comments
 (0)