Skip to content

Commit e4aa525

Browse files
committed
Prepare for GraalVM and JDK 11
1 parent 65c33bd commit e4aa525

File tree

5 files changed

+52
-3
lines changed

5 files changed

+52
-3
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.quarkus.runtime.graal;
2+
3+
import java.net.Inet4Address;
4+
5+
import org.wildfly.common.net.Inet;
6+
7+
import com.oracle.svm.core.annotate.Alias;
8+
import com.oracle.svm.core.annotate.RecomputeFieldValue;
9+
import com.oracle.svm.core.annotate.TargetClass;
10+
11+
@TargetClass(Inet.class)
12+
final class Target_org_wildfly_common_net_Inet {
13+
14+
/*
15+
* The following fields recomputations are required because of a new restriction in GraalVM 19.3.0 that prohibits the
16+
* presence of java.net.Inet4Address in the image heap.
17+
*/
18+
19+
@Alias
20+
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
21+
public static Inet4Address INET4_ANY = Inet.getInet4Address(0, 0, 0, 0);
22+
23+
@Alias
24+
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
25+
public static Inet4Address INET4_LOOPBACK = Inet.getInet4Address(127, 0, 0, 1);
26+
27+
@Alias
28+
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
29+
public static Inet4Address INET4_BROADCAST = Inet.getInet4Address(255, 255, 255, 255);
30+
}

extensions/vertx-core/runtime/src/main/java/io/quarkus/vertx/core/runtime/graal/JdkSubstitutions.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,25 @@
88
import com.oracle.svm.core.annotate.Alias;
99
import com.oracle.svm.core.annotate.Substitute;
1010
import com.oracle.svm.core.annotate.TargetClass;
11+
import com.oracle.svm.core.jdk.JDK8OrEarlier;
1112

12-
@TargetClass(className = "sun.misc.URLClassPath$Loader")
13+
@TargetClass(className = "sun.misc.URLClassPath$Loader", onlyWith = JDK8OrEarlier.class)
1314
final class Target_sun_misc_URLClassPath$Loader {
1415

1516
@Alias
1617
public Target_sun_misc_URLClassPath$Loader(URL url) {
1718
}
1819
}
1920

20-
@TargetClass(className = "sun.misc.URLClassPath$FileLoader")
21+
@TargetClass(className = "sun.misc.URLClassPath$FileLoader", onlyWith = JDK8OrEarlier.class)
2122
final class Target_sun_misc_URLClassPath$FileLoader {
2223

2324
@Alias
2425
public Target_sun_misc_URLClassPath$FileLoader(URL url) throws IOException {
2526
}
2627
}
2728

28-
@TargetClass(className = "sun.misc.URLClassPath")
29+
@TargetClass(className = "sun.misc.URLClassPath", onlyWith = JDK8OrEarlier.class)
2930
final class Target_sun_misc_URLClassPath {
3031

3132
@Substitute

integration-tests/main/src/main/java/io/quarkus/it/config/MicroProfileConfigResource.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import org.eclipse.microprofile.config.Config;
88
import org.eclipse.microprofile.config.inject.ConfigProperty;
9+
import org.wildfly.common.net.CidrAddress;
910

1011
/**
1112
* Test some MicroProfile config primitives.
@@ -19,6 +20,9 @@ public class MicroProfileConfigResource {
1920
@ConfigProperty(name = "microprofile.custom.value")
2021
MicroProfileCustomValue value;
2122

23+
@ConfigProperty(name = "microprofile.cidr-address")
24+
CidrAddress cidrAddress;
25+
2226
@Inject
2327
Config config;
2428

@@ -36,4 +40,10 @@ public String getPropertyNames() throws Exception {
3640
public String getCustomValue() {
3741
return Integer.toString(value.getNumber());
3842
}
43+
44+
@GET
45+
@Path("/get-cidr-address")
46+
public String getCidrAddress() {
47+
return cidrAddress.getNetworkAddress().getHostAddress();
48+
}
3949
}

integration-tests/main/src/main/resources/application.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ web-message=A message
2525
schedulerservice.cron.expr=0/10 * * * * ?
2626

2727
microprofile.custom.value = 456
28+
microprofile.cidr-address=10.0.0.20/24
2829
configproperties.message=Hello
2930
configproperties.other=1
3031

integration-tests/main/src/test/java/io/quarkus/it/main/MicroProfileConfigTestCase.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,11 @@ public void testMicroprofileConfigGetCustomValue() {
2525
.when().get("/microprofile-config/get-custom-value")
2626
.then().body(is("456"));
2727
}
28+
29+
@Test
30+
public void testCidrAddress() {
31+
RestAssured
32+
.when().get("/microprofile-config/get-cidr-address")
33+
.then().body(is("10.0.0.0"));
34+
}
2835
}

0 commit comments

Comments
 (0)