Skip to content

Commit 9985762

Browse files
committed
[GR-68320] Track preserved elements.
PullRequest: graal/21780
2 parents 6de9622 + da799cd commit 9985762

File tree

62 files changed

+906
-604
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+906
-604
lines changed

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/hosted/RuntimeJNIAccess.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public static void register(Class<?>... classes) {
7979
* @since 22.3
8080
*/
8181
public static void register(Executable... methods) {
82-
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), false, methods);
82+
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), false, false, methods);
8383
}
8484

8585
/**
@@ -92,7 +92,7 @@ public static void register(Executable... methods) {
9292
* @since 22.3
9393
*/
9494
public static void register(Field... fields) {
95-
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), false, fields);
95+
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), false, false, fields);
9696
}
9797

9898
private RuntimeJNIAccess() {

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/hosted/RuntimeProxyCreation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public final class RuntimeProxyCreation {
6262
* @since 22.3
6363
*/
6464
public static void register(Class<?>... interfaces) {
65-
ImageSingletons.lookup(RuntimeProxyRegistrySupport.class).registerProxy(AccessCondition.unconditional(), interfaces);
65+
ImageSingletons.lookup(RuntimeProxyRegistrySupport.class).registerProxy(AccessCondition.unconditional(), false, interfaces);
6666
}
6767

6868
private RuntimeProxyCreation() {

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/hosted/RuntimeReflection.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public static void register(Class<?>... classes) {
8080
* @since 23.0
8181
*/
8282
public static void registerClassLookup(String className) {
83-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerClassLookup(AccessCondition.unconditional(), className);
83+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerClassLookup(AccessCondition.unconditional(), false, className);
8484
}
8585

8686
/**
@@ -91,7 +91,7 @@ public static void registerClassLookup(String className) {
9191
* @since 19.0
9292
*/
9393
public static void register(Executable... methods) {
94-
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), false, methods);
94+
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), false, false, methods);
9595
}
9696

9797
/**
@@ -103,7 +103,7 @@ public static void register(Executable... methods) {
103103
* @since 21.3
104104
*/
105105
public static void registerAsQueried(Executable... methods) {
106-
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), true, methods);
106+
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), true, false, methods);
107107
}
108108

109109
/**
@@ -116,7 +116,7 @@ public static void registerAsQueried(Executable... methods) {
116116
* @since 23.0
117117
*/
118118
public static void registerMethodLookup(Class<?> declaringClass, String methodName, Class<?>... parameterTypes) {
119-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerMethodLookup(AccessCondition.unconditional(), declaringClass, methodName, parameterTypes);
119+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerMethodLookup(AccessCondition.unconditional(), false, declaringClass, methodName, parameterTypes);
120120
}
121121

122122
/**
@@ -130,7 +130,7 @@ public static void registerMethodLookup(Class<?> declaringClass, String methodNa
130130
* @since 23.0
131131
*/
132132
public static void registerConstructorLookup(Class<?> declaringClass, Class<?>... parameterTypes) {
133-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerConstructorLookup(AccessCondition.unconditional(), declaringClass, parameterTypes);
133+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerConstructorLookup(AccessCondition.unconditional(), false, declaringClass, parameterTypes);
134134
}
135135

136136
/**
@@ -141,7 +141,7 @@ public static void registerConstructorLookup(Class<?> declaringClass, Class<?>..
141141
* @since 19.0
142142
*/
143143
public static void register(Field... fields) {
144-
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), false, fields);
144+
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), false, false, fields);
145145
}
146146

147147
/**
@@ -153,7 +153,7 @@ public static void register(Field... fields) {
153153
* @since 19.0
154154
*/
155155
public static void registerFieldLookup(Class<?> declaringClass, String fieldName) {
156-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerFieldLookup(AccessCondition.unconditional(), declaringClass, fieldName);
156+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerFieldLookup(AccessCondition.unconditional(), false, declaringClass, fieldName);
157157
}
158158

159159
/**
@@ -162,7 +162,7 @@ public static void registerFieldLookup(Class<?> declaringClass, String fieldName
162162
* @since 23.0
163163
*/
164164
public static void registerAllClasses(Class<?> declaringClass) {
165-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllClassesQuery(AccessCondition.unconditional(), declaringClass);
165+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllClassesQuery(AccessCondition.unconditional(), false, declaringClass);
166166
}
167167

168168
/**
@@ -171,7 +171,7 @@ public static void registerAllClasses(Class<?> declaringClass) {
171171
* @since 23.0
172172
*/
173173
public static void registerAllDeclaredClasses(Class<?> declaringClass) {
174-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredClassesQuery(AccessCondition.unconditional(), declaringClass);
174+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredClassesQuery(AccessCondition.unconditional(), false, declaringClass);
175175
}
176176

177177
/**
@@ -181,7 +181,7 @@ public static void registerAllDeclaredClasses(Class<?> declaringClass) {
181181
* @since 23.0
182182
*/
183183
public static void registerAllMethods(Class<?> declaringClass) {
184-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllMethodsQuery(AccessCondition.unconditional(), true, declaringClass);
184+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllMethodsQuery(AccessCondition.unconditional(), true, false, declaringClass);
185185
}
186186

187187
/**
@@ -191,7 +191,7 @@ public static void registerAllMethods(Class<?> declaringClass) {
191191
* @since 23.0
192192
*/
193193
public static void registerAllDeclaredMethods(Class<?> declaringClass) {
194-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredMethodsQuery(AccessCondition.unconditional(), true, declaringClass);
194+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredMethodsQuery(AccessCondition.unconditional(), true, false, declaringClass);
195195
}
196196

197197
/**
@@ -201,7 +201,7 @@ public static void registerAllDeclaredMethods(Class<?> declaringClass) {
201201
* @since 23.0
202202
*/
203203
public static void registerAllConstructors(Class<?> declaringClass) {
204-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllConstructorsQuery(AccessCondition.unconditional(), true, declaringClass);
204+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllConstructorsQuery(AccessCondition.unconditional(), true, false, declaringClass);
205205
}
206206

207207
/**
@@ -211,7 +211,7 @@ public static void registerAllConstructors(Class<?> declaringClass) {
211211
* @since 23.0
212212
*/
213213
public static void registerAllDeclaredConstructors(Class<?> declaringClass) {
214-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredConstructorsQuery(AccessCondition.unconditional(), true, declaringClass);
214+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredConstructorsQuery(AccessCondition.unconditional(), true, false, declaringClass);
215215
}
216216

217217
/**
@@ -221,7 +221,7 @@ public static void registerAllDeclaredConstructors(Class<?> declaringClass) {
221221
* @since 23.0
222222
*/
223223
public static void registerAllFields(Class<?> declaringClass) {
224-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllFields(AccessCondition.unconditional(), declaringClass);
224+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllFields(AccessCondition.unconditional(), false, declaringClass);
225225
}
226226

227227
/**
@@ -231,7 +231,7 @@ public static void registerAllFields(Class<?> declaringClass) {
231231
* @since 23.0
232232
*/
233233
public static void registerAllDeclaredFields(Class<?> declaringClass) {
234-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredFields(AccessCondition.unconditional(), declaringClass);
234+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredFields(AccessCondition.unconditional(), false, declaringClass);
235235
}
236236

237237
/**
@@ -240,7 +240,7 @@ public static void registerAllDeclaredFields(Class<?> declaringClass) {
240240
* @since 23.0
241241
*/
242242
public static void registerAllNestMembers(Class<?> declaringClass) {
243-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllNestMembersQuery(AccessCondition.unconditional(), declaringClass);
243+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllNestMembersQuery(AccessCondition.unconditional(), false, declaringClass);
244244
}
245245

246246
/**
@@ -249,7 +249,7 @@ public static void registerAllNestMembers(Class<?> declaringClass) {
249249
* @since 23.0
250250
*/
251251
public static void registerAllPermittedSubclasses(Class<?> declaringClass) {
252-
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllPermittedSubclassesQuery(AccessCondition.unconditional(), declaringClass);
252+
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllPermittedSubclassesQuery(AccessCondition.unconditional(), false, declaringClass);
253253
}
254254

255255
/**

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/hosted/RuntimeResourceAccess.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public static void addResourceBundle(Module module, String baseBundleName, Local
109109
*/
110110
public static void addResourceBundle(Module module, String bundleName) {
111111
RuntimeResourceSupport.singleton().addResourceBundles(AccessCondition.unconditional(),
112-
withModuleName(module, bundleName));
112+
false, withModuleName(module, bundleName));
113113
}
114114

115115
private static String withModuleName(Module module, String str) {

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/hosted/RuntimeSerialization.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public static void registerIncludingAssociatedClasses(Class<?> clazz) {
8282
*/
8383
public static void register(Class<?>... classes) {
8484
for (Class<?> clazz : classes) {
85-
RuntimeSerializationSupport.singleton().register(AccessCondition.unconditional(), clazz);
85+
RuntimeSerializationSupport.singleton().register(AccessCondition.unconditional(), false, clazz);
8686
}
8787
}
8888

@@ -103,7 +103,7 @@ public static void register(Class<?>... classes) {
103103
@Deprecated(since = "24.2")
104104
@SuppressWarnings("unused")
105105
public static void registerWithTargetConstructorClass(Class<?> clazz, Class<?> customTargetConstructorClazz) {
106-
RuntimeSerializationSupport.singleton().register(AccessCondition.unconditional(), clazz);
106+
RuntimeSerializationSupport.singleton().register(AccessCondition.unconditional(), false, clazz);
107107
}
108108

109109
/**

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/impl/ReflectionRegistry.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,20 @@
4848

4949
public interface ReflectionRegistry {
5050
default void register(AccessCondition condition, Class<?>... classes) {
51-
Arrays.stream(classes).forEach(clazz -> register(condition, false, clazz));
51+
Arrays.stream(classes).forEach(clazz -> register(condition, false, false, clazz));
5252
}
5353

54-
void register(AccessCondition condition, boolean unsafeAllocated, Class<?> clazz);
54+
void register(AccessCondition condition, boolean unsafeAllocated, boolean preserved, Class<?> clazz);
5555

56-
void register(AccessCondition condition, boolean queriedOnly, Executable... methods);
56+
void register(AccessCondition condition, boolean queriedOnly, boolean preserved, Executable... methods);
5757

58-
void register(AccessCondition condition, boolean finalIsWritable, Field... fields);
58+
void register(AccessCondition condition, boolean finalIsWritable, boolean preserved, Field... fields);
5959

60-
void registerClassLookup(AccessCondition condition, String typeName);
60+
void registerClassLookup(AccessCondition condition, boolean preserved, String typeName);
6161

62-
void registerFieldLookup(AccessCondition condition, Class<?> declaringClass, String fieldName);
62+
void registerFieldLookup(AccessCondition condition, boolean preserved, Class<?> declaringClass, String fieldName);
6363

64-
void registerMethodLookup(AccessCondition condition, Class<?> declaringClass, String methodName, Class<?>... parameterTypes);
64+
void registerMethodLookup(AccessCondition condition, boolean preserved, Class<?> declaringClass, String methodName, Class<?>... parameterTypes);
6565

66-
void registerConstructorLookup(AccessCondition condition, Class<?> declaringClass, Class<?>... parameterTypes);
66+
void registerConstructorLookup(AccessCondition condition, boolean preserved, Class<?> declaringClass, Class<?>... parameterTypes);
6767
}

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/impl/RuntimeProxyCreationSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@
4343
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
4444

4545
public interface RuntimeProxyCreationSupport {
46-
void addProxyClass(AccessCondition condition, Class<?>... interfaces);
46+
void addProxyClass(AccessCondition condition, boolean preserved, Class<?>... interfaces);
4747
}

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/impl/RuntimeProxyRegistrySupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@
4343
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
4444

4545
public interface RuntimeProxyRegistrySupport {
46-
Class<?> registerProxy(AccessCondition condition, Class<?>... interfaces);
46+
Class<?> registerProxy(AccessCondition condition, boolean preserved, Class<?>... interfaces);
4747
}

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/impl/RuntimeReflectionSupport.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,27 @@
4444

4545
public interface RuntimeReflectionSupport extends ReflectionRegistry {
4646
// needed as reflection-specific ImageSingletons key
47-
void registerAllMethodsQuery(AccessCondition condition, boolean queriedOnly, Class<?> clazz);
47+
void registerAllMethodsQuery(AccessCondition condition, boolean queriedOnly, boolean preserved, Class<?> clazz);
4848

49-
void registerAllDeclaredMethodsQuery(AccessCondition condition, boolean queriedOnly, Class<?> clazz);
49+
void registerAllDeclaredMethodsQuery(AccessCondition condition, boolean queriedOnly, boolean preserved, Class<?> clazz);
5050

51-
void registerAllFields(AccessCondition condition, Class<?> clazz);
51+
void registerAllFields(AccessCondition condition, boolean preserved, Class<?> clazz);
5252

53-
void registerAllDeclaredFields(AccessCondition condition, Class<?> clazz);
53+
void registerAllDeclaredFields(AccessCondition condition, boolean preserved, Class<?> clazz);
5454

55-
void registerAllConstructorsQuery(AccessCondition condition, boolean queriedOnly, Class<?> clazz);
55+
void registerAllConstructorsQuery(AccessCondition condition, boolean queriedOnly, boolean preserved, Class<?> clazz);
5656

57-
void registerAllDeclaredConstructorsQuery(AccessCondition condition, boolean queriedOnly, Class<?> clazz);
57+
void registerAllDeclaredConstructorsQuery(AccessCondition condition, boolean queriedOnly, boolean preserved, Class<?> clazz);
5858

59-
void registerAllClassesQuery(AccessCondition condition, Class<?> clazz);
59+
void registerAllClassesQuery(AccessCondition condition, boolean preserved, Class<?> clazz);
6060

61-
void registerAllDeclaredClassesQuery(AccessCondition condition, Class<?> clazz);
61+
void registerAllDeclaredClassesQuery(AccessCondition condition, boolean preserved, Class<?> clazz);
6262

6363
void registerAllRecordComponentsQuery(AccessCondition condition, Class<?> clazz);
6464

65-
void registerAllPermittedSubclassesQuery(AccessCondition condition, Class<?> clazz);
65+
void registerAllPermittedSubclassesQuery(AccessCondition condition, boolean preserved, Class<?> clazz);
6666

67-
void registerAllNestMembersQuery(AccessCondition condition, Class<?> clazz);
67+
void registerAllNestMembersQuery(AccessCondition condition, boolean preserved, Class<?> clazz);
6868

6969
void registerAllSignersQuery(AccessCondition condition, Class<?> clazz);
7070

sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/impl/RuntimeResourceSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static RuntimeResourceSupport<AccessCondition> singleton() {
5959

6060
void ignoreResources(C condition, String pattern, Object origin);
6161

62-
void addResourceBundles(C condition, String name);
62+
void addResourceBundles(C condition, boolean preserved, String name);
6363

6464
void addResourceBundles(C condition, String basename, Collection<Locale> locales);
6565

0 commit comments

Comments
 (0)