Skip to content

Commit aad0b0f

Browse files
authored
Review fixes for xxl-job-2.3.0:javaagent (open-telemetry#17203)
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com>
1 parent f26779a commit aad0b0f

7 files changed

Lines changed: 22 additions & 22 deletions

File tree

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ dependencies {
2222
}
2323
implementation(project(":instrumentation:xxl-job:xxl-job-common:javaagent"))
2424

25+
testInstrumentation(project(":instrumentation:xxl-job:xxl-job-1.9.2:javaagent"))
2526
testInstrumentation(project(":instrumentation:xxl-job:xxl-job-2.1.2:javaagent"))
2627
testInstrumentation(project(":instrumentation:xxl-job:xxl-job-2.3.0:javaagent"))
2728

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/xxljob/v2_3_0/GlueJobHandlerInstrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public ElementMatcher<TypeDescription> typeMatcher() {
3232
public void transform(TypeTransformer transformer) {
3333
transformer.applyAdviceToMethod(
3434
named("execute").and(isPublic()).and(takesNoArguments()),
35-
GlueJobHandlerInstrumentation.class.getName() + "$ScheduleAdvice");
35+
getClass().getName() + "$ScheduleAdvice");
3636
}
3737

3838
@SuppressWarnings("unused")

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/xxljob/v2_3_0/MethodJobHandlerInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,12 @@ public ElementMatcher<TypeDescription> typeMatcher() {
3232
public void transform(TypeTransformer transformer) {
3333
transformer.applyAdviceToMethod(
3434
named("execute").and(isPublic()).and(takesNoArguments()),
35-
MethodJobHandlerInstrumentation.class.getName() + "$ScheduleAdvice");
35+
getClass().getName() + "$ScheduleAdvice");
3636
}
3737

3838
@SuppressWarnings("unused")
3939
public static class ScheduleAdvice {
40+
@Nullable
4041
@Advice.OnMethodEnter(suppress = Throwable.class)
4142
public static XxlJobHelper.XxlJobScope onSchedule(
4243
@Advice.FieldValue("target") Object target, @Advice.FieldValue("method") Method method) {

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/xxljob/v2_3_0/ScriptJobHandlerInstrumentation.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@ public ElementMatcher<TypeDescription> typeMatcher() {
3232
public void transform(TypeTransformer transformer) {
3333
transformer.applyAdviceToMethod(
3434
named("execute").and(isPublic()).and(takesNoArguments()),
35-
ScriptJobHandlerInstrumentation.class.getName() + "$ScheduleAdvice");
35+
getClass().getName() + "$ScheduleAdvice");
3636
}
3737

3838
@SuppressWarnings("unused")
3939
public static class ScheduleAdvice {
4040

41+
@Nullable
4142
@Advice.OnMethodEnter(suppress = Throwable.class)
4243
public static XxlJobHelper.XxlJobScope onSchedule(
4344
@Advice.FieldValue("glueType") GlueTypeEnum glueType,
@@ -47,7 +48,7 @@ public static XxlJobHelper.XxlJobScope onSchedule(
4748

4849
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
4950
public static void stopSpan(
50-
@Advice.Return(typing = Assigner.Typing.DYNAMIC) Object result,
51+
@Advice.Return(typing = Assigner.Typing.DYNAMIC) @Nullable Object result,
5152
@Advice.Thrown @Nullable Throwable throwable,
5253
@Advice.Enter @Nullable XxlJobHelper.XxlJobScope scope) {
5354
helper().endSpan(scope, result, throwable);

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/xxljob/v2_3_0/SimpleJobHandlerInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@ public ElementMatcher<TypeDescription> typeMatcher() {
3939
public void transform(TypeTransformer transformer) {
4040
transformer.applyAdviceToMethod(
4141
named("execute").and(isPublic()).and(takesNoArguments()),
42-
SimpleJobHandlerInstrumentation.class.getName() + "$ScheduleAdvice");
42+
getClass().getName() + "$ScheduleAdvice");
4343
}
4444

4545
@SuppressWarnings("unused")
4646
public static class ScheduleAdvice {
4747

48+
@Nullable
4849
@Advice.OnMethodEnter(suppress = Throwable.class)
4950
public static XxlJobHelper.XxlJobScope onSchedule(@Advice.This IJobHandler handler) {
5051
return helper().startSpan(XxlJobProcessRequest.createSimpleJobRequest(handler));

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/xxljob/v2_3_0/XxlJobInstrumentationModule.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ public XxlJobInstrumentationModule() {
2626
@Override
2727
public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
2828
return hasClassesNamed(
29-
"com.xxl.job.core.handler.impl.MethodJobHandler", "com.xxl.job.core.context.XxlJobHelper");
29+
// added in 2.1.2
30+
"com.xxl.job.core.handler.impl.MethodJobHandler",
31+
// added in 2.3.0
32+
"com.xxl.job.core.context.XxlJobHelper");
3033
}
3134

3235
@Override

instrumentation/xxl-job/xxl-job-2.3.0/javaagent/src/xxlJob33Test/java/io/opentelemetry/javaagent/instrumentation/xxljob/v3_3_0/ReflectiveMethodsFactory.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,29 +34,22 @@ static Object getTarget() {
3434
}
3535

3636
static Method getMethod() {
37-
try {
38-
return SINGLETON_OBJECT.getClass().getMethod("echo", String.class);
39-
} catch (Throwable t) {
40-
// Ignore
41-
}
42-
return null;
37+
return getRequiredMethod("echo", String.class);
4338
}
4439

4540
static Method getInitMethod() {
46-
try {
47-
return SINGLETON_OBJECT.getClass().getMethod("initMethod");
48-
} catch (Throwable t) {
49-
// Ignore
50-
}
51-
return null;
41+
return getRequiredMethod("initMethod");
5242
}
5343

5444
static Method getDestroyMethod() {
45+
return getRequiredMethod("destroyMethod");
46+
}
47+
48+
private static Method getRequiredMethod(String name, Class<?>... parameterTypes) {
5549
try {
56-
return SINGLETON_OBJECT.getClass().getMethod("destroyMethod");
57-
} catch (Throwable t) {
58-
// Ignore
50+
return SINGLETON_OBJECT.getClass().getMethod(name, parameterTypes);
51+
} catch (ReflectiveOperationException exception) {
52+
throw new IllegalStateException("Failed to resolve reflective method: " + name, exception);
5953
}
60-
return null;
6154
}
6255
}

0 commit comments

Comments
 (0)