Skip to content

Commit 794dea1

Browse files
committed
adding spring data es metadata to runtime info
1 parent ab0d212 commit 794dea1

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

java-client/src/main/java/co/elastic/clients/util/LanguageRuntimeVersions.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121

2222
// Copied verbatim from https://github.com/elastic/jvm-languages-sniffer
2323

24+
import javax.annotation.Nullable;
2425
import java.lang.reflect.Field;
2526
import java.lang.reflect.Method;
27+
import java.util.Properties;
2628

2729
public class LanguageRuntimeVersions {
2830

@@ -59,6 +61,11 @@ public static String getRuntimeMetadata() {
5961
s.append(",jrb=").append(version);
6062
}
6163

64+
version = springDataVersion();
65+
if (version != null) {
66+
s.append(",sd-es=").append(version);
67+
}
68+
6269
return s.toString();
6370
}
6471

@@ -89,6 +96,18 @@ public static String jRubyVersion() {
8996
return keepMajorMinor(getStaticField("org.jruby.runtime.Constants", "VERSION"));
9097
}
9198

99+
public static String springDataVersion() {
100+
// org.springframework.data.elasticsearch.support.VersionInfo.versionProperties()
101+
Properties springProp = (Properties) callStaticMethodObject(
102+
"org.springframework.data.elasticsearch.support.VersionInfo",
103+
"versionProperties");
104+
if (springProp != null) {
105+
return keepMajorMinor(springProp.getProperty("version.spring-data-elasticsearch"));
106+
}
107+
return "";
108+
109+
}
110+
92111
private static String getStaticField(String className, String fieldName) {
93112
Class<?> clazz;
94113
try {
@@ -121,6 +140,22 @@ private static String callStaticMethod(String className, String methodName) {
121140
}
122141
}
123142

143+
private static Object callStaticMethodObject(String className, String methodName) {
144+
Class<?> clazz;
145+
try {
146+
clazz = Class.forName(className);
147+
} catch (ClassNotFoundException e) {
148+
return null;
149+
}
150+
151+
try {
152+
Method m = clazz.getMethod(methodName);
153+
return m.invoke(null);
154+
} catch (Exception e) {
155+
return null; // can't get version information
156+
}
157+
}
158+
124159
static String keepMajorMinor(String version) {
125160
if (version == null) {
126161
return null;

0 commit comments

Comments
 (0)