Skip to content

Commit

Permalink
Add missing ThreadSafe and Immutable annotations (#5021)
Browse files Browse the repository at this point in the history
  • Loading branch information
zoewangg committed Mar 18, 2024
1 parent 7785e38 commit 09a12bf
Show file tree
Hide file tree
Showing 9 changed files with 39 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.lang.model.element.Modifier;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.codegen.docs.WaiterDocs;
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
Expand Down Expand Up @@ -57,6 +59,8 @@ public BaseWaiterInterfaceSpec(IntermediateModel model) {
public TypeSpec poetSpec() {
TypeSpec.Builder result = PoetUtils.createInterfaceBuilder(className());
result.addAnnotation(SdkPublicApi.class);
result.addAnnotation(ThreadSafe.class);
result.addAnnotation(Immutable.class);
result.addMethods(waiterOperations());
result.addSuperinterface(SdkAutoCloseable.class);
result.addMethod(MethodSpec.methodBuilder("builder")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
import software.amazon.awssdk.core.waiters.WaiterResponse;
import software.amazon.awssdk.services.query.QueryAsyncClient;
Expand All @@ -18,6 +20,8 @@
*/
@Generated("software.amazon.awssdk:codegen")
@SdkPublicApi
@ThreadSafe
@Immutable
public interface QueryAsyncWaiter extends SdkAutoCloseable {
/**
* Polls {@link QueryAsyncClient#aPostOperation} API until the desired condition {@code PostOperationSuccess} is
Expand All @@ -30,7 +34,7 @@ public interface QueryAsyncWaiter extends SdkAutoCloseable {
* desired state.
*/
default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostOperationSuccess(
APostOperationRequest aPostOperationRequest) {
APostOperationRequest aPostOperationRequest) {
throw new UnsupportedOperationException();
}

Expand All @@ -47,7 +51,7 @@ default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostO
* with the waiter success condition
*/
default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostOperationSuccess(
Consumer<APostOperationRequest.Builder> aPostOperationRequest) {
Consumer<APostOperationRequest.Builder> aPostOperationRequest) {
return waitUntilPostOperationSuccess(APostOperationRequest.builder().applyMutation(aPostOperationRequest).build());
}

Expand All @@ -63,7 +67,7 @@ default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostO
* condition
*/
default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostOperationSuccess(
APostOperationRequest aPostOperationRequest, WaiterOverrideConfiguration overrideConfig) {
APostOperationRequest aPostOperationRequest, WaiterOverrideConfiguration overrideConfig) {
throw new UnsupportedOperationException();
}

Expand All @@ -82,10 +86,10 @@ default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostO
* condition
*/
default CompletableFuture<WaiterResponse<APostOperationResponse>> waitUntilPostOperationSuccess(
Consumer<APostOperationRequest.Builder> aPostOperationRequest,
Consumer<WaiterOverrideConfiguration.Builder> overrideConfig) {
Consumer<APostOperationRequest.Builder> aPostOperationRequest,
Consumer<WaiterOverrideConfiguration.Builder> overrideConfig) {
return waitUntilPostOperationSuccess(APostOperationRequest.builder().applyMutation(aPostOperationRequest).build(),
WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build());
WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
import software.amazon.awssdk.core.waiters.WaiterResponse;
import software.amazon.awssdk.services.query.QueryClient;
Expand All @@ -16,6 +18,8 @@
*/
@Generated("software.amazon.awssdk:codegen")
@SdkPublicApi
@ThreadSafe
@Immutable
public interface QueryWaiter extends SdkAutoCloseable {
/**
* Polls {@link QueryClient#aPostOperation} API until the desired condition {@code PostOperationSuccess} is met, or
Expand Down Expand Up @@ -43,7 +47,7 @@ default WaiterResponse<APostOperationResponse> waitUntilPostOperationSuccess(APo
* condition
*/
default WaiterResponse<APostOperationResponse> waitUntilPostOperationSuccess(
Consumer<APostOperationRequest.Builder> aPostOperationRequest) {
Consumer<APostOperationRequest.Builder> aPostOperationRequest) {
return waitUntilPostOperationSuccess(APostOperationRequest.builder().applyMutation(aPostOperationRequest).build());
}

Expand All @@ -59,7 +63,7 @@ default WaiterResponse<APostOperationResponse> waitUntilPostOperationSuccess(
* condition
*/
default WaiterResponse<APostOperationResponse> waitUntilPostOperationSuccess(APostOperationRequest aPostOperationRequest,
WaiterOverrideConfiguration overrideConfig) {
WaiterOverrideConfiguration overrideConfig) {
throw new UnsupportedOperationException();
}

Expand All @@ -78,10 +82,10 @@ default WaiterResponse<APostOperationResponse> waitUntilPostOperationSuccess(APo
* condition
*/
default WaiterResponse<APostOperationResponse> waitUntilPostOperationSuccess(
Consumer<APostOperationRequest.Builder> aPostOperationRequest,
Consumer<WaiterOverrideConfiguration.Builder> overrideConfig) {
Consumer<APostOperationRequest.Builder> aPostOperationRequest,
Consumer<WaiterOverrideConfiguration.Builder> overrideConfig) {
return waitUntilPostOperationSuccess(APostOperationRequest.builder().applyMutation(aPostOperationRequest).build(),
WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build());
WaiterOverrideConfiguration.builder().applyMutation(overrideConfig).build());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
import software.amazon.awssdk.imds.internal.DefaultEc2MetadataAsyncClient;
Expand Down Expand Up @@ -56,6 +58,8 @@
* <br/>Note: A single client instance should be reused for multiple requests when possible.
*/
@SdkPublicApi
@ThreadSafe
@Immutable
public interface Ec2MetadataAsyncClient extends SdkAutoCloseable {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@

package software.amazon.awssdk.imds;

import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.imds.internal.DefaultEc2MetadataClient;
Expand Down Expand Up @@ -54,6 +56,8 @@
* <br/>Note: A single client instance should be reused for multiple requests when possible.
*/
@SdkPublicApi
@ThreadSafe
@Immutable
public interface Ec2MetadataClient extends SdkAutoCloseable {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.NotThreadSafe;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
Expand Down Expand Up @@ -45,6 +46,7 @@
*/
@SdkPublicApi
@ThreadSafe
@Immutable
public interface DynamoDbEnhancedAsyncClient extends DynamoDbEnhancedResource {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import java.util.List;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.NotThreadSafe;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
Expand Down Expand Up @@ -45,6 +46,7 @@
*/
@SdkPublicApi
@ThreadSafe
@Immutable
public interface DynamoDbEnhancedClient extends DynamoDbEnhancedResource {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import java.util.Collection;
import java.util.List;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.policybuilder.iam.internal.DefaultIamPolicy;
Expand Down Expand Up @@ -99,6 +100,7 @@
*/
@SdkPublicApi
@ThreadSafe
@Immutable
public interface IamPolicy extends ToCopyableBuilder<IamPolicy.Builder, IamPolicy> {
/**
* Create an {@code IamPolicy} from an IAM policy in JSON form.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import software.amazon.awssdk.annotations.Immutable;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.awscore.AwsExecutionAttribute;
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
Expand Down Expand Up @@ -98,6 +99,7 @@
*/
@Immutable
@SdkPublicApi
@ThreadSafe
public final class S3Utilities {
private static final String SERVICE_NAME = "s3";
private static final Pattern ENDPOINT_PATTERN = Pattern.compile("^(.+\\.)?s3[.-]([a-z0-9-]+)\\.");
Expand Down

0 comments on commit 09a12bf

Please sign in to comment.