diff --git a/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1Protocol.java b/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1Protocol.java index 786b69707..0b465ff51 100644 --- a/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1Protocol.java +++ b/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1Protocol.java @@ -53,9 +53,13 @@ final class AwsRestJson1Protocol extends ServerProtocol { var httpMethodToMatchers = new HashMap>>(); for (Service service : services) { for (var operation : service.getAllOperations()) { + // Only process operations with HTTP trait. var httpTrait = operation.getApiOperation() .schema() - .expectTrait(TraitKey.HTTP_TRAIT); + .getTrait(TraitKey.HTTP_TRAIT); + if (httpTrait == null) { + continue; + } String method = httpTrait.getMethod(); String pattern = httpTrait .getUri() diff --git a/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1ProtocolProvider.java b/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1ProtocolProvider.java index 55da044d1..536dd846c 100644 --- a/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1ProtocolProvider.java +++ b/aws/server/aws-server-restjson/src/main/java/software/amazon/smithy/java/aws/server/restjson/AwsRestJson1ProtocolProvider.java @@ -24,7 +24,7 @@ public ShapeId getProtocolId() { } @Override - public int priority() { + public int precision() { return 0; } } diff --git a/core/src/main/java/software/amazon/smithy/java/core/schema/Schema.java b/core/src/main/java/software/amazon/smithy/java/core/schema/Schema.java index e09aead78..f52af6228 100644 --- a/core/src/main/java/software/amazon/smithy/java/core/schema/Schema.java +++ b/core/src/main/java/software/amazon/smithy/java/core/schema/Schema.java @@ -387,7 +387,7 @@ public final boolean hasTrait(TraitKey trait) { public final T expectTrait(TraitKey trait) { var t = getTrait(trait); if (t == null) { - throw new NoSuchElementException("Expected trait not found: " + trait.getClass().getName()); + throw new NoSuchElementException("Expected trait not found: " + trait.traitClass().getName()); } return t; } diff --git a/protocol-test-harness/src/main/java/software/amazon/smithy/java/protocoltests/harness/ProtocolTestProtocolProvider.java b/protocol-test-harness/src/main/java/software/amazon/smithy/java/protocoltests/harness/ProtocolTestProtocolProvider.java index 195d23de1..6f4721500 100644 --- a/protocol-test-harness/src/main/java/software/amazon/smithy/java/protocoltests/harness/ProtocolTestProtocolProvider.java +++ b/protocol-test-harness/src/main/java/software/amazon/smithy/java/protocoltests/harness/ProtocolTestProtocolProvider.java @@ -35,7 +35,7 @@ public ShapeId getProtocolId() { } @Override - public int priority() { + public int precision() { return Integer.MAX_VALUE; } diff --git a/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ProtocolResolver.java b/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ProtocolResolver.java index 5866057fa..80a18ea9b 100644 --- a/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ProtocolResolver.java +++ b/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ProtocolResolver.java @@ -26,7 +26,7 @@ public final class ProtocolResolver { public ProtocolResolver(ServiceMatcher serviceMatcher) { serverProtocolHandlers = SERVER_PROTOCOL_HANDLERS.values() .stream() - .sorted(Comparator.comparing(ServerProtocolProvider::priority).reversed()) + .sorted(Comparator.comparing(ServerProtocolProvider::precision)) .map(p -> p.provideProtocolHandler(serviceMatcher.getAllServices())) .toList(); this.serviceMatcher = serviceMatcher; diff --git a/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ServerProtocolProvider.java b/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ServerProtocolProvider.java index dc8e59450..6924a836b 100644 --- a/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ServerProtocolProvider.java +++ b/server/server-core/src/main/java/software/amazon/smithy/java/server/core/ServerProtocolProvider.java @@ -15,5 +15,5 @@ public interface ServerProtocolProvider { ShapeId getProtocolId(); - int priority(); + int precision(); } diff --git a/server/server-rpcv2-cbor/src/main/java/software/amazon/smithy/java/server/rpcv2/RpcV2CborProtocolProvider.java b/server/server-rpcv2-cbor/src/main/java/software/amazon/smithy/java/server/rpcv2/RpcV2CborProtocolProvider.java index 8045479fa..3c1d1192c 100644 --- a/server/server-rpcv2-cbor/src/main/java/software/amazon/smithy/java/server/rpcv2/RpcV2CborProtocolProvider.java +++ b/server/server-rpcv2-cbor/src/main/java/software/amazon/smithy/java/server/rpcv2/RpcV2CborProtocolProvider.java @@ -24,7 +24,7 @@ public ShapeId getProtocolId() { } @Override - public int priority() { - return 1; + public int precision() { + return 0; } }