3131import java .util .Collections ;
3232import java .util .HashMap ;
3333import java .util .HashSet ;
34+ import java .util .List ;
3435import java .util .Map ;
3536import java .util .Set ;
3637import java .util .regex .Pattern ;
5051import com .oracle .svm .core .option .OptionUtils ;
5152import com .oracle .svm .core .option .SubstrateOptionsParser ;
5253import com .oracle .svm .core .util .UserError ;
54+ import com .oracle .svm .hosted .jdk .ClassLoaderSupportFeatureJDK11OrLater ;
5355
5456@ AutomaticFeature
5557public final class LinkAtBuildTimeFeature implements Feature {
@@ -73,12 +75,12 @@ static final class Options {
7375 private Map <URI , Module > uriModuleMap ;
7476
7577 @ Override
76- public void afterRegistration ( AfterRegistrationAccess access ) {
77- ImageSingletons . add ( LinkAtBuildTimeSupport .class , new LinkAtBuildTimeSupport ( this ) );
78+ public List < Class <? extends Feature >> getRequiredFeatures ( ) {
79+ return Collections . singletonList ( ClassLoaderSupportFeatureJDK11OrLater .class );
7880 }
7981
8082 @ Override
81- public void beforeAnalysis ( BeforeAnalysisAccess access ) {
83+ public void afterRegistration ( AfterRegistrationAccess access ) {
8284 classLoaderSupport = ImageSingletons .lookup (ClassLoaderSupport .class );
8385
8486 var loader = ((FeatureImpl .BeforeAnalysisAccessImpl ) access ).getImageClassLoader ();
@@ -95,6 +97,8 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
9597 requireCompletePackageOrClass .put ("jdk.internal.reflect" , null );
9698
9799 Options .LinkAtBuildTime .getValue ().getValuesWithOrigins ().forEach (this ::extractOptionValue );
100+
101+ ImageSingletons .add (LinkAtBuildTimeSupport .class , new LinkAtBuildTimeSupport (this ));
98102 }
99103
100104 private void extractOptionValue (Pair <String , OptionOrigin > valueOrigin ) {
0 commit comments