2929import java .net .InetAddress ;
3030import java .util .concurrent .CompletableFuture ;
3131import java .util .concurrent .ExecutionException ;
32+ import java .util .function .Consumer ;
3233import org .apache .dubbo .common .utils .NetUtils ;
3334import org .apache .dubbo .config .ApplicationConfig ;
3435import org .apache .dubbo .config .ProtocolConfig ;
3839import org .apache .dubbo .config .bootstrap .DubboBootstrap ;
3940import org .apache .dubbo .rpc .service .GenericService ;
4041import org .assertj .core .api .AbstractAssert ;
42+ import org .assertj .core .api .AbstractStringAssert ;
4143import org .junit .jupiter .api .AfterAll ;
4244import org .junit .jupiter .api .BeforeAll ;
4345import org .junit .jupiter .api .Test ;
@@ -143,23 +145,11 @@ void testApacheDubboBase() throws ReflectiveOperationException {
143145 satisfies (SERVER_PORT , k -> k .isInstanceOf (Long .class )),
144146 satisfies (
145147 NETWORK_PEER_ADDRESS ,
146- k ->
147- k .satisfiesAnyOf (
148- val -> assertThat (val ).isNull (),
149- val -> assertThat (val ).isInstanceOf (String .class ))),
148+ k -> assertLatestDeps (k , a -> a .isInstanceOf (String .class ))),
150149 satisfies (
151150 NETWORK_PEER_PORT ,
152- k ->
153- k .satisfiesAnyOf (
154- val -> assertThat (val ).isNull (),
155- val -> assertThat (val ).isInstanceOf (Long .class ))),
156- satisfies (
157- NETWORK_TYPE ,
158- k ->
159- k .satisfiesAnyOf (
160- val -> assertThat (val ).isNull (),
161- val -> assertThat (val ).isEqualTo ("ipv4" ),
162- val -> assertThat (val ).isEqualTo ("ipv6" )))),
151+ k -> assertLatestDeps (k , a -> a .isInstanceOf (Long .class ))),
152+ satisfies (NETWORK_TYPE , AbstractDubboTest ::assertNetworkType )),
163153 span ->
164154 span .hasName (
165155 "io.opentelemetry.instrumentation.apachedubbo.v2_7.api.HelloService/hello" )
@@ -174,8 +164,7 @@ void testApacheDubboBase() throws ReflectiveOperationException {
174164 "io.opentelemetry.instrumentation.apachedubbo.v2_7.api.HelloService" ),
175165 equalTo (RPC_METHOD , "hello" ),
176166 satisfies (NETWORK_PEER_ADDRESS , k -> k .isInstanceOf (String .class )),
177- satisfies (NETWORK_PEER_PORT , k -> k .isInstanceOf (Long .class )),
178- satisfies (NETWORK_TYPE , AbstractAssert ::isNull ))));
167+ satisfies (NETWORK_PEER_PORT , k -> k .isInstanceOf (Long .class )))));
179168
180169 testing ()
181170 .waitAndAssertMetrics (
@@ -227,14 +216,7 @@ void testApacheDubboBase() throws ReflectiveOperationException {
227216 SERVER_PORT , k -> k .isInstanceOf (Long .class )),
228217 satisfies (
229218 NETWORK_TYPE ,
230- k ->
231- k .satisfiesAnyOf (
232- val -> assertThat (val ).isNull (),
233- val ->
234- assertThat (val ).isEqualTo ("ipv4" ),
235- val ->
236- assertThat (val )
237- .isEqualTo ("ipv6" ))))))));
219+ AbstractDubboTest ::assertNetworkType ))))));
238220 }
239221
240222 @ Test
@@ -294,23 +276,11 @@ void testApacheDubboTest()
294276 satisfies (SERVER_PORT , k -> k .isInstanceOf (Long .class )),
295277 satisfies (
296278 NETWORK_PEER_ADDRESS ,
297- k ->
298- k .satisfiesAnyOf (
299- val -> assertThat (val ).isNull (),
300- val -> assertThat (val ).isInstanceOf (String .class ))),
279+ k -> assertLatestDeps (k , a -> a .isInstanceOf (String .class ))),
301280 satisfies (
302281 NETWORK_PEER_PORT ,
303- k ->
304- k .satisfiesAnyOf (
305- val -> assertThat (val ).isNull (),
306- val -> assertThat (val ).isInstanceOf (Long .class ))),
307- satisfies (
308- NETWORK_TYPE ,
309- k ->
310- k .satisfiesAnyOf (
311- val -> assertThat (val ).isNull (),
312- val -> assertThat (val ).isEqualTo ("ipv4" ),
313- val -> assertThat (val ).isEqualTo ("ipv6" )))),
282+ k -> assertLatestDeps (k , a -> a .isInstanceOf (Long .class ))),
283+ satisfies (NETWORK_TYPE , AbstractDubboTest ::assertNetworkType )),
314284 span ->
315285 span .hasName (
316286 "io.opentelemetry.instrumentation.apachedubbo.v2_7.api.HelloService/hello" )
@@ -326,13 +296,18 @@ void testApacheDubboTest()
326296 equalTo (RPC_METHOD , "hello" ),
327297 satisfies (NETWORK_PEER_ADDRESS , k -> k .isInstanceOf (String .class )),
328298 satisfies (NETWORK_PEER_PORT , k -> k .isInstanceOf (Long .class )),
299+ // this attribute is not filled reliably, it is either null or
300+ // "ipv4"/"ipv6"
329301 satisfies (
330302 NETWORK_TYPE ,
331303 k ->
332- k .satisfiesAnyOf (
333- val -> assertThat (val ).isNull (),
334- val -> assertThat (val ).isEqualTo ("ipv4" ),
335- val -> assertThat (val ).isEqualTo ("ipv6" ))))));
304+ assertLatestDeps (
305+ k ,
306+ a ->
307+ a .satisfiesAnyOf (
308+ val -> assertThat (val ).isNull (),
309+ val -> assertThat (val ).isEqualTo ("ipv4" ),
310+ val -> assertThat (val ).isEqualTo ("ipv6" )))))));
336311
337312 testing ()
338313 .waitAndAssertMetrics (
@@ -384,13 +359,24 @@ void testApacheDubboTest()
384359 SERVER_PORT , k -> k .isInstanceOf (Long .class )),
385360 satisfies (
386361 NETWORK_TYPE ,
387- k ->
388- k .satisfiesAnyOf (
389- val -> assertThat (val ).isNull (),
390- val ->
391- assertThat (val ).isEqualTo ("ipv4" ),
392- val ->
393- assertThat (val )
394- .isEqualTo ("ipv6" ))))))));
362+ AbstractDubboTest ::assertNetworkType ))))));
363+ }
364+
365+ static void assertNetworkType (AbstractStringAssert <?> stringAssert ) {
366+ assertLatestDeps (
367+ stringAssert ,
368+ a ->
369+ a .satisfiesAnyOf (
370+ val -> assertThat (val ).isEqualTo ("ipv4" ),
371+ val -> assertThat (val ).isEqualTo ("ipv6" )));
372+ }
373+
374+ static void assertLatestDeps (
375+ AbstractAssert <?, ?> assertion , Consumer <AbstractAssert <?, ?>> action ) {
376+ if (Boolean .getBoolean ("testLatestDeps" )) {
377+ action .accept (assertion );
378+ } else {
379+ assertion .isNull ();
380+ }
395381 }
396382}
0 commit comments