Skip to content

Commit cc0eafc

Browse files
committed
Support using DIGEST-MD5 as the SASL mechanism for ElasticJob CoordinatorRegistryCenter under GraalVM Native Image
1 parent 756de29 commit cc0eafc

File tree

16 files changed

+1199
-9
lines changed

16 files changed

+1199
-9
lines changed

.github/workflows/graalvm.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,5 @@ jobs:
4444
github-token: ${{ secrets.GITHUB_TOKEN }}
4545
cache: 'maven'
4646
native-image-job-reports: 'true'
47-
- name: Run nativeTest with GraalVM CE for ${{ matrix.java-version }}
48-
continue-on-error: true
47+
- name: Run nativeTest with GraalVM CE for ${{ matrix.java }}
4948
run: ./mvnw -PnativeTestInElasticJob -T1C -B -e clean test

pom.xml

+19-4
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
<mockito.version>4.11.0</mockito.version>
9090
<awaitility.version>4.2.0</awaitility.version>
9191
<bytebuddy.version>1.14.18</bytebuddy.version>
92+
<testcontainers-bom.version>1.20.1</testcontainers-bom.version>
9293

9394
<h2.version>2.2.224</h2.version>
9495
<hikari-cp.version>4.0.3</hikari-cp.version>
@@ -350,6 +351,13 @@
350351
<version>${awaitility.version}</version>
351352
<scope>test</scope>
352353
</dependency>
354+
<dependency>
355+
<groupId>org.testcontainers</groupId>
356+
<artifactId>testcontainers-bom</artifactId>
357+
<version>${testcontainers-bom.version}</version>
358+
<type>pom</type>
359+
<scope>import</scope>
360+
</dependency>
353361

354362
<dependency>
355363
<groupId>com.h2database</groupId>
@@ -951,8 +959,8 @@
951959
<defaultMode>Conditional</defaultMode>
952960
<modes>
953961
<conditional>
954-
<userCodeFilterPath>${user.dir}/test/native/native-image-filter/user-code-filter.json</userCodeFilterPath>
955-
<extraFilterPath>${user.dir}/test/native/native-image-filter/extra-filter.json</extraFilterPath>
962+
<userCodeFilterPath>${user.dir}/test/native/native-image-filter/user-code-filter-zookeeper.json</userCodeFilterPath>
963+
<extraFilterPath>${user.dir}/test/native/native-image-filter/extra-filter-zookeeper.json</extraFilterPath>
956964
<parallel>true</parallel>
957965
</conditional>
958966
</modes>
@@ -961,7 +969,7 @@
961969
<stage>main</stage>
962970
</disabledStages>
963971
<merge>false</merge>
964-
<outputDirectory>${user.dir}/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere.elasticjob/generated-reachability-metadata/</outputDirectory>
972+
<outputDirectory>${user.dir}/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.zookeeper/zookeeper/3.9.2/</outputDirectory>
965973
</metadataCopy>
966974
</agent>
967975
</configuration>
@@ -995,7 +1003,7 @@
9951003
<artifactId>maven-surefire-plugin</artifactId>
9961004
<configuration>
9971005
<includes>
998-
<include>org.apache.shardingsphere.elasticjob.test.natived.**</include>
1006+
<include>org.apache.shardingsphere.elasticjob.test.natived.it.staticd.ZookeeperAuthTest</include>
9991007
</includes>
10001008
</configuration>
10011009
</plugin>
@@ -1006,6 +1014,13 @@
10061014
<extensions>true</extensions>
10071015
<configuration>
10081016
<quickBuild>true</quickBuild>
1017+
<buildArgs>
1018+
<buildArg>-H:+UnlockExperimentalVMOptions</buildArg>
1019+
<buildArg>-g</buildArg>
1020+
<buildArg>-O0</buildArg>
1021+
<buildArg>-H:+SourceLevelDebug</buildArg>
1022+
<buildArg>-H:-DeleteLocalSymbols</buildArg>
1023+
</buildArgs>
10091024
</configuration>
10101025
<executions>
10111026
<execution>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
"condition":{"typeReachable":"com.github.dockerjava.api.model.RuntimeInfo"},
4+
"name":"com.github.dockerjava.api.model.RuntimeInfo",
5+
"allPublicConstructors": true
6+
}
7+
]

reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere.elasticjob/elasticjob-reachability-metadata/reflect-config.json

+161-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,165 @@
99
"name":"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.LiteJob",
1010
"allDeclaredMethods": true,
1111
"allDeclaredConstructors": true
12-
}
12+
},
13+
{
14+
"name":"org.apache.zookeeper.server.ZooKeeperSaslServer",
15+
"allDeclaredClasses": true,
16+
"allDeclaredMethods": true,
17+
"allDeclaredFields": true,
18+
"allDeclaredConstructors": true,
19+
"allPublicClasses": true,
20+
"allPublicMethods": true,
21+
"allPublicFields": true,
22+
"allPublicConstructors": true,
23+
"allRecordComponents": true,
24+
"allNestMembers": true,
25+
"allSigners": true,
26+
"allPermittedSubclasses": true,
27+
"queryAllDeclaredMethods": true,
28+
"queryAllDeclaredConstructors": true,
29+
"queryAllPublicMethods": true,
30+
"queryAllPublicConstructors": true,
31+
"unsafeAllocated": true
32+
},
33+
{
34+
"name":"org.apache.zookeeper.SaslClientCallbackHandler",
35+
"allDeclaredClasses": true,
36+
"allDeclaredMethods": true,
37+
"allDeclaredFields": true,
38+
"allDeclaredConstructors": true,
39+
"allPublicClasses": true,
40+
"allPublicMethods": true,
41+
"allPublicFields": true,
42+
"allPublicConstructors": true,
43+
"allRecordComponents": true,
44+
"allNestMembers": true,
45+
"allSigners": true,
46+
"allPermittedSubclasses": true,
47+
"queryAllDeclaredMethods": true,
48+
"queryAllDeclaredConstructors": true,
49+
"queryAllPublicMethods": true,
50+
"queryAllPublicConstructors": true,
51+
"unsafeAllocated": true
52+
},
53+
{
54+
"name":"org.apache.zookeeper.server.quorum.auth.SaslQuorumServerCallbackHandler",
55+
"allDeclaredClasses": true,
56+
"allDeclaredMethods": true,
57+
"allDeclaredFields": true,
58+
"allDeclaredConstructors": true,
59+
"allPublicClasses": true,
60+
"allPublicMethods": true,
61+
"allPublicFields": true,
62+
"allPublicConstructors": true,
63+
"allRecordComponents": true,
64+
"allNestMembers": true,
65+
"allSigners": true,
66+
"allPermittedSubclasses": true,
67+
"queryAllDeclaredMethods": true,
68+
"queryAllDeclaredConstructors": true,
69+
"queryAllPublicMethods": true,
70+
"queryAllPublicConstructors": true,
71+
"unsafeAllocated": true
72+
},
73+
{
74+
"name":"org.apache.zookeeper.util.SecurityUtils",
75+
"allDeclaredClasses": true,
76+
"allDeclaredMethods": true,
77+
"allDeclaredFields": true,
78+
"allDeclaredConstructors": true,
79+
"allPublicClasses": true,
80+
"allPublicMethods": true,
81+
"allPublicFields": true,
82+
"allPublicConstructors": true,
83+
"allRecordComponents": true,
84+
"allNestMembers": true,
85+
"allSigners": true,
86+
"allPermittedSubclasses": true,
87+
"queryAllDeclaredMethods": true,
88+
"queryAllDeclaredConstructors": true,
89+
"queryAllPublicMethods": true,
90+
"queryAllPublicConstructors": true,
91+
"unsafeAllocated": true
92+
},
93+
{
94+
"name":"org.apache.zookeeper.server.auth.SaslServerCallbackHandler",
95+
"allDeclaredClasses": true,
96+
"allDeclaredMethods": true,
97+
"allDeclaredFields": true,
98+
"allDeclaredConstructors": true,
99+
"allPublicClasses": true,
100+
"allPublicMethods": true,
101+
"allPublicFields": true,
102+
"allPublicConstructors": true,
103+
"allRecordComponents": true,
104+
"allNestMembers": true,
105+
"allSigners": true,
106+
"allPermittedSubclasses": true,
107+
"queryAllDeclaredMethods": true,
108+
"queryAllDeclaredConstructors": true,
109+
"queryAllPublicMethods": true,
110+
"queryAllPublicConstructors": true,
111+
"unsafeAllocated": true
112+
},
113+
{
114+
"name":"org.apache.zookeeper.server.quorum.auth.SaslQuorumAuthServer",
115+
"allDeclaredClasses": true,
116+
"allDeclaredMethods": true,
117+
"allDeclaredFields": true,
118+
"allDeclaredConstructors": true,
119+
"allPublicClasses": true,
120+
"allPublicMethods": true,
121+
"allPublicFields": true,
122+
"allPublicConstructors": true,
123+
"allRecordComponents": true,
124+
"allNestMembers": true,
125+
"allSigners": true,
126+
"allPermittedSubclasses": true,
127+
"queryAllDeclaredMethods": true,
128+
"queryAllDeclaredConstructors": true,
129+
"queryAllPublicMethods": true,
130+
"queryAllPublicConstructors": true,
131+
"unsafeAllocated": true
132+
},
133+
{
134+
"name":"org.apache.zookeeper.client.ZooKeeperSaslClient",
135+
"allDeclaredClasses": true,
136+
"allDeclaredMethods": true,
137+
"allDeclaredFields": true,
138+
"allDeclaredConstructors": true,
139+
"allPublicClasses": true,
140+
"allPublicMethods": true,
141+
"allPublicFields": true,
142+
"allPublicConstructors": true,
143+
"allRecordComponents": true,
144+
"allNestMembers": true,
145+
"allSigners": true,
146+
"allPermittedSubclasses": true,
147+
"queryAllDeclaredMethods": true,
148+
"queryAllDeclaredConstructors": true,
149+
"queryAllPublicMethods": true,
150+
"queryAllPublicConstructors": true,
151+
"unsafeAllocated": true
152+
},
153+
{
154+
"name":"org.apache.zookeeper.server.quorum.auth.SaslQuorumAuthLearner",
155+
"allDeclaredClasses": true,
156+
"allDeclaredMethods": true,
157+
"allDeclaredFields": true,
158+
"allDeclaredConstructors": true,
159+
"allPublicClasses": true,
160+
"allPublicMethods": true,
161+
"allPublicFields": true,
162+
"allPublicConstructors": true,
163+
"allRecordComponents": true,
164+
"allNestMembers": true,
165+
"allSigners": true,
166+
"allPermittedSubclasses": true,
167+
"queryAllDeclaredMethods": true,
168+
"queryAllDeclaredConstructors": true,
169+
"queryAllPublicMethods": true,
170+
"queryAllPublicConstructors": true,
171+
"unsafeAllocated": true
172+
}
13173
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
[
2+
{
3+
"condition":{"typeReachable":"org.apache.zookeeper.jmx.MBeanRegistry"},
4+
"name":"[Lcom.sun.management.internal.DiagnosticCommandArgumentInfo;"
5+
},
6+
{
7+
"condition":{"typeReachable":"org.apache.zookeeper.jmx.MBeanRegistry"},
8+
"name":"[Lcom.sun.management.internal.DiagnosticCommandInfo;"
9+
},
10+
{
11+
"condition":{"typeReachable":"org.apache.zookeeper.jmx.MBeanRegistry"},
12+
"name":"com.sun.management.internal.DiagnosticCommandArgumentInfo",
13+
"methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","boolean","boolean","boolean","int"] }]
14+
},
15+
{
16+
"condition":{"typeReachable":"org.apache.zookeeper.jmx.MBeanRegistry"},
17+
"name":"com.sun.management.internal.DiagnosticCommandInfo",
18+
"methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","boolean","java.util.List"] }]
19+
},
20+
{
21+
"condition":{"typeReachable":"org.apache.zookeeper.jmx.MBeanRegistry"},
22+
"name":"java.util.Arrays",
23+
"methods":[{"name":"asList","parameterTypes":["java.lang.Object[]"] }]
24+
}
25+
]

0 commit comments

Comments
 (0)