31
31
import java .util .Collections ;
32
32
import java .util .HashMap ;
33
33
import java .util .HashSet ;
34
+ import java .util .List ;
34
35
import java .util .Map ;
35
36
import java .util .Set ;
36
37
import java .util .regex .Pattern ;
50
51
import com .oracle .svm .core .option .OptionUtils ;
51
52
import com .oracle .svm .core .option .SubstrateOptionsParser ;
52
53
import com .oracle .svm .core .util .UserError ;
54
+ import com .oracle .svm .hosted .jdk .ClassLoaderSupportFeatureJDK11OrLater ;
53
55
54
56
@ AutomaticFeature
55
57
public final class LinkAtBuildTimeFeature implements Feature {
@@ -73,12 +75,12 @@ static final class Options {
73
75
private Map <URI , Module > uriModuleMap ;
74
76
75
77
@ 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 );
78
80
}
79
81
80
82
@ Override
81
- public void beforeAnalysis ( BeforeAnalysisAccess access ) {
83
+ public void afterRegistration ( AfterRegistrationAccess access ) {
82
84
classLoaderSupport = ImageSingletons .lookup (ClassLoaderSupport .class );
83
85
84
86
var loader = ((FeatureImpl .BeforeAnalysisAccessImpl ) access ).getImageClassLoader ();
@@ -95,6 +97,8 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
95
97
requireCompletePackageOrClass .put ("jdk.internal.reflect" , null );
96
98
97
99
Options .LinkAtBuildTime .getValue ().getValuesWithOrigins ().forEach (this ::extractOptionValue );
100
+
101
+ ImageSingletons .add (LinkAtBuildTimeSupport .class , new LinkAtBuildTimeSupport (this ));
98
102
}
99
103
100
104
private void extractOptionValue (Pair <String , OptionOrigin > valueOrigin ) {
0 commit comments