Skip to content

Commit a92d372

Browse files
committed
Merge branch 'feature/master/pre-signed-url-getobject' of github.com:aws/aws-sdk-java-v2 into feature/master/pre-signed-url-getobject
2 parents 1d475dc + cf3cd0a commit a92d372

File tree

39 files changed

+1625
-405
lines changed

39 files changed

+1625
-405
lines changed

codegen/src/main/java/software/amazon/awssdk/codegen/AddMetadata.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public static Metadata constructMetadata(ServiceModel serviceModel,
6262
.withDocumentation(serviceModel.getDocumentation())
6363
.withServiceAbbreviation(serviceMetadata.getServiceAbbreviation())
6464
.withBatchmanagerPackageName(namingStrategy.getBatchManagerPackageName(serviceName))
65+
.withPresignedUrlPackageName(namingStrategy.getPresignedUrlPackageName(serviceName))
6566
.withServiceFullName(serviceMetadata.getServiceFullName())
6667
.withServiceName(serviceName)
6768
.withSyncClient(String.format(Constant.SYNC_CLIENT_CLASS_NAME_PATTERN, serviceName))

codegen/src/main/java/software/amazon/awssdk/codegen/internal/Constant.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ public final class Constant {
7878

7979
public static final String PACKAGE_NAME_BATCHMANAGER_PATTERN = "%s.batchmanager";
8080

81+
public static final String PACKAGE_NAME_PRESIGNEDURL_PATTERN = "%s.presignedurl";
82+
8183
public static final String PACKAGE_NAME_CUSTOM_AUTH_PATTERN = "%s.auth";
8284

8385
public static final String AUTH_POLICY_ENUM_CLASS_DIR = "software/amazon/awssdk/auth/policy/actions";

codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,11 @@ public class CustomizationConfig {
345345
*/
346346
private boolean batchManagerSupported;
347347

348+
/**
349+
* A boolean flag to indicate if Presigned URL Extension is supported.
350+
*/
351+
private boolean presignedUrlExtensionSupported;
352+
348353
/**
349354
* A boolean flag to indicate if the fast unmarshaller code path is enabled.
350355
*/
@@ -929,6 +934,14 @@ public void setBatchManagerSupported(boolean batchManagerSupported) {
929934
this.batchManagerSupported = batchManagerSupported;
930935
}
931936

937+
public boolean getPresignedUrlExtensionSupported() {
938+
return presignedUrlExtensionSupported;
939+
}
940+
941+
public void setPresignedUrlExtensionSupported(boolean presignedUrlExtensionSupported) {
942+
this.presignedUrlExtensionSupported = presignedUrlExtensionSupported;
943+
}
944+
932945
public boolean getEnableFastUnmarshaller() {
933946
return enableFastUnmarshaller;
934947
}

codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/Metadata.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public class Metadata {
7373

7474
private String batchManagerPackageName;
7575

76+
private String presignedUrlPackageName;
77+
7678
private String endpointRulesPackageName;
7779

7880
private String authSchemePackageName;
@@ -815,4 +817,20 @@ public String getFullBatchManagerPackageName() {
815817
return joinPackageNames(rootPackageName, getBatchManagerPackageName());
816818
}
817819

820+
public Metadata withPresignedUrlPackageName(String presignedUrlPackageName) {
821+
setPresignedUrlPackageName(presignedUrlPackageName);
822+
return this;
823+
}
824+
825+
public String getPresignedUrlPackageName() {
826+
return presignedUrlPackageName;
827+
}
828+
829+
public void setPresignedUrlPackageName(String presignedUrlPackageName) {
830+
this.presignedUrlPackageName = presignedUrlPackageName;
831+
}
832+
833+
public String getFullPresignedUrlPackageName() {
834+
return joinPackageNames(rootPackageName, getPresignedUrlPackageName());
835+
}
818836
}

codegen/src/main/java/software/amazon/awssdk/codegen/naming/DefaultNamingStrategy.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,11 @@ public String getJmesPathPackageName(String serviceName) {
219219
public String getBatchManagerPackageName(String serviceName) {
220220
return getCustomizedPackageName(concatServiceNameIfShareModel(serviceName), Constant.PACKAGE_NAME_BATCHMANAGER_PATTERN);
221221
}
222+
223+
@Override
224+
public String getPresignedUrlPackageName(String serviceName) {
225+
return getCustomizedPackageName(concatServiceNameIfShareModel(serviceName), Constant.PACKAGE_NAME_PRESIGNEDURL_PATTERN);
226+
}
222227

223228
@Override
224229
public String getSmokeTestPackageName(String serviceName) {

codegen/src/main/java/software/amazon/awssdk/codegen/naming/NamingStrategy.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ public interface NamingStrategy {
9393
* Retrieve the batchManager package name that should be used based on the service name.
9494
*/
9595
String getBatchManagerPackageName(String serviceName);
96+
97+
/**
98+
* Retrieve the presignedUrl package name that should be used based on the service name.
99+
*/
100+
String getPresignedUrlPackageName(String serviceName);
96101

97102
/**
98103
* Retrieve the smote test package name that should be used based on the service name.

codegen/src/main/java/software/amazon/awssdk/codegen/poet/PoetExtension.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,8 @@ public ClassName getBatchManagerAsyncInterface() {
209209
return ClassName.get(model.getMetadata().getFullBatchManagerPackageName(),
210210
model.getMetadata().getServiceName() + "AsyncBatchManager");
211211
}
212+
213+
public ClassName getPresignedUrlExtensionAsyncInterface() {
214+
return ClassName.get(model.getMetadata().getFullPresignedUrlPackageName(), "AsyncPresignedUrlExtension");
215+
}
212216
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,26 @@ protected void addBatchManagerMethod(Builder type) {
558558

559559
type.addMethod(batchManager);
560560
}
561+
562+
@Override
563+
protected void addPresignedUrlExtensionMethod(Builder type) {
564+
ClassName returnType = poetExtensions.getPresignedUrlExtensionAsyncInterface();
565+
String internalPresignedUrlPackage = model.getMetadata().getFullInternalPackageName() + ".presignedurl";
566+
ClassName implClass = ClassName.get(internalPresignedUrlPackage, "DefaultAsyncPresignedUrlExtension");
567+
568+
MethodSpec presignedUrlExtension = MethodSpec.methodBuilder("presignedUrlExtension")
569+
.addModifiers(PUBLIC)
570+
.addAnnotation(Override.class)
571+
.returns(returnType)
572+
.addStatement("return new $T(clientHandler,"
573+
+ " protocolFactory, "
574+
+ "clientConfiguration,"
575+
+ " protocolMetadata)",
576+
implClass)
577+
.build();
578+
579+
type.addMethod(presignedUrlExtension);
580+
}
561581

562582
private MethodSpec resolveMetricPublishersMethod() {
563583
String clientConfigName = "clientConfiguration";

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientInterface.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ public TypeSpec poetSpec() {
9999
if (model.getCustomizationConfig().getBatchManagerSupported()) {
100100
addBatchManagerMethod(result);
101101
}
102+
if (model.getCustomizationConfig().getPresignedUrlExtensionSupported()) {
103+
addPresignedUrlExtensionMethod(result);
104+
}
102105
result.addMethod(serviceClientConfigMethod());
103106
addAdditionalMethods(result);
104107
addCloseMethod(result);
@@ -174,6 +177,16 @@ protected void addBatchManagerMethod(TypeSpec.Builder type) {
174177
+ "configuration set on this client.", returnType);
175178
type.addMethod(batchManagerOperationBody(builder).build());
176179
}
180+
181+
protected void addPresignedUrlExtensionMethod(TypeSpec.Builder type) {
182+
ClassName returnType = poetExtensions.getPresignedUrlExtensionAsyncInterface();
183+
MethodSpec.Builder builder = MethodSpec.methodBuilder("presignedUrlExtension")
184+
.addModifiers(PUBLIC)
185+
.returns(returnType)
186+
.addJavadoc("Creates an instance of {@link $T} object with the "
187+
+ "configuration set on this client.", returnType);
188+
type.addMethod(presignedUrlExtensionOperationBody(builder).build());
189+
}
177190

178191
@Override
179192
public ClassName className() {
@@ -550,5 +563,10 @@ protected MethodSpec.Builder batchManagerOperationBody(MethodSpec.Builder builde
550563
return builder.addModifiers(DEFAULT, PUBLIC)
551564
.addStatement("throw new $T()", UnsupportedOperationException.class);
552565
}
566+
567+
protected MethodSpec.Builder presignedUrlExtensionOperationBody(MethodSpec.Builder builder) {
568+
return builder.addModifiers(DEFAULT, PUBLIC)
569+
.addStatement("throw new $T()", UnsupportedOperationException.class);
570+
}
553571

554572
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/DelegatingAsyncClientClass.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,4 +222,9 @@ protected MethodSpec.Builder waiterOperationBody(MethodSpec.Builder builder) {
222222
protected MethodSpec.Builder batchManagerOperationBody(MethodSpec.Builder builder) {
223223
return builder.addAnnotation(Override.class).addStatement("return delegate.batchManager()");
224224
}
225+
226+
@Override
227+
protected MethodSpec.Builder presignedUrlExtensionOperationBody(MethodSpec.Builder builder) {
228+
return builder.addAnnotation(Override.class).addStatement("return delegate.presignedUrlExtension()");
229+
}
225230
}

0 commit comments

Comments
 (0)