Skip to content

Commit faacfaf

Browse files
committed
Flag for printing warnings when using deprecated APIs.
1 parent 8030118 commit faacfaf

File tree

14 files changed

+187
-22
lines changed

14 files changed

+187
-22
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,15 @@
4747
import org.graalvm.nativeimage.Platform;
4848
import org.graalvm.nativeimage.Platforms;
4949
import org.graalvm.nativeimage.dynamicaccess.ForeignAccess;
50+
import org.graalvm.nativeimage.impl.APIDeprecationSupport;
5051
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
5152
import org.graalvm.nativeimage.impl.RuntimeForeignAccessSupport;
5253

5354
@Platforms(Platform.HOSTED_ONLY.class)
5455
public final class RuntimeForeignAccess {
5556

57+
private static final APIDeprecationSupport deprecationFlag = ImageSingletons.lookup(APIDeprecationSupport.class);
58+
5659
/**
5760
* Registers the provided function descriptor and options pair at image build time for downcalls
5861
* into foreign code. Required to get a downcall method handle using
@@ -71,6 +74,7 @@ public final class RuntimeForeignAccess {
7174
* @since 23.1
7275
*/
7376
public static void registerForDowncall(Object desc, Object... options) {
77+
deprecationFlag.printDeprecationWarning();
7478
ImageSingletons.lookup(RuntimeForeignAccessSupport.class).registerForDowncall(AccessCondition.unconditional(), desc, options);
7579
}
7680

@@ -91,6 +95,7 @@ public static void registerForDowncall(Object desc, Object... options) {
9195
* @since 24.1
9296
*/
9397
public static void registerForUpcall(Object desc, Object... options) {
98+
deprecationFlag.printDeprecationWarning();
9499
ImageSingletons.lookup(RuntimeForeignAccessSupport.class).registerForUpcall(AccessCondition.unconditional(), desc, options);
95100
}
96101

@@ -121,6 +126,7 @@ public static void registerForUpcall(Object desc, Object... options) {
121126
* @since 24.2
122127
*/
123128
public static void registerForDirectUpcall(MethodHandle target, Object desc, Object... options) {
129+
deprecationFlag.printDeprecationWarning();
124130
ImageSingletons.lookup(RuntimeForeignAccessSupport.class).registerForDirectUpcall(AccessCondition.unconditional(), target, desc, options);
125131
}
126132

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.graalvm.nativeimage.Platform;
4848
import org.graalvm.nativeimage.Platforms;
4949
import org.graalvm.nativeimage.dynamicaccess.JNIAccess;
50+
import org.graalvm.nativeimage.impl.APIDeprecationSupport;
5051
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
5152
import org.graalvm.nativeimage.impl.RuntimeJNIAccessSupport;
5253

@@ -59,6 +60,8 @@
5960
@Platforms(Platform.HOSTED_ONLY.class)
6061
public final class RuntimeJNIAccess {
6162

63+
private static final APIDeprecationSupport deprecationFlag = ImageSingletons.lookup(APIDeprecationSupport.class);
64+
6265
/**
6366
* Makes the provided classes available for JNI access at run time. Needed when native code
6467
* looks up Java classes via <a href=
@@ -69,6 +72,7 @@ public final class RuntimeJNIAccess {
6972
* @since 22.3
7073
*/
7174
public static void register(Class<?>... classes) {
75+
deprecationFlag.printDeprecationWarning();
7276
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), classes);
7377
}
7478

@@ -84,6 +88,7 @@ public static void register(Class<?>... classes) {
8488
* @since 22.3
8589
*/
8690
public static void register(Executable... methods) {
91+
deprecationFlag.printDeprecationWarning();
8792
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), false, methods);
8893
}
8994

@@ -99,6 +104,7 @@ public static void register(Executable... methods) {
99104
* @since 22.3
100105
*/
101106
public static void register(Field... fields) {
107+
deprecationFlag.printDeprecationWarning();
102108
ImageSingletons.lookup(RuntimeJNIAccessSupport.class).register(AccessCondition.unconditional(), false, fields);
103109
}
104110

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.graalvm.nativeimage.Platforms;
4646
import org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess;
4747
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
48+
import org.graalvm.nativeimage.impl.APIDeprecationSupport;
4849
import org.graalvm.nativeimage.impl.RuntimeProxyCreationSupport;
4950

5051
/**
@@ -55,6 +56,8 @@
5556
@Platforms(Platform.HOSTED_ONLY.class)
5657
public final class RuntimeProxyCreation {
5758

59+
private static final APIDeprecationSupport deprecationFlag = ImageSingletons.lookup(APIDeprecationSupport.class);
60+
5861
/**
5962
* Enables registering specifications of {@link java.lang.reflect.Proxy} classes during the
6063
* image build so that matching proxy objects can be created at runtime. The proxy class is
@@ -65,6 +68,7 @@ public final class RuntimeProxyCreation {
6568
* @since 22.3
6669
*/
6770
public static void register(Class<?>... interfaces) {
71+
deprecationFlag.printDeprecationWarning();
6872
ImageSingletons.lookup(RuntimeProxyCreationSupport.class).addProxyClass(AccessCondition.unconditional(), interfaces);
6973
}
7074

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import org.graalvm.nativeimage.Platforms;
5151
import org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess;
5252
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
53+
import org.graalvm.nativeimage.impl.APIDeprecationSupport;
5354
import org.graalvm.nativeimage.impl.RuntimeReflectionSupport;
5455

5556
//Checkstyle: allow reflection
@@ -63,6 +64,8 @@
6364
@Platforms(Platform.HOSTED_ONLY.class)
6465
public final class RuntimeReflection {
6566

67+
private static final APIDeprecationSupport deprecationFlag = ImageSingletons.lookup(APIDeprecationSupport.class);
68+
6669
/**
6770
* Makes the provided classes available for reflection at run time. A call to
6871
* {@link Class#forName} for the names of the classes will return the classes at run time.
@@ -72,6 +75,7 @@ public final class RuntimeReflection {
7275
* @since 19.0
7376
*/
7477
public static void register(Class<?>... classes) {
78+
deprecationFlag.printDeprecationWarning();
7579
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), classes);
7680
}
7781

@@ -85,6 +89,7 @@ public static void register(Class<?>... classes) {
8589
* @since 23.0
8690
*/
8791
public static void registerClassLookup(String className) {
92+
deprecationFlag.printDeprecationWarning();
8893
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerClassLookup(AccessCondition.unconditional(), className);
8994
}
9095

@@ -98,6 +103,7 @@ public static void registerClassLookup(String className) {
98103
* @since 19.0
99104
*/
100105
public static void register(Executable... methods) {
106+
deprecationFlag.printDeprecationWarning();
101107
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), false, methods);
102108
}
103109

@@ -112,6 +118,7 @@ public static void register(Executable... methods) {
112118
* @since 21.3
113119
*/
114120
public static void registerAsQueried(Executable... methods) {
121+
deprecationFlag.printDeprecationWarning();
115122
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), true, methods);
116123
}
117124

@@ -127,6 +134,7 @@ public static void registerAsQueried(Executable... methods) {
127134
* @since 23.0
128135
*/
129136
public static void registerMethodLookup(Class<?> declaringClass, String methodName, Class<?>... parameterTypes) {
137+
deprecationFlag.printDeprecationWarning();
130138
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerMethodLookup(AccessCondition.unconditional(), declaringClass, methodName, parameterTypes);
131139
}
132140

@@ -143,6 +151,7 @@ public static void registerMethodLookup(Class<?> declaringClass, String methodNa
143151
* @since 23.0
144152
*/
145153
public static void registerConstructorLookup(Class<?> declaringClass, Class<?>... parameterTypes) {
154+
deprecationFlag.printDeprecationWarning();
146155
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerConstructorLookup(AccessCondition.unconditional(), declaringClass, parameterTypes);
147156
}
148157

@@ -156,6 +165,7 @@ public static void registerConstructorLookup(Class<?> declaringClass, Class<?>..
156165
* @since 19.0
157166
*/
158167
public static void register(Field... fields) {
168+
deprecationFlag.printDeprecationWarning();
159169
ImageSingletons.lookup(RuntimeReflectionSupport.class).register(AccessCondition.unconditional(), false, fields);
160170
}
161171

@@ -170,6 +180,7 @@ public static void register(Field... fields) {
170180
* @since 19.0
171181
*/
172182
public static void registerFieldLookup(Class<?> declaringClass, String fieldName) {
183+
deprecationFlag.printDeprecationWarning();
173184
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerFieldLookup(AccessCondition.unconditional(), declaringClass, fieldName);
174185
}
175186

@@ -181,6 +192,7 @@ public static void registerFieldLookup(Class<?> declaringClass, String fieldName
181192
* @since 23.0
182193
*/
183194
public static void registerAllClasses(Class<?> declaringClass) {
195+
deprecationFlag.printDeprecationWarning();
184196
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllClassesQuery(AccessCondition.unconditional(), declaringClass);
185197
}
186198

@@ -192,6 +204,7 @@ public static void registerAllClasses(Class<?> declaringClass) {
192204
* @since 23.0
193205
*/
194206
public static void registerAllDeclaredClasses(Class<?> declaringClass) {
207+
deprecationFlag.printDeprecationWarning();
195208
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredClassesQuery(AccessCondition.unconditional(), declaringClass);
196209
}
197210

@@ -204,6 +217,7 @@ public static void registerAllDeclaredClasses(Class<?> declaringClass) {
204217
* @since 23.0
205218
*/
206219
public static void registerAllMethods(Class<?> declaringClass) {
220+
deprecationFlag.printDeprecationWarning();
207221
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllMethodsQuery(AccessCondition.unconditional(), true, declaringClass);
208222
}
209223

@@ -216,6 +230,7 @@ public static void registerAllMethods(Class<?> declaringClass) {
216230
* @since 23.0
217231
*/
218232
public static void registerAllDeclaredMethods(Class<?> declaringClass) {
233+
deprecationFlag.printDeprecationWarning();
219234
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredMethodsQuery(AccessCondition.unconditional(), true, declaringClass);
220235
}
221236

@@ -228,6 +243,7 @@ public static void registerAllDeclaredMethods(Class<?> declaringClass) {
228243
* @since 23.0
229244
*/
230245
public static void registerAllConstructors(Class<?> declaringClass) {
246+
deprecationFlag.printDeprecationWarning();
231247
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllConstructorsQuery(AccessCondition.unconditional(), true, declaringClass);
232248
}
233249

@@ -240,6 +256,7 @@ public static void registerAllConstructors(Class<?> declaringClass) {
240256
* @since 23.0
241257
*/
242258
public static void registerAllDeclaredConstructors(Class<?> declaringClass) {
259+
deprecationFlag.printDeprecationWarning();
243260
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredConstructorsQuery(AccessCondition.unconditional(), true, declaringClass);
244261
}
245262

@@ -252,6 +269,7 @@ public static void registerAllDeclaredConstructors(Class<?> declaringClass) {
252269
* @since 23.0
253270
*/
254271
public static void registerAllFields(Class<?> declaringClass) {
272+
deprecationFlag.printDeprecationWarning();
255273
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllFields(AccessCondition.unconditional(), declaringClass);
256274
}
257275

@@ -264,6 +282,7 @@ public static void registerAllFields(Class<?> declaringClass) {
264282
* @since 23.0
265283
*/
266284
public static void registerAllDeclaredFields(Class<?> declaringClass) {
285+
deprecationFlag.printDeprecationWarning();
267286
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllDeclaredFields(AccessCondition.unconditional(), declaringClass);
268287
}
269288

@@ -275,6 +294,7 @@ public static void registerAllDeclaredFields(Class<?> declaringClass) {
275294
* @since 23.0
276295
*/
277296
public static void registerAllNestMembers(Class<?> declaringClass) {
297+
deprecationFlag.printDeprecationWarning();
278298
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllNestMembersQuery(AccessCondition.unconditional(), declaringClass);
279299
}
280300

@@ -286,6 +306,7 @@ public static void registerAllNestMembers(Class<?> declaringClass) {
286306
* @since 23.0
287307
*/
288308
public static void registerAllPermittedSubclasses(Class<?> declaringClass) {
309+
deprecationFlag.printDeprecationWarning();
289310
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllPermittedSubclassesQuery(AccessCondition.unconditional(), declaringClass);
290311
}
291312

@@ -297,6 +318,7 @@ public static void registerAllPermittedSubclasses(Class<?> declaringClass) {
297318
* @since 23.0
298319
*/
299320
public static void registerAllRecordComponents(Class<?> declaringClass) {
321+
deprecationFlag.printDeprecationWarning();
300322
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllRecordComponentsQuery(AccessCondition.unconditional(), declaringClass);
301323
}
302324

@@ -308,6 +330,7 @@ public static void registerAllRecordComponents(Class<?> declaringClass) {
308330
* @since 23.0
309331
*/
310332
public static void registerAllSigners(Class<?> declaringClass) {
333+
deprecationFlag.printDeprecationWarning();
311334
ImageSingletons.lookup(RuntimeReflectionSupport.class).registerAllSignersQuery(AccessCondition.unconditional(), declaringClass);
312335
}
313336

@@ -343,6 +366,7 @@ public static void register(boolean finalIsWritable, boolean allowUnsafeAccess,
343366
* @since 19.0
344367
*/
345368
public static void registerForReflectiveInstantiation(Class<?>... classes) {
369+
deprecationFlag.printDeprecationWarning();
346370
for (Class<?> clazz : classes) {
347371
if (clazz.isArray() || clazz.isInterface() || Modifier.isAbstract(clazz.getModifiers())) {
348372
throw new IllegalArgumentException("Class " + clazz.getTypeName() + " cannot be instantiated reflectively. It must be a non-abstract instance type.");

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import org.graalvm.nativeimage.Platform;
4949
import org.graalvm.nativeimage.Platforms;
5050
import org.graalvm.nativeimage.dynamicaccess.ResourceAccess;
51+
import org.graalvm.nativeimage.impl.APIDeprecationSupport;
5152
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
5253
import org.graalvm.nativeimage.impl.RuntimeResourceSupport;
5354

@@ -58,6 +59,8 @@
5859
@Platforms(Platform.HOSTED_ONLY.class)
5960
public final class RuntimeResourceAccess {
6061

62+
private static final APIDeprecationSupport deprecationFlag = ImageSingletons.lookup(APIDeprecationSupport.class);
63+
6164
/**
6265
* Make Java resource {@code resourcePath} from {@code module} available at run time. If the
6366
* given {@code module} is unnamed, the resource is looked up on the classpath instead.
@@ -67,6 +70,7 @@ public final class RuntimeResourceAccess {
6770
* @since 22.3
6871
*/
6972
public static void addResource(Module module, String resourcePath) {
73+
deprecationFlag.printDeprecationWarning();
7074
Objects.requireNonNull(module);
7175
Objects.requireNonNull(resourcePath);
7276
ImageSingletons.lookup(RuntimeResourceSupport.class).addResource(module, resourcePath, "Manually added via RuntimeResourceAccess");
@@ -83,6 +87,7 @@ public static void addResource(Module module, String resourcePath) {
8387
* @since 22.3
8488
*/
8589
public static void addResource(Module module, String resourcePath, byte[] resourceContent) {
90+
deprecationFlag.printDeprecationWarning();
8691
Objects.requireNonNull(module);
8792
Objects.requireNonNull(resourcePath);
8893
Objects.requireNonNull(resourceContent);
@@ -100,6 +105,7 @@ public static void addResource(Module module, String resourcePath, byte[] resour
100105
* @since 22.3
101106
*/
102107
public static void addResourceBundle(Module module, String baseBundleName, Locale[] locales) {
108+
deprecationFlag.printDeprecationWarning();
103109
Objects.requireNonNull(locales);
104110
RuntimeResourceSupport.singleton().addResourceBundles(AccessCondition.unconditional(),
105111
withModuleName(module, baseBundleName), Arrays.asList(locales));
@@ -115,6 +121,7 @@ public static void addResourceBundle(Module module, String baseBundleName, Local
115121
* @since 22.3
116122
*/
117123
public static void addResourceBundle(Module module, String bundleName) {
124+
deprecationFlag.printDeprecationWarning();
118125
RuntimeResourceSupport.singleton().addResourceBundles(AccessCondition.unconditional(),
119126
withModuleName(module, bundleName));
120127
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@
4040
*/
4141
package org.graalvm.nativeimage.hosted;
4242

43+
import org.graalvm.nativeimage.ImageSingletons;
4344
import org.graalvm.nativeimage.Platform;
4445
import org.graalvm.nativeimage.Platforms;
4546
import org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess;
47+
import org.graalvm.nativeimage.impl.APIDeprecationSupport;
4648
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
4749
import org.graalvm.nativeimage.impl.RuntimeSerializationSupport;
4850

@@ -55,6 +57,8 @@
5557
@Platforms(Platform.HOSTED_ONLY.class)
5658
public final class RuntimeSerialization {
5759

60+
private static final APIDeprecationSupport deprecationFlag = ImageSingletons.lookup(APIDeprecationSupport.class);
61+
5862
/**
5963
* Register the specified serialization target class itself and all associated classes.
6064
* <p>
@@ -75,6 +79,7 @@ public final class RuntimeSerialization {
7579
* @since 21.3
7680
*/
7781
public static void registerIncludingAssociatedClasses(Class<?> clazz) {
82+
deprecationFlag.printDeprecationWarning();
7883
RuntimeSerializationSupport.singleton().registerIncludingAssociatedClasses(AccessCondition.unconditional(), clazz);
7984
}
8085

@@ -86,6 +91,7 @@ public static void registerIncludingAssociatedClasses(Class<?> clazz) {
8691
* @since 21.3
8792
*/
8893
public static void register(Class<?>... classes) {
94+
deprecationFlag.printDeprecationWarning();
8995
for (Class<?> clazz : classes) {
9096
RuntimeSerializationSupport.singleton().register(AccessCondition.unconditional(), clazz);
9197
}
@@ -121,6 +127,7 @@ public static void registerWithTargetConstructorClass(Class<?> clazz, Class<?> c
121127
* @since 22.3
122128
*/
123129
public static void registerLambdaCapturingClass(Class<?> lambdaCapturingClass) {
130+
deprecationFlag.printDeprecationWarning();
124131
RuntimeSerializationSupport.singleton().registerLambdaCapturingClass(AccessCondition.unconditional(), lambdaCapturingClass);
125132
}
126133

@@ -134,6 +141,7 @@ public static void registerLambdaCapturingClass(Class<?> lambdaCapturingClass) {
134141
* @since 22.3
135142
*/
136143
public static void registerProxyClass(Class<?>... implementedInterfaces) {
144+
deprecationFlag.printDeprecationWarning();
137145
RuntimeSerializationSupport.singleton().registerProxyClass(AccessCondition.unconditional(), implementedInterfaces);
138146
}
139147

0 commit comments

Comments
 (0)