package io.quarkus.arc.deployment;

import static io.quarkus.deployment.annotations.ExecutionTime.RUNTIME_INIT;

import java.util.List;

import io.quarkus.arc.runtime.ArcRecorder;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.ApplicationStartBuildItem;
import io.quarkus.deployment.builditem.ServiceStartBuildItem;
import io.quarkus.deployment.builditem.ShutdownContextBuildItem;

public class LifecycleEventsBuildStep {

    @BuildStep
    @Record(RUNTIME_INIT)
    ApplicationStartBuildItem startupEvent(ArcRecorder recorder,
            List<ServiceStartBuildItem> startList,
            BeanContainerBuildItem beanContainer,
            ShutdownContextBuildItem shutdown) {
        recorder.handleLifecycleEvents(shutdown, beanContainer.getValue());
        return new ApplicationStartBuildItem();
    }

}

@@ -225,16 +225,66 @@
 ldStep;%0A
+import io.quarkus.deployment.annotations.Consume;%0A
 import i
@@ -324,16 +324,16 @@
 Record;%0A
-
 import i
@@ -382,32 +382,108 @@
 StartBuildItem;%0A
+import io.quarkus.deployment.builditem.RuntimeConfigSetupCompleteBuildItem;%0A
 import io.quarku
@@ -635,16 +635,72 @@
 Step %7B%0A%0A
+    @Consume(RuntimeConfigSetupCompleteBuildItem.class)%0A
     @Bui

Make sure the StartupEvent is fired after the runtime config is set