Fix testLatestDeps in dubbo instrumentation (#6754)

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
This commit is contained in:
yingziisme 2022-09-27 01:03:31 +08:00 committed by GitHub
parent 6fdea85873
commit 4057dcc04a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 11 additions and 16 deletions

View File

@ -27,6 +27,4 @@ tasks.withType<Test>().configureEach {
jvmArgs("--add-opens=java.base/java.math=ALL-UNNAMED") jvmArgs("--add-opens=java.base/java.math=ALL-UNNAMED")
// required on jdk17 // required on jdk17
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
} }

View File

@ -6,9 +6,6 @@
package io.opentelemetry.instrumentation.apachedubbo.v2_7 package io.opentelemetry.instrumentation.apachedubbo.v2_7
import io.opentelemetry.instrumentation.test.AgentTestTrait import io.opentelemetry.instrumentation.test.AgentTestTrait
import spock.lang.IgnoreIf
// TODO (trask) fix the test on latest version of dubbo
@IgnoreIf({ Boolean.getBoolean("testLatestDeps") })
class DubboTraceChainTest extends AbstractDubboTraceChainTest implements AgentTestTrait { class DubboTraceChainTest extends AbstractDubboTraceChainTest implements AgentTestTrait {
} }

View File

@ -19,6 +19,4 @@ tasks.withType<Test>().configureEach {
jvmArgs("--add-opens=java.base/java.math=ALL-UNNAMED") jvmArgs("--add-opens=java.base/java.math=ALL-UNNAMED")
// required on jdk17 // required on jdk17
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
} }

View File

@ -6,9 +6,6 @@
package io.opentelemetry.instrumentation.apachedubbo.v2_7 package io.opentelemetry.instrumentation.apachedubbo.v2_7
import io.opentelemetry.instrumentation.test.LibraryTestTrait import io.opentelemetry.instrumentation.test.LibraryTestTrait
import spock.lang.IgnoreIf
// TODO (trask) fix the test on latest version of dubbo
@IgnoreIf({ Boolean.getBoolean("testLatestDeps") })
class DubboTraceChainTest extends AbstractDubboTraceChainTest implements LibraryTestTrait { class DubboTraceChainTest extends AbstractDubboTraceChainTest implements LibraryTestTrait {
} }

View File

@ -59,12 +59,12 @@ abstract class AbstractDubboTraceChainTest extends InstrumentationSpecification
return service return service
} }
ServiceConfig configureMiddleServer(GenericService genericService) { ServiceConfig configureMiddleServer(ReferenceConfig<HelloService> referenceConfig) {
def registerConfig = new RegistryConfig() def registerConfig = new RegistryConfig()
registerConfig.setAddress("N/A") registerConfig.setAddress("N/A")
ServiceConfig<MiddleServiceImpl> service = new ServiceConfig<>() ServiceConfig<MiddleServiceImpl> service = new ServiceConfig<>()
service.setInterface(MiddleService) service.setInterface(MiddleService)
service.setRef(new MiddleServiceImpl(genericService)) service.setRef(new MiddleServiceImpl(referenceConfig))
service.setRegistry(registerConfig) service.setRegistry(registerConfig)
return service return service
} }
@ -89,7 +89,7 @@ abstract class AbstractDubboTraceChainTest extends InstrumentationSpecification
DubboBootstrap middleBootstrap = DubboBootstrap.newInstance() DubboBootstrap middleBootstrap = DubboBootstrap.newInstance()
middleBootstrap.application(new ApplicationConfig("dubbo-demo-middle")) middleBootstrap.application(new ApplicationConfig("dubbo-demo-middle"))
.reference(reference) .reference(reference)
.service(configureMiddleServer(reference.get())) .service(configureMiddleServer(reference))
.protocol(middleProtocolConfig) .protocol(middleProtocolConfig)
.start() .start()
@ -154,6 +154,9 @@ abstract class AbstractDubboTraceChainTest extends InstrumentationSpecification
"$SemanticAttributes.RPC_METHOD" "\$invoke" "$SemanticAttributes.RPC_METHOD" "\$invoke"
"$SemanticAttributes.NET_PEER_NAME" "localhost" "$SemanticAttributes.NET_PEER_NAME" "localhost"
"$SemanticAttributes.NET_PEER_PORT" Long "$SemanticAttributes.NET_PEER_PORT" Long
"net.sock.peer.addr" { it == null || String }
"net.sock.peer.port" { it == null || Long }
"net.sock.peer.name" { it == null || String }
} }
} }
span(4) { span(4) {

View File

@ -6,18 +6,20 @@
package io.opentelemetry.instrumentation.apachedubbo.v2_7.impl; package io.opentelemetry.instrumentation.apachedubbo.v2_7.impl;
import io.opentelemetry.instrumentation.apachedubbo.v2_7.api.MiddleService; import io.opentelemetry.instrumentation.apachedubbo.v2_7.api.MiddleService;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.rpc.service.GenericService; import org.apache.dubbo.rpc.service.GenericService;
public class MiddleServiceImpl implements MiddleService { public class MiddleServiceImpl implements MiddleService {
private final GenericService genericService; private final ReferenceConfig<?> referenceConfig;
public MiddleServiceImpl(GenericService genericService) { public MiddleServiceImpl(ReferenceConfig<?> referenceConfig) {
this.genericService = genericService; this.referenceConfig = referenceConfig;
} }
@Override @Override
public String hello(String hello) { public String hello(String hello) {
GenericService genericService = (GenericService) referenceConfig.get();
return genericService return genericService
.$invoke("hello", new String[] {String.class.getName()}, new Object[] {hello}) .$invoke("hello", new String[] {String.class.getName()}, new Object[] {hello})
.toString(); .toString();