diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b40ae64..ac46a77 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false matrix: java: [ 8, 11 ] - graal: [ 20.1.0 ] + graal: [ 20.1.0, 20.2.0 ] steps: - uses: actions/checkout@v2 diff --git a/pom.xml b/pom.xml index b3d3a26..57941e2 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ - 1.8.0.Final + 1.8.1.Final 4.0.3 1.8 @@ -276,4 +276,4 @@ - \ No newline at end of file + diff --git a/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_JmxPublisher.java b/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_JmxPublisher.java index c1c5a85..bad967f 100644 --- a/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_JmxPublisher.java +++ b/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_JmxPublisher.java @@ -5,49 +5,18 @@ import com.oracle.svm.core.annotate.Substitute; import com.oracle.svm.core.annotate.TargetClass; -import javax.management.InstanceNotFoundException; -import javax.management.MBeanRegistrationException; -import javax.management.MBeanServer; -import javax.management.MalformedObjectNameException; -import javax.management.ObjectName; -import java.util.Set; - @TargetClass(JmxPublisher.class) public final class Target_JmxPublisher { @Alias private volatile boolean isShutdown; - @Alias - private String domainPrefix; - - @Alias - private MBeanServer platformMBeanServer; - - @Alias - private String instanceNameEscaped; + @Substitute + public Target_JmxPublisher(String instanceName, String domainPrefix) { + } @Substitute public void shutdown() { isShutdown = true; - try { - // unregister the MBeans registered by this JmxPublisher - // the mBeans map can't be used since it is not thread-safe - // and is meant to be used by the publisher thread only - ObjectName name = new ObjectName(domainPrefix + "*" + ":instance=" + instanceNameEscaped + ",type=Metrics,*"); - if (platformMBeanServer == null) { - return; - } - Set objectNames = platformMBeanServer.queryNames(name, null); - for (ObjectName bean : objectNames) { - unregisterMBeanIgnoreError(bean); - } - } catch (MalformedObjectNameException e) { - throw new RuntimeException("Exception when unregistering JMX beans", e); - } - } - - @Alias - private void unregisterMBeanIgnoreError(ObjectName objectName) { } } diff --git a/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_MetricsJmxConfig.java b/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_MetricsJmxConfig.java new file mode 100644 index 0000000..c23deb5 --- /dev/null +++ b/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_MetricsJmxConfig.java @@ -0,0 +1,14 @@ +package io.quarkus.hazelcast.client.runtime.graal; + +import com.hazelcast.config.MetricsJmxConfig; +import com.oracle.svm.core.annotate.Substitute; +import com.oracle.svm.core.annotate.TargetClass; + +@TargetClass(MetricsJmxConfig.class) +public final class Target_MetricsJmxConfig { + + @Substitute + public boolean isEnabled() { + return false; + } +} diff --git a/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_ServiceDefinition.java b/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_ServiceDefinition.java index f3db8a6..a8e3a9a 100644 --- a/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_ServiceDefinition.java +++ b/runtime/src/main/java/io/quarkus/hazelcast/client/runtime/graal/Target_ServiceDefinition.java @@ -1,13 +1,14 @@ package io.quarkus.hazelcast.client.runtime.graal; +import com.hazelcast.internal.util.ServiceLoader; import com.oracle.svm.core.annotate.Substitute; import com.oracle.svm.core.annotate.TargetClass; import static com.hazelcast.internal.util.Preconditions.isNotNull; @Substitute -@TargetClass(className = "com.hazelcast.internal.util.ServiceLoader", innerClass = "ServiceDefinition") -final class Target_ServiceDefinition { +@TargetClass(value = ServiceLoader.class, innerClass = "ServiceDefinition") +public final class Target_ServiceDefinition { private final String className; private final ClassLoader classLoader;