This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 40f44f91f5a8c132fcc46bb4931a7f512ba2dea3
Merge: 93ec8e368d 8ac2eaa326
Author: Albumen Kevin <jhq0...@gmail.com>
AuthorDate: Thu Nov 30 11:30:46 2023 +0800

    Merge branch 'apache-3.2' into apache-3.3
    
    # Conflicts:
    #       
dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/pom.xml
    #       
dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/pom.xml
    #       dubbo-dependencies-bom/pom.xml
    #       
dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
    #       dubbo-spring-boot/pom.xml

 dubbo-config/dubbo-config-api/pom.xml              |   2 +-
 dubbo-config/dubbo-config-spring/pom.xml           |   2 +-
 dubbo-demo/dubbo-demo-annotation/pom.xml           |   2 +-
 dubbo-demo/dubbo-demo-api/pom.xml                  |   2 +-
 dubbo-demo/dubbo-demo-spring-boot/pom.xml          |   6 +-
 dubbo-demo/dubbo-demo-xml/pom.xml                  |   2 +-
 dubbo-dependencies-bom/pom.xml                     |  14 +-
 .../main/resources/Dubbo3InterfaceStub.mustache    |  14 +-
 .../resources/Dubbo3TripleInterfaceStub.mustache   |  29 +--
 .../src/main/resources/Dubbo3TripleStub.mustache   |  37 +++-
 .../registry/nacos/NacosAggregateListener.java     |   2 +-
 .../otel/OpenTelemetryAutoConfiguration.java       | 196 ++++++++++++---------
 .../observability/pom.xml                          |   6 +-
 dubbo-spring-boot/pom.xml                          |   4 +-
 pom.xml                                            |   2 +-
 15 files changed, 176 insertions(+), 144 deletions(-)

diff --cc dubbo-demo/dubbo-demo-spring-boot/pom.xml
index 2833598889,109112302b..ac0e86dfb6
--- a/dubbo-demo/dubbo-demo-spring-boot/pom.xml
+++ b/dubbo-demo/dubbo-demo-spring-boot/pom.xml
@@@ -32,12 -32,13 +32,12 @@@
    </modules>
  
    <properties>
 -    <maven.compiler.source>8</maven.compiler.source>
 -    <maven.compiler.target>8</maven.compiler.target>
      <skip_maven_deploy>true</skip_maven_deploy>
-     <spring-boot.version>2.7.17</spring-boot.version>
-     
<spring-boot-maven-plugin.version>2.7.17</spring-boot-maven-plugin.version>
-     <micrometer-core.version>1.11.5</micrometer-core.version>
+     <spring-boot.version>2.7.18</spring-boot.version>
+     
<spring-boot-maven-plugin.version>2.7.18</spring-boot-maven-plugin.version>
+     <micrometer-core.version>1.12.0</micrometer-core.version>
    </properties>
 +
    <dependencyManagement>
      <dependencies>
        <dependency>
diff --cc dubbo-dependencies-bom/pom.xml
index 1cd24fde22,fd7fa4e541..ab6073a88b
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@@ -93,7 -93,7 +93,7 @@@
      <spring_version>5.3.25</spring_version>
      <spring_security_version>5.8.8</spring_security_version>
      <javassist_version>3.29.2-GA</javassist_version>
-     <byte-buddy_version>1.14.9</byte-buddy_version>
 -    <bytebuddy.version>1.14.10</bytebuddy.version>
++    <byte-buddy_version>1.14.10</byte-buddy_version>
      <netty_version>3.2.10.Final</netty_version>
      <netty4_version>4.1.101.Final</netty4_version>
      <mina_version>2.2.1</mina_version>
@@@ -132,10 -132,9 +132,10 @@@
      <commons_lang3_version>3.12.0</commons_lang3_version>
      <protostuff_version>1.8.0</protostuff_version>
      <envoy_api_version>0.1.35</envoy_api_version>
-     <micrometer.version>1.11.5</micrometer.version>
+     <micrometer.version>1.12.0</micrometer.version>
 -
 +    <opentelemetry.version>1.26.0</opentelemetry.version>
 +    <zipkin-reporter.version>2.16.4</zipkin-reporter.version>
-     <micrometer-tracing.version>1.1.6</micrometer-tracing.version>
+     <micrometer-tracing.version>1.2.0</micrometer-tracing.version>
      <t_digest.version>3.3</t_digest.version>
      <prometheus_client.version>0.16.0</prometheus_client.version>
      <reactive.version>1.0.4</reactive.version>
@@@ -176,17 -171,9 +176,17 @@@
      <!-- Alibaba -->
      
<alibaba_spring_context_support_version>1.0.11</alibaba_spring_context_support_version>
  
 +    <!-- Test libs -->
 +    <junit_jupiter_version>5.9.3</junit_jupiter_version>
 +    <junit_version>4.13.2</junit_version>
 +    <awaitility_version>4.2.0</awaitility_version>
 +    <hamcrest_version>2.2</hamcrest_version>
 +    <cglib_version>2.2.2</cglib_version>
 +    <mockito_version>4.11.0</mockito_version>
 +
      <jaxb_version>2.2.7</jaxb_version>
      <activation_version>1.2.0</activation_version>
-     <test_container_version>1.19.1</test_container_version>
+     <test_container_version>1.19.3</test_container_version>
      <etcd_launcher_version>0.7.6</etcd_launcher_version>
      <hessian_lite_version>3.2.13</hessian_lite_version>
      <swagger_version>1.6.12</swagger_version>
diff --cc 
dubbo-plugin/dubbo-compiler/src/main/resources/Dubbo3InterfaceStub.mustache
index 2764d63e83,0000000000..15172691bf
mode 100644,000000..100644
--- 
a/dubbo-plugin/dubbo-compiler/src/main/resources/Dubbo3InterfaceStub.mustache
+++ 
b/dubbo-plugin/dubbo-compiler/src/main/resources/Dubbo3InterfaceStub.mustache
@@@ -1,76 -1,0 +1,76 @@@
 +/*
 +* Licensed to the Apache Software Foundation (ASF) under one or more
 +* contributor license agreements.  See the NOTICE file distributed with
 +* this work for additional information regarding copyright ownership.
 +* The ASF licenses this file to You under the Apache License, Version 2.0
 +* (the "License"); you may not use this file except in compliance with
 +* the License.  You may obtain a copy of the License at
 +*
 +*     http://www.apache.org/licenses/LICENSE-2.0
 +*
 +* Unless required by applicable law or agreed to in writing, software
 +* distributed under the License is distributed on an "AS IS" BASIS,
 +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +* See the License for the specific language governing permissions and
 +* limitations under the License.
 +*/
 +
 +{{#packageName}}
 +package {{packageName}};
 +{{/packageName}}
 +
 +import java.util.concurrent.CompletableFuture;
 +import java.util.concurrent.atomic.AtomicBoolean;
 +
 +{{#deprecated}}
-     @java.lang.Deprecated
++@java.lang.Deprecated
 +{{/deprecated}}
 +public interface {{interfaceClassName}} extends 
org.apache.dubbo.rpc.model.DubboStub {
 +
 +    static final String JAVA_SERVICE_NAME = "{{packageName}}.{{serviceName}}";
 +{{#commonPackageName}}
 +    static final String SERVICE_NAME = 
"{{commonPackageName}}.{{serviceName}}";
 +{{/commonPackageName}}
 +{{^commonPackageName}}
 +    static final String SERVICE_NAME = "{{serviceName}}";
 +{{/commonPackageName}}
 +
 +    // FIXME, initialize Dubbo3 stub when interface loaded, thinking of new 
ways doing this.
 +    static final boolean inited = {{className}}.init();
 +
 +{{#unaryMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    {{#deprecated}}
-         @java.lang.Deprecated
++    @java.lang.Deprecated
 +    {{/deprecated}}
 +    {{outputType}} {{methodName}}({{inputType}} request);
 +
 +    default CompletableFuture<{{outputType}}> 
{{methodName}}Async({{inputType}} request){
 +        return CompletableFuture.supplyAsync(() -> {{methodName}}(request));
 +    }
 +
 +{{/unaryMethods}}
 +
 +{{#serverStreamingMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    {{#deprecated}}
-         @java.lang.Deprecated
++    @java.lang.Deprecated
 +    {{/deprecated}}
 +    void {{methodName}}({{inputType}} request, 
org.apache.dubbo.common.stream.StreamObserver<{{outputType}}> responseObserver);
 +{{/serverStreamingMethods}}
 +
 +{{#biStreamingMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    {{#deprecated}}
-         @java.lang.Deprecated
++    @java.lang.Deprecated
 +    {{/deprecated}}
 +    org.apache.dubbo.common.stream.StreamObserver<{{inputType}}> 
{{methodName}}(org.apache.dubbo.common.stream.StreamObserver<{{outputType}}> 
responseObserver);
 +{{/biStreamingMethods}}
 +
 +}
diff --cc 
dubbo-plugin/dubbo-compiler/src/main/resources/Dubbo3TripleInterfaceStub.mustache
index d4ca6653f9,0000000000..d31fed7efb
mode 100644,000000..100644
--- 
a/dubbo-plugin/dubbo-compiler/src/main/resources/Dubbo3TripleInterfaceStub.mustache
+++ 
b/dubbo-plugin/dubbo-compiler/src/main/resources/Dubbo3TripleInterfaceStub.mustache
@@@ -1,88 -1,0 +1,73 @@@
 +/*
 +* Licensed to the Apache Software Foundation (ASF) under one or more
 +* contributor license agreements.  See the NOTICE file distributed with
 +* this work for additional information regarding copyright ownership.
 +* The ASF licenses this file to You under the Apache License, Version 2.0
 +* (the "License"); you may not use this file except in compliance with
 +* the License.  You may obtain a copy of the License at
 +*
 +*     http://www.apache.org/licenses/LICENSE-2.0
 +*
 +* Unless required by applicable law or agreed to in writing, software
 +* distributed under the License is distributed on an "AS IS" BASIS,
 +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +* See the License for the specific language governing permissions and
 +* limitations under the License.
 +*/
 +
 +{{#packageName}}
-     package {{packageName}};
++package {{packageName}};
 +{{/packageName}}
 +
 +import org.apache.dubbo.common.stream.StreamObserver;
 +import com.google.protobuf.Message;
 +
 +import java.util.HashMap;
 +import java.util.Map;
 +import java.util.function.BiConsumer;
 +import java.util.concurrent.CompletableFuture;
 +
 +public interface {{interfaceClassName}} extends 
org.apache.dubbo.rpc.model.DubboStub {
 +
 +    String JAVA_SERVICE_NAME = "{{packageName}}.{{serviceName}}";
 +{{#commonPackageName}}
 +    String SERVICE_NAME = "{{commonPackageName}}.{{serviceName}}";
 +{{/commonPackageName}}
 +{{^commonPackageName}}
 +    String SERVICE_NAME = "{{serviceName}}";
 +{{/commonPackageName}}
 +{{#unaryMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    {{outputType}} {{methodName}}({{inputType}} request);
 +
-     default CompletableFuture<{{outputType}}> 
{{methodName}}Async({{inputType}} request){
-         return CompletableFuture.completedFuture({{methodName}}(request));
-     }
++    CompletableFuture<{{outputType}}> {{methodName}}Async({{inputType}} 
request);
++
 +
-     /**
-     * This server stream type unary method is <b>only</b> used for generated 
stub to support async unary method.
-     * It will not be called if you are NOT using Dubbo3 generated triple stub 
and <b>DO NOT</b> implement this method.
-     */
-     default void {{methodName}}({{inputType}} request, 
StreamObserver<{{outputType}}> responseObserver){
-         {{methodName}}Async(request).whenComplete((r, t) -> {
-             if (t != null) {
-                 responseObserver.onError(t);
-             } else {
-                 responseObserver.onNext(r);
-                 responseObserver.onCompleted();
-             }
-         });
-     }
 +
 +{{/unaryMethods}}
 +
 +{{#serverStreamingMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    void {{methodName}}({{inputType}} request, StreamObserver<{{outputType}}> 
responseObserver);
 +{{/serverStreamingMethods}}
 +
 +{{#biStreamingWithoutClientStreamMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    StreamObserver<{{inputType}}> 
{{methodName}}(StreamObserver<{{outputType}}> responseObserver);
 +{{/biStreamingWithoutClientStreamMethods}}
 +
 +
 +{{#clientStreamingMethods}}
 +    {{#javaDoc}}
-         {{{javaDoc}}}
++    {{{javaDoc}}}
 +    {{/javaDoc}}
 +    StreamObserver<{{inputType}}> 
{{methodName}}(StreamObserver<{{outputType}}> responseObserver);
 +{{/clientStreamingMethods}}
 +
 +}
diff --cc 
dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
index 3d9520e115,4eba4950dc..e8c1ef063e
--- 
a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
+++ 
b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java
@@@ -43,16 -46,16 +46,16 @@@ import static org.apache.dubbo.spring.b
   */
  @ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", 
matchIfMissing = true)
  @AutoConfiguration(
--        before = DubboMicrometerTracingAutoConfiguration.class,
--        afterName = 
"org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryAutoConfiguration")
++    before = DubboMicrometerTracingAutoConfiguration.class,
++    afterName = 
"org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryAutoConfiguration")
  @ConditionalOnDubboTracingEnable
  @ConditionalOnClass(
--        name = {
--            "io.micrometer.tracing.otel.bridge.OtelTracer",
--            "io.opentelemetry.sdk.trace.SdkTracerProvider",
--            "io.opentelemetry.api.OpenTelemetry",
--            "io.micrometer.tracing.SpanCustomizer"
--        })
++    name = {
++        "io.micrometer.tracing.otel.bridge.OtelTracer",
++        "io.opentelemetry.sdk.trace.SdkTracerProvider",
++        "io.opentelemetry.api.OpenTelemetry",
++        "io.micrometer.tracing.SpanCustomizer"
++    })
  @EnableConfigurationProperties(DubboConfigurationProperties.class)
  public class OpenTelemetryAutoConfiguration {
  
@@@ -70,30 -76,48 +76,48 @@@
      @Bean
      @ConditionalOnMissingBean
      io.opentelemetry.api.OpenTelemetry openTelemetry(
--            io.opentelemetry.sdk.trace.SdkTracerProvider sdkTracerProvider,
--            io.opentelemetry.context.propagation.ContextPropagators 
contextPropagators) {
++        io.opentelemetry.sdk.trace.SdkTracerProvider sdkTracerProvider,
++        io.opentelemetry.context.propagation.ContextPropagators 
contextPropagators) {
          return io.opentelemetry.sdk.OpenTelemetrySdk.builder()
--                .setTracerProvider(sdkTracerProvider)
--                .setPropagators(contextPropagators)
--                .build();
++            .setTracerProvider(sdkTracerProvider)
++            .setPropagators(contextPropagators)
++            .build();
      }
  
      @Bean
      @ConditionalOnMissingBean
      io.opentelemetry.sdk.trace.SdkTracerProvider otelSdkTracerProvider(
--            ObjectProvider<io.opentelemetry.sdk.trace.SpanProcessor> 
spanProcessors,
--            io.opentelemetry.sdk.trace.samplers.Sampler sampler) {
-         String applicationName = 
dubboConfigProperties.getApplication().getName();
-         if (StringUtils.isEmpty(applicationName)) {
-             applicationName = DEFAULT_APPLICATION_NAME;
++        ObjectProvider<io.opentelemetry.sdk.trace.SpanProcessor> 
spanProcessors,
++        io.opentelemetry.sdk.trace.samplers.Sampler sampler) {
+         String applicationName = moduleModel
 -                .getApplicationModel()
 -                .getApplicationConfigManager()
 -                .getApplication()
 -                .map(ApplicationConfig::getName)
 -                .orElse(DEFAULT_APPLICATION_NAME);
++            .getApplicationModel()
++            .getApplicationConfigManager()
++            .getApplication()
++            .map(ApplicationConfig::getName)
++            .orElse(DEFAULT_APPLICATION_NAME);
+         // Due to https://github.com/micrometer-metrics/tracing/issues/343
+         String RESOURCE_ATTRIBUTES_CLASS_NAME = 
"io.opentelemetry.semconv.ResourceAttributes";
+         boolean isLowVersion = !ClassUtils.isPresent(
 -                RESOURCE_ATTRIBUTES_CLASS_NAME, 
Thread.currentThread().getContextClassLoader());
++            RESOURCE_ATTRIBUTES_CLASS_NAME, 
Thread.currentThread().getContextClassLoader());
+         AttributeKey<String> serviceNameAttributeKey = 
AttributeKey.stringKey("service.name");
+         String SERVICE_NAME = "SERVICE_NAME";
+ 
+         if (isLowVersion) {
+             RESOURCE_ATTRIBUTES_CLASS_NAME = 
"io.opentelemetry.semconv.resource.attributes.ResourceAttributes";
+         }
+         try {
+             serviceNameAttributeKey = (AttributeKey<String>) 
ClassUtils.resolveClass(
 -                            RESOURCE_ATTRIBUTES_CLASS_NAME,
 -                            Thread.currentThread().getContextClassLoader())
 -                    .getDeclaredField(SERVICE_NAME)
 -                    .get(null);
++                    RESOURCE_ATTRIBUTES_CLASS_NAME,
++                    Thread.currentThread().getContextClassLoader())
++                .getDeclaredField(SERVICE_NAME)
++                .get(null);
+         } catch (Throwable ignored) {
          }
          io.opentelemetry.sdk.trace.SdkTracerProviderBuilder builder =
--                io.opentelemetry.sdk.trace.SdkTracerProvider.builder()
--                        .setSampler(sampler)
--                        
.setResource(io.opentelemetry.sdk.resources.Resource.create(
-                                 io.opentelemetry.api.common.Attributes.of(
-                                         
io.opentelemetry.semconv.resource.attributes.ResourceAttributes.SERVICE_NAME,
-                                         applicationName)));
 -                                
io.opentelemetry.api.common.Attributes.of(serviceNameAttributeKey, 
applicationName)));
++            io.opentelemetry.sdk.trace.SdkTracerProvider.builder()
++                .setSampler(sampler)
++                .setResource(io.opentelemetry.sdk.resources.Resource.create(
++                    
io.opentelemetry.api.common.Attributes.of(serviceNameAttributeKey, 
applicationName)));
          spanProcessors.orderedStream().forEach(builder::addSpanProcessor);
          return builder.build();
      }
@@@ -101,35 -125,35 +125,35 @@@
      @Bean
      @ConditionalOnMissingBean
      io.opentelemetry.context.propagation.ContextPropagators 
otelContextPropagators(
--            
ObjectProvider<io.opentelemetry.context.propagation.TextMapPropagator> 
textMapPropagators) {
++        
ObjectProvider<io.opentelemetry.context.propagation.TextMapPropagator> 
textMapPropagators) {
          return io.opentelemetry.context.propagation.ContextPropagators.create(
--                
io.opentelemetry.context.propagation.TextMapPropagator.composite(
--                        
textMapPropagators.orderedStream().collect(Collectors.toList())));
++            io.opentelemetry.context.propagation.TextMapPropagator.composite(
++                
textMapPropagators.orderedStream().collect(Collectors.toList())));
      }
  
      @Bean
      @ConditionalOnMissingBean
      io.opentelemetry.sdk.trace.samplers.Sampler otelSampler() {
          io.opentelemetry.sdk.trace.samplers.Sampler rootSampler =
--                io.opentelemetry.sdk.trace.samplers.Sampler.traceIdRatioBased(
--                        
this.dubboConfigProperties.getTracing().getSampling().getProbability());
++            io.opentelemetry.sdk.trace.samplers.Sampler.traceIdRatioBased(
++                
this.dubboConfigProperties.getTracing().getSampling().getProbability());
          return 
io.opentelemetry.sdk.trace.samplers.Sampler.parentBased(rootSampler);
      }
  
      @Bean
      @ConditionalOnMissingBean
      io.opentelemetry.sdk.trace.SpanProcessor otelSpanProcessor(
--            ObjectProvider<io.opentelemetry.sdk.trace.export.SpanExporter> 
spanExporters,
--            
ObjectProvider<io.micrometer.tracing.exporter.SpanExportingPredicate> 
spanExportingPredicates,
--            ObjectProvider<io.micrometer.tracing.exporter.SpanReporter> 
spanReporters,
--            ObjectProvider<io.micrometer.tracing.exporter.SpanFilter> 
spanFilters) {
++        ObjectProvider<io.opentelemetry.sdk.trace.export.SpanExporter> 
spanExporters,
++        ObjectProvider<io.micrometer.tracing.exporter.SpanExportingPredicate> 
spanExportingPredicates,
++        ObjectProvider<io.micrometer.tracing.exporter.SpanReporter> 
spanReporters,
++        ObjectProvider<io.micrometer.tracing.exporter.SpanFilter> 
spanFilters) {
          return io.opentelemetry.sdk.trace.export.BatchSpanProcessor.builder(
--                        new 
io.micrometer.tracing.otel.bridge.CompositeSpanExporter(
--                                
spanExporters.orderedStream().collect(Collectors.toList()),
--                                
spanExportingPredicates.orderedStream().collect(Collectors.toList()),
--                                
spanReporters.orderedStream().collect(Collectors.toList()),
--                                
spanFilters.orderedStream().collect(Collectors.toList())))
--                .build();
++                new io.micrometer.tracing.otel.bridge.CompositeSpanExporter(
++                    
spanExporters.orderedStream().collect(Collectors.toList()),
++                    
spanExportingPredicates.orderedStream().collect(Collectors.toList()),
++                    
spanReporters.orderedStream().collect(Collectors.toList()),
++                    spanFilters.orderedStream().collect(Collectors.toList())))
++            .build();
      }
  
      @Bean
@@@ -141,40 -165,40 +165,40 @@@
      @Bean
      @ConditionalOnMissingBean(io.micrometer.tracing.Tracer.class)
      io.micrometer.tracing.otel.bridge.OtelTracer micrometerOtelTracer(
--            io.opentelemetry.api.trace.Tracer tracer,
--            io.micrometer.tracing.otel.bridge.OtelTracer.EventPublisher 
eventPublisher,
--            io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext) {
++        io.opentelemetry.api.trace.Tracer tracer,
++        io.micrometer.tracing.otel.bridge.OtelTracer.EventPublisher 
eventPublisher,
++        io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext) {
          return new io.micrometer.tracing.otel.bridge.OtelTracer(
--                tracer,
++            tracer,
++            otelCurrentTraceContext,
++            eventPublisher,
++            new io.micrometer.tracing.otel.bridge.OtelBaggageManager(
                  otelCurrentTraceContext,
--                eventPublisher,
--                new io.micrometer.tracing.otel.bridge.OtelBaggageManager(
--                        otelCurrentTraceContext,
--                        
this.dubboConfigProperties.getTracing().getBaggage().getRemoteFields(),
--                        Collections.emptyList()));
++                
this.dubboConfigProperties.getTracing().getBaggage().getRemoteFields(),
++                Collections.emptyList()));
      }
  
      @Bean
      @ConditionalOnMissingBean
      io.micrometer.tracing.otel.bridge.OtelPropagator otelPropagator(
--            io.opentelemetry.context.propagation.ContextPropagators 
contextPropagators,
--            io.opentelemetry.api.trace.Tracer tracer) {
++        io.opentelemetry.context.propagation.ContextPropagators 
contextPropagators,
++        io.opentelemetry.api.trace.Tracer tracer) {
          return new 
io.micrometer.tracing.otel.bridge.OtelPropagator(contextPropagators, tracer);
      }
  
      @Bean
      @ConditionalOnMissingBean
      io.micrometer.tracing.otel.bridge.OtelTracer.EventPublisher 
otelTracerEventPublisher(
--            List<io.micrometer.tracing.otel.bridge.EventListener> 
eventListeners) {
++        List<io.micrometer.tracing.otel.bridge.EventListener> eventListeners) 
{
          return new OTelEventPublisher(eventListeners);
      }
  
      @Bean
      @ConditionalOnMissingBean
      io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext(
--            io.micrometer.tracing.otel.bridge.OtelTracer.EventPublisher 
publisher) {
++        io.micrometer.tracing.otel.bridge.OtelTracer.EventPublisher 
publisher) {
          io.opentelemetry.context.ContextStorage.addWrapper(
--                new 
io.micrometer.tracing.otel.bridge.EventPublishingContextWrapper(publisher));
++            new 
io.micrometer.tracing.otel.bridge.EventPublishingContextWrapper(publisher));
          return new 
io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext();
      }
  
@@@ -203,50 -227,50 +227,50 @@@
          @Bean
          @ConditionalOnMissingBean
          @ConditionalOnProperty(
--                prefix = ObservabilityUtils.DUBBO_TRACING_PROPAGATION,
--                name = "type",
--                havingValue = "W3C",
--                matchIfMissing = true)
++            prefix = ObservabilityUtils.DUBBO_TRACING_PROPAGATION,
++            name = "type",
++            havingValue = "W3C",
++            matchIfMissing = true)
          io.opentelemetry.context.propagation.TextMapPropagator 
w3cTextMapPropagatorWithBaggage(
--                io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext) {
++            io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext) {
              List<String> remoteFields =
--                    
this.dubboConfigProperties.getTracing().getBaggage().getRemoteFields();
++                
this.dubboConfigProperties.getTracing().getBaggage().getRemoteFields();
              return 
io.opentelemetry.context.propagation.TextMapPropagator.composite(
--                    
io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator.getInstance(),
--                    
io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator.getInstance(),
--                    new 
io.micrometer.tracing.otel.propagation.BaggageTextMapPropagator(
--                            remoteFields,
--                            new 
io.micrometer.tracing.otel.bridge.OtelBaggageManager(
--                                    otelCurrentTraceContext, remoteFields, 
Collections.emptyList())));
++                
io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator.getInstance(),
++                
io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator.getInstance(),
++                new 
io.micrometer.tracing.otel.propagation.BaggageTextMapPropagator(
++                    remoteFields,
++                    new io.micrometer.tracing.otel.bridge.OtelBaggageManager(
++                        otelCurrentTraceContext, remoteFields, 
Collections.emptyList())));
          }
  
          @Bean
          @ConditionalOnMissingBean
          @ConditionalOnProperty(prefix = 
ObservabilityUtils.DUBBO_TRACING_PROPAGATION, name = "type", havingValue = "B3")
          io.opentelemetry.context.propagation.TextMapPropagator 
b3BaggageTextMapPropagator(
--                io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext) {
++            io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext 
otelCurrentTraceContext) {
              List<String> remoteFields =
--                    
this.dubboConfigProperties.getTracing().getBaggage().getRemoteFields();
++                
this.dubboConfigProperties.getTracing().getBaggage().getRemoteFields();
              return 
io.opentelemetry.context.propagation.TextMapPropagator.composite(
--                    
io.opentelemetry.extension.trace.propagation.B3Propagator.injectingSingleHeader(),
--                    new 
io.micrometer.tracing.otel.propagation.BaggageTextMapPropagator(
--                            remoteFields,
--                            new 
io.micrometer.tracing.otel.bridge.OtelBaggageManager(
--                                    otelCurrentTraceContext, remoteFields, 
Collections.emptyList())));
++                
io.opentelemetry.extension.trace.propagation.B3Propagator.injectingSingleHeader(),
++                new 
io.micrometer.tracing.otel.propagation.BaggageTextMapPropagator(
++                    remoteFields,
++                    new io.micrometer.tracing.otel.bridge.OtelBaggageManager(
++                        otelCurrentTraceContext, remoteFields, 
Collections.emptyList())));
          }
  
          @Bean
          @ConditionalOnMissingBean
          @ConditionalOnProperty(
--                prefix = ObservabilityUtils.DUBBO_TRACING_BAGGAGE_CORRELATION,
--                name = "enabled",
--                matchIfMissing = true)
++            prefix = ObservabilityUtils.DUBBO_TRACING_BAGGAGE_CORRELATION,
++            name = "enabled",
++            matchIfMissing = true)
          io.micrometer.tracing.otel.bridge.Slf4JBaggageEventListener 
otelSlf4JBaggageEventListener() {
              return new 
io.micrometer.tracing.otel.bridge.Slf4JBaggageEventListener(this.dubboConfigProperties
--                    .getTracing()
--                    .getBaggage()
--                    .getCorrelation()
--                    .getFields());
++                .getTracing()
++                .getBaggage()
++                .getCorrelation()
++                .getFields());
          }
      }
  
@@@ -264,10 -288,10 +288,10 @@@
          @Bean
          @ConditionalOnMissingBean
          @ConditionalOnProperty(
--                prefix = ObservabilityUtils.DUBBO_TRACING_PROPAGATION,
--                name = "type",
--                havingValue = "W3C",
--                matchIfMissing = true)
++            prefix = ObservabilityUtils.DUBBO_TRACING_PROPAGATION,
++            name = "type",
++            havingValue = "W3C",
++            matchIfMissing = true)
          io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator 
w3cTextMapPropagatorWithoutBaggage() {
              return 
io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator.getInstance();
          }
diff --cc dubbo-spring-boot/pom.xml
index 2cb2846207,06e68f168f..30cfd6cc63
--- a/dubbo-spring-boot/pom.xml
+++ b/dubbo-spring-boot/pom.xml
@@@ -39,10 -38,12 +39,10 @@@
    </modules>
  
    <properties>
-     <spring-boot.version>2.7.17</spring-boot.version>
+     <spring-boot.version>2.7.18</spring-boot.version>
 -    <dubbo.version>${revision}</dubbo.version>
 -    <!-- Fix the bug of log4j 
refer:https://github.com/apache/logging-log4j2/pull/608 -->
 -    <log4j2_version>2.20.0</log4j2_version>
      <!-- Spring boot buddy is lower than the delivery dependency package 
version and can only show the defined dependency version -->
-     <byte-buddy.version>1.14.9</byte-buddy.version>
+     <byte-buddy.version>1.14.10</byte-buddy.version>
 +    <mockito_version>4.11.0</mockito_version>
    </properties>
  
    <dependencyManagement>

Reply via email to