Skip to content

Commit a3da5b1

Browse files
committed
Remove explicit order, depend on enum ordering instead
1 parent a13f167 commit a3da5b1

File tree

3 files changed

+28
-33
lines changed

3 files changed

+28
-33
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/BraveAutoConfiguration.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.actuate.autoconfigure.tracing;
1818

1919
import java.util.ArrayList;
20+
import java.util.Arrays;
2021
import java.util.Collection;
2122
import java.util.Collections;
2223
import java.util.List;
@@ -176,7 +177,7 @@ static class BraveNoBaggageConfiguration {
176177
Factory propagationFactory(TracingProperties properties) {
177178
List<Factory> injectorFactories = PropagationFactoryFactory
178179
.factoriesFor(properties.getPropagation().getType());
179-
List<Factory> extractorFactories = PropagationFactoryFactory.factoriesFor(PropagationType.orderedValues());
180+
List<Factory> extractorFactories = PropagationFactoryFactory.factoriesFor(PropagationType.values());
180181
return new CompositePropagationFactory(injectorFactories, extractorFactories);
181182
}
182183

@@ -199,7 +200,7 @@ BaggagePropagation.FactoryBuilder propagationFactoryBuilder(
199200
List<Factory> injectorFactories = PropagationFactoryFactory.factoriesFor(BRAVE_BAGGAGE_MANAGER,
200201
this.tracingProperties.getPropagation().getType());
201202
List<Factory> extractorFactories = PropagationFactoryFactory.factoriesFor(BRAVE_BAGGAGE_MANAGER,
202-
PropagationType.orderedValues());
203+
PropagationType.values());
203204
Factory delegate = new CompositePropagationFactory(injectorFactories, extractorFactories);
204205
FactoryBuilder builder = BaggagePropagation.newFactoryBuilder(delegate);
205206
baggagePropagationCustomizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
@@ -309,6 +310,14 @@ private static List<Factory> factoriesFor(BaggageManager baggageManager, Collect
309310
return result;
310311
}
311312

313+
private static List<Factory> factoriesFor(PropagationType[] types) {
314+
return factoriesFor(null, Arrays.stream(types).toList());
315+
}
316+
317+
private static List<Factory> factoriesFor(BaggageManager baggageManager, PropagationType[] types) {
318+
return factoriesFor(baggageManager, Arrays.stream(types).toList());
319+
}
320+
312321
}
313322

314323
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/OpenTelemetryAutoConfiguration.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.actuate.autoconfigure.tracing;
1818

1919
import java.util.ArrayList;
20+
import java.util.Arrays;
2021
import java.util.Collection;
2122
import java.util.Collections;
2223
import java.util.List;
@@ -196,8 +197,7 @@ TextMapPropagator textMapPropagatorWithBaggage(OtelCurrentTraceContext otelCurre
196197
List<TextMapPropagator> injectors = new ArrayList<>(
197198
TextMapPropagatorFactory.forTypes(this.tracingProperties.getPropagation().getType(), true));
198199
injectors.add(baggagePropagator);
199-
List<TextMapPropagator> extractors = TextMapPropagatorFactory.forTypes(PropagationType.orderedValues(),
200-
true);
200+
List<TextMapPropagator> extractors = TextMapPropagatorFactory.forTypes(PropagationType.values(), true);
201201
return new CompositeTextMapPropagator(injectors, extractors, List.of(baggagePropagator));
202202
}
203203

@@ -219,8 +219,7 @@ static class NoBaggageConfiguration {
219219
TextMapPropagator textMapPropagator(TracingProperties properties) {
220220
List<TextMapPropagator> injectors = TextMapPropagatorFactory.forTypes(properties.getPropagation().getType(),
221221
false);
222-
List<TextMapPropagator> extractors = TextMapPropagatorFactory.forTypes(PropagationType.orderedValues(),
223-
false);
222+
List<TextMapPropagator> extractors = TextMapPropagatorFactory.forTypes(PropagationType.values(), false);
224223
return new CompositeTextMapPropagator(injectors, extractors);
225224
}
226225

@@ -296,6 +295,10 @@ private static List<TextMapPropagator> forTypes(Collection<PropagationType> type
296295
return result;
297296
}
298297

298+
private static List<TextMapPropagator> forTypes(PropagationType[] types, boolean baggage) {
299+
return forTypes(Arrays.stream(types).toList(), baggage);
300+
}
301+
299302
}
300303

301304
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/TracingProperties.java

+10-27
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.springframework.boot.actuate.autoconfigure.tracing;
1818

1919
import java.util.ArrayList;
20-
import java.util.Arrays;
21-
import java.util.Comparator;
2220
import java.util.List;
2321

2422
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -180,42 +178,27 @@ public void setType(List<PropagationType> type) {
180178
this.type = type;
181179
}
182180

181+
/**
182+
* Supported propagation types. The declared order of the values matter.
183+
*/
183184
enum PropagationType {
184185

186+
/**
187+
* <a href="https://www.w3.org/TR/trace-context/">W3C propagation.</a>
188+
*/
189+
W3C,
190+
185191
/**
186192
* <a href="https://github.com/openzipkin/b3-propagation#single-header">B3
187193
* single header</a> propagation.
188194
*/
189-
B3(1),
195+
B3,
190196

191197
/**
192198
* <a href="https://github.com/openzipkin/b3-propagation#multiple-headers">B3
193199
* multiple headers</a> propagation.
194200
*/
195-
B3_MULTI(2),
196-
197-
/**
198-
* W3C propagation.
199-
*/
200-
W3C(0);
201-
202-
/**
203-
* Order of the enum value. The {@link #orderedValues()} method returns the
204-
* enum values in ascending order.
205-
*/
206-
private final int order;
207-
208-
PropagationType(int order) {
209-
this.order = order;
210-
}
211-
212-
/**
213-
* Returns the ordered values.
214-
* @return the ordered values
215-
*/
216-
static List<PropagationType> orderedValues() {
217-
return Arrays.stream(values()).sorted(Comparator.comparing((value) -> value.order)).toList();
218-
}
201+
B3_MULTI;
219202

220203
}
221204

0 commit comments

Comments
 (0)