Skip to content

Commit a39e81b

Browse files
authored
Fix AuthSchemes not remaining ordered (#1591)
* Ensure authSchemes retain order * Switch to using a sorted Map for authscheme properties to ensure they always maintain a stable order and not rely on input to be stable
1 parent 81b3e44 commit a39e81b

File tree

1 file changed

+4
-1
lines changed
  • smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language

1 file changed

+4
-1
lines changed

smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/Endpoint.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919

2020
import java.util.Arrays;
2121
import java.util.Collections;
22+
import java.util.Comparator;
2223
import java.util.LinkedHashMap;
2324
import java.util.List;
2425
import java.util.Map;
2526
import java.util.Objects;
27+
import java.util.TreeMap;
2628
import java.util.stream.Collectors;
2729
import software.amazon.smithy.model.FromSourceLocation;
2830
import software.amazon.smithy.model.SourceLocation;
@@ -71,7 +73,8 @@ private Endpoint(Builder builder) {
7173
builder.authSchemes.copy().stream()
7274
.map(
7375
authScheme -> {
74-
Map<Identifier, Literal> base = new LinkedHashMap<>();
76+
Map<Identifier, Literal> base = new TreeMap<>(
77+
Comparator.comparing(Identifier::asString));
7578
base.put(Identifier.of("name"), Literal.of(authScheme.left.asString()));
7679
base.putAll(authScheme.right);
7780
return Literal.record(base);

0 commit comments

Comments
 (0)