Skip to content

Commit 7c24181

Browse files
committed
Merge branch '1.13.x'
2 parents 269fab3 + 3ebc09f commit 7c24181

File tree

2 files changed

+82
-10
lines changed

2 files changed

+82
-10
lines changed

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/cache/HazelcastIMapAdapter.java

+16-10
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class HazelcastIMapAdapter {
3737

3838
private static final InternalLogger log = InternalLoggerFactory.getInstance(HazelcastIMapAdapter.class);
3939

40+
private static final Class<?> CLASS_DISTRIBUTED_OBJECT = resolveClass("com.hazelcast.core.DistributedObject");
41+
4042
private static final Class<?> CLASS_I_MAP = resolveOneOf("com.hazelcast.map.IMap", "com.hazelcast.core.IMap");
4143

4244
private static final Class<?> CLASS_LOCAL_MAP = resolveOneOf("com.hazelcast.map.LocalMapStats",
@@ -50,8 +52,8 @@ class HazelcastIMapAdapter {
5052
private static final MethodHandle GET_LOCAL_MAP_STATS;
5153

5254
static {
53-
GET_NAME = resolveIMapMethod("getName", methodType(String.class));
54-
GET_LOCAL_MAP_STATS = resolveIMapMethod("getLocalMapStats", methodType(CLASS_LOCAL_MAP));
55+
GET_NAME = resolveMethod(CLASS_DISTRIBUTED_OBJECT, "getName", methodType(String.class));
56+
GET_LOCAL_MAP_STATS = resolveMethod(CLASS_I_MAP, "getLocalMapStats", methodType(CLASS_LOCAL_MAP));
5557
}
5658

5759
private final WeakReference<Object> cache;
@@ -252,9 +254,9 @@ private static MethodHandle resolveMethod(String name, MethodType mt) {
252254

253255
}
254256

255-
private static MethodHandle resolveIMapMethod(String name, MethodType mt) {
257+
private static MethodHandle resolveMethod(Class<?> clazz, String name, MethodType mt) {
256258
try {
257-
return MethodHandles.publicLookup().findVirtual(CLASS_I_MAP, name, mt);
259+
return MethodHandles.publicLookup().findVirtual(clazz, name, mt);
258260
}
259261
catch (NoSuchMethodException | IllegalAccessException e) {
260262
throw new IllegalStateException(e);
@@ -266,12 +268,16 @@ private static Class<?> resolveOneOf(String class1, String class2) {
266268
return Class.forName(class1);
267269
}
268270
catch (ClassNotFoundException e) {
269-
try {
270-
return Class.forName(class2);
271-
}
272-
catch (ClassNotFoundException ex) {
273-
throw new IllegalStateException(ex);
274-
}
271+
return resolveClass(class2);
272+
}
273+
}
274+
275+
private static Class<?> resolveClass(String clazz) {
276+
try {
277+
return Class.forName(clazz);
278+
}
279+
catch (ClassNotFoundException e) {
280+
throw new IllegalStateException(e);
275281
}
276282
}
277283

micrometer-core/src/main/resources/META-INF/native-image/io.micrometer/micrometer-core/reflect-config.json

+66
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,71 @@
2727
{
2828
"name":"org.HdrHistogram.Histogram",
2929
"methods":[{"name":"<init>","parameterTypes":["long","long","int"] }]
30+
},
31+
{
32+
"name":"com.hazelcast.core.DistributedObject",
33+
"methods":[{"name":"getName","parameterTypes":[] }]
34+
},
35+
{
36+
"name":"com.hazelcast.map.IMap",
37+
"methods":[{"name":"getLocalMapStats","parameterTypes":[] }]
38+
},
39+
{
40+
"name":"com.hazelcast.core.IMap",
41+
"methods":[{"name":"getLocalMapStats","parameterTypes":[] }]
42+
},
43+
{
44+
"name":"com.hazelcast.map.LocalMapStats",
45+
"methods":[
46+
{"name":"getNearCacheStats","parameterTypes":[] },
47+
{"name":"getOwnedEntryCount","parameterTypes":[] },
48+
{"name":"getHits","parameterTypes":[] },
49+
{"name":"getPutOperationCount","parameterTypes":[] },
50+
{"name":"getSetOperationCount","parameterTypes":[] },
51+
{"name":"getBackupEntryCount","parameterTypes":[] },
52+
{"name":"getBackupEntryMemoryCost","parameterTypes":[] },
53+
{"name":"getOwnedEntryMemoryCost","parameterTypes":[] },
54+
{"name":"getGetOperationCount","parameterTypes":[] },
55+
{"name":"getTotalGetLatency","parameterTypes":[] },
56+
{"name":"getTotalPutLatency","parameterTypes":[] },
57+
{"name":"getRemoveOperationCount","parameterTypes":[] },
58+
{"name":"getTotalRemoveLatency","parameterTypes":[] }
59+
]
60+
},
61+
{
62+
"name":"com.hazelcast.monitor.LocalMapStats",
63+
"methods":[
64+
{"name":"getNearCacheStats","parameterTypes":[] },
65+
{"name":"getOwnedEntryCount","parameterTypes":[] },
66+
{"name":"getHits","parameterTypes":[] },
67+
{"name":"getPutOperationCount","parameterTypes":[] },
68+
{"name":"getSetOperationCount","parameterTypes":[] },
69+
{"name":"getBackupEntryCount","parameterTypes":[] },
70+
{"name":"getBackupEntryMemoryCost","parameterTypes":[] },
71+
{"name":"getOwnedEntryMemoryCost","parameterTypes":[] },
72+
{"name":"getGetOperationCount","parameterTypes":[] },
73+
{"name":"getTotalGetLatency","parameterTypes":[] },
74+
{"name":"getTotalPutLatency","parameterTypes":[] },
75+
{"name":"getRemoveOperationCount","parameterTypes":[] },
76+
{"name":"getTotalRemoveLatency","parameterTypes":[] }
77+
]
78+
},
79+
{
80+
"name":"com.hazelcast.nearcache.NearCacheStats",
81+
"methods":[
82+
{"name":"getHits","parameterTypes":[] },
83+
{"name":"getMisses","parameterTypes":[] },
84+
{"name":"getEvictions","parameterTypes":[] },
85+
{"name":"getPersistenceCount","parameterTypes":[] }
86+
]
87+
},
88+
{
89+
"name":"com.hazelcast.monitor.NearCacheStats",
90+
"methods":[
91+
{"name":"getHits","parameterTypes":[] },
92+
{"name":"getMisses","parameterTypes":[] },
93+
{"name":"getEvictions","parameterTypes":[] },
94+
{"name":"getPersistenceCount","parameterTypes":[] }
95+
]
3096
}
3197
]

0 commit comments

Comments
 (0)