Skip to content

Commit 815f117

Browse files
committed
svm: move JVMCI dynamicaccess API from svm.hosted to svm.util
1 parent 7bc1551 commit 815f117

File tree

10 files changed

+88
-51
lines changed

10 files changed

+88
-51
lines changed

substratevm/mx.substratevm/suite.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2305,7 +2305,7 @@
23052305
"org.graalvm.collections",
23062306
],
23072307
"exports" : [
2308-
"""com.oracle.svm.util to org.graalvm.nativeimage.pointsto,
2308+
"""com.oracle.svm.util* to org.graalvm.nativeimage.pointsto,
23092309
org.graalvm.nativeimage.builder,
23102310
org.graalvm.nativeimage.configure,
23112311
org.graalvm.nativeimage.librarysupport,
Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,60 +24,49 @@
2424
*/
2525
package com.oracle.svm.hosted.dynamicaccess;
2626

27-
import java.lang.reflect.Executable;
28-
import java.lang.reflect.Field;
29-
3027
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
3128

3229
import com.oracle.svm.hosted.JNIAccessImpl;
3330
import com.oracle.svm.util.OriginalClassProvider;
3431
import com.oracle.svm.util.OriginalFieldProvider;
3532
import com.oracle.svm.util.OriginalMethodProvider;
33+
import com.oracle.svm.util.dynamicaccess.JVMCIJNIAccess;
3634

3735
import jdk.vm.ci.meta.ResolvedJavaField;
3836
import jdk.vm.ci.meta.ResolvedJavaMethod;
3937
import jdk.vm.ci.meta.ResolvedJavaType;
4038

41-
/**
42-
* Mirror of {@link org.graalvm.nativeimage.dynamicaccess.JNIAccess} using JVMCI types.
43-
*/
44-
public final class JVMCIJNIAccess {
39+
public final class JVMCIJNIAccessImpl implements JVMCIJNIAccess {
4540

4641
private final JNIAccessImpl jniInstance;
4742
private static JVMCIJNIAccess instance;
4843

49-
private JVMCIJNIAccess() {
44+
private JVMCIJNIAccessImpl() {
5045
jniInstance = JNIAccessImpl.singleton();
5146
}
5247

5348
public static JVMCIJNIAccess singleton() {
5449
if (instance == null) {
55-
instance = new JVMCIJNIAccess();
50+
instance = new JVMCIJNIAccessImpl();
5651
}
5752
return instance;
5853
}
5954

60-
/**
61-
* @see org.graalvm.nativeimage.dynamicaccess.JNIAccess#register(AccessCondition, Class...)
62-
*/
55+
@Override
6356
public void register(AccessCondition condition, ResolvedJavaType... types) {
6457
for (ResolvedJavaType type : types) {
6558
jniInstance.register(condition, OriginalClassProvider.getJavaClass(type));
6659
}
6760
}
6861

69-
/**
70-
* @see org.graalvm.nativeimage.dynamicaccess.JNIAccess#register(AccessCondition, Executable...)
71-
*/
62+
@Override
7263
public void register(AccessCondition condition, ResolvedJavaMethod... methods) {
7364
for (ResolvedJavaMethod method : methods) {
7465
jniInstance.register(condition, OriginalMethodProvider.getJavaMethod(method));
7566
}
7667
}
7768

78-
/**
79-
* @see org.graalvm.nativeimage.dynamicaccess.JNIAccess#register(AccessCondition, Field...)
80-
*/
69+
@Override
8170
public void register(AccessCondition condition, ResolvedJavaField... fields) {
8271
for (ResolvedJavaField field : fields) {
8372
jniInstance.register(condition, OriginalFieldProvider.getJavaField(field));
Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,80 +24,65 @@
2424
*/
2525
package com.oracle.svm.hosted.dynamicaccess;
2626

27-
import java.lang.reflect.Executable;
28-
import java.lang.reflect.Field;
2927
import java.util.ArrayList;
3028
import java.util.List;
3129

3230
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
33-
import org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess;
3431

3532
import com.oracle.svm.hosted.ReflectiveAccessImpl;
3633
import com.oracle.svm.util.OriginalClassProvider;
3734
import com.oracle.svm.util.OriginalFieldProvider;
3835
import com.oracle.svm.util.OriginalMethodProvider;
36+
import com.oracle.svm.util.dynamicaccess.JVMCIReflectiveAccess;
3937

4038
import jdk.vm.ci.meta.ResolvedJavaField;
4139
import jdk.vm.ci.meta.ResolvedJavaMethod;
4240
import jdk.vm.ci.meta.ResolvedJavaType;
4341

44-
/**
45-
* Mirror of {@link ReflectiveAccess} using JVMCI types.
46-
*/
47-
public final class JVMCIReflectiveAccess {
42+
public final class JVMCIReflectiveAccessImpl implements JVMCIReflectiveAccess {
4843
private final ReflectiveAccessImpl rdaInstance;
4944
private static JVMCIReflectiveAccess instance;
5045

51-
private JVMCIReflectiveAccess() {
46+
private JVMCIReflectiveAccessImpl() {
5247
rdaInstance = ReflectiveAccessImpl.singleton();
5348
}
5449

5550
public static JVMCIReflectiveAccess singleton() {
5651
if (instance == null) {
57-
instance = new JVMCIReflectiveAccess();
52+
instance = new JVMCIReflectiveAccessImpl();
5853
}
5954
return instance;
6055
}
6156

62-
/**
63-
* @see ReflectiveAccess#register(AccessCondition, Class...)
64-
*/
57+
@Override
6558
public void register(AccessCondition condition, ResolvedJavaType... types) {
6659
for (ResolvedJavaType type : types) {
6760
rdaInstance.register(condition, OriginalClassProvider.getJavaClass(type));
6861
}
6962
}
7063

71-
/**
72-
* @see ReflectiveAccess#register(AccessCondition, Executable...)
73-
*/
64+
@Override
7465
public void register(AccessCondition condition, ResolvedJavaMethod... methods) {
7566
for (ResolvedJavaMethod method : methods) {
7667
rdaInstance.register(condition, OriginalMethodProvider.getJavaMethod(method));
7768
}
7869
}
7970

80-
/**
81-
* @see ReflectiveAccess#register(AccessCondition, Field...)
82-
*/
71+
@Override
8372
public void register(AccessCondition condition, ResolvedJavaField... fields) {
8473
for (ResolvedJavaField field : fields) {
8574
rdaInstance.register(condition, OriginalFieldProvider.getJavaField(field));
8675
}
8776
}
8877

89-
/**
90-
* @see ReflectiveAccess#registerForSerialization(AccessCondition, Class...)
91-
*/
78+
@Override
9279
public void registerForSerialization(AccessCondition condition, ResolvedJavaType... types) {
9380
for (ResolvedJavaType type : types) {
9481
rdaInstance.registerForSerialization(condition, OriginalClassProvider.getJavaClass(type));
9582
}
9683
}
9784

98-
/**
99-
* @see ReflectiveAccess#registerProxy(AccessCondition, Class...)
100-
*/
85+
@Override
10186
public Class<?> registerProxy(AccessCondition condition, ResolvedJavaType... interfaces) {
10287
List<Class<?>> reflectionInterfaces = new ArrayList<>();
10388
for (ResolvedJavaType intf : interfaces) {
@@ -106,9 +91,7 @@ public Class<?> registerProxy(AccessCondition condition, ResolvedJavaType... int
10691
return rdaInstance.registerProxy(condition, reflectionInterfaces.toArray(Class[]::new));
10792
}
10893

109-
/**
110-
* @see ReflectiveAccess#registerForUnsafeAllocation(AccessCondition, Class...)
111-
*/
94+
@Override
11295
public void registerForUnsafeAllocation(AccessCondition condition, ResolvedJavaType... types) {
11396
for (ResolvedJavaType type : types) {
11497
rdaInstance.registerForUnsafeAllocation(condition, OriginalClassProvider.getJavaClass(type));
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* or visit www.oracle.com if you need additional information or have any
2323
* questions.
2424
*/
25-
package com.oracle.svm.hosted.dynamicaccess;
25+
package com.oracle.svm.util.dynamicaccess;
2626

2727
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
2828

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.oracle.svm.util.dynamicaccess;
2+
3+
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
4+
5+
import jdk.vm.ci.meta.ResolvedJavaField;
6+
import jdk.vm.ci.meta.ResolvedJavaMethod;
7+
import jdk.vm.ci.meta.ResolvedJavaType;
8+
9+
public interface JVMCIJNIAccess {
10+
void register(AccessCondition condition, ResolvedJavaType... types);
11+
12+
void register(AccessCondition condition, ResolvedJavaMethod... methods);
13+
14+
void register(AccessCondition condition, ResolvedJavaField... fields);
15+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.oracle.svm.util.dynamicaccess;
2+
3+
import org.graalvm.nativeimage.dynamicaccess.AccessCondition;
4+
5+
import jdk.vm.ci.meta.ResolvedJavaField;
6+
import jdk.vm.ci.meta.ResolvedJavaMethod;
7+
import jdk.vm.ci.meta.ResolvedJavaType;
8+
9+
/**
10+
* Mirror of org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess using JVMCI types.
11+
*/
12+
public interface JVMCIReflectiveAccess {
13+
/**
14+
* See org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess#register(AccessCondition,
15+
* Class...).
16+
*/
17+
void register(AccessCondition condition, ResolvedJavaType... types);
18+
19+
/**
20+
* See org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess#register(AccessCondition,
21+
* Executable...).
22+
*/
23+
void register(AccessCondition condition, ResolvedJavaMethod... methods);
24+
25+
/**
26+
* See org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess#register(AccessCondition,
27+
* Field...).
28+
*/
29+
void register(AccessCondition condition, ResolvedJavaField... fields);
30+
31+
/**
32+
* See
33+
* org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess#registerForSerialization(AccessCondition,
34+
* Class...).
35+
*/
36+
void registerForSerialization(AccessCondition condition, ResolvedJavaType... types);
37+
38+
/**
39+
* See org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess#registerProxy(AccessCondition,
40+
* Class...).
41+
*/
42+
Class<?> registerProxy(AccessCondition condition, ResolvedJavaType... interfaces);
43+
44+
/**
45+
* See
46+
* org.graalvm.nativeimage.dynamicaccess.ReflectiveAccess#registerForUnsafeAllocation(AccessCondition,
47+
* Class...).
48+
*/
49+
void registerForUnsafeAllocation(AccessCondition condition, ResolvedJavaType... types);
50+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* or visit www.oracle.com if you need additional information or have any
2323
* questions.
2424
*/
25-
package com.oracle.svm.hosted.dynamicaccess;
25+
package com.oracle.svm.util.dynamicaccess;
2626

2727
import java.lang.reflect.Executable;
2828
import java.lang.reflect.Field;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* or visit www.oracle.com if you need additional information or have any
2323
* questions.
2424
*/
25-
package com.oracle.svm.hosted.dynamicaccess;
25+
package com.oracle.svm.util.dynamicaccess;
2626

2727
import java.util.Arrays;
2828

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* or visit www.oracle.com if you need additional information or have any
2323
* questions.
2424
*/
25-
package com.oracle.svm.hosted.dynamicaccess;
25+
package com.oracle.svm.util.dynamicaccess;
2626

2727
import java.lang.reflect.Executable;
2828
import java.lang.reflect.Field;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* or visit www.oracle.com if you need additional information or have any
2323
* questions.
2424
*/
25-
package com.oracle.svm.hosted.dynamicaccess;
25+
package com.oracle.svm.util.dynamicaccess;
2626

2727
import java.util.Arrays;
2828

0 commit comments

Comments
 (0)