5050import org .graalvm .nativeimage .Platforms ;
5151import org .graalvm .nativeimage .dynamicaccess .ReflectiveAccess ;
5252import org .graalvm .nativeimage .dynamicaccess .AccessCondition ;
53+ import org .graalvm .nativeimage .impl .APIDeprecationSupport ;
5354import org .graalvm .nativeimage .impl .RuntimeReflectionSupport ;
5455
5556//Checkstyle: allow reflection
6364@ Platforms (Platform .HOSTED_ONLY .class )
6465public 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." );
0 commit comments