Skip to content

Commit 2274c61

Browse files
committed
Revert "Merge pull request #1602 from aws/millem/global-service-error-improvements"
This reverts commit e748cb4, reversing changes made to dff6955.
1 parent e748cb4 commit 2274c61

File tree

22 files changed

+142
-546
lines changed

22 files changed

+142
-546
lines changed

.changes/next-release/feature-AWSSDKforJavav2-2d730bf.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changes/next-release/feature-AWSSDKforJavav2-f60cd7d.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

codegen-lite-maven-plugin/src/main/java/software/amazon/awssdk/codegen/lite/maven/plugin/RegionGenerationMojo.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,11 @@ public void generateServiceMetadata(Path baseSourcesDirectory, Partitions partit
9494
Set<String> services = new HashSet<>();
9595
partitions.getPartitions().forEach(p -> services.addAll(p.getServices().keySet()));
9696

97-
services.forEach(s -> new CodeGenerator(sourcesDirectory.toString(), new ServiceMetadataGenerator(partitions,
97+
services.stream()
98+
// Use hardcoded file for elasticache until the incorrect fips endpoint is fixed
99+
//TODO Remove once elasticache endpoints are fixed at source
100+
.filter(s -> !"elasticache".equals(s))
101+
.forEach(s -> new CodeGenerator(sourcesDirectory.toString(), new ServiceMetadataGenerator(partitions,
98102
s,
99103
SERVICE_METADATA_BASE,
100104
REGION_BASE))

codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/ServiceMetadataGenerator.java

Lines changed: 8 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,16 @@
5050
public class ServiceMetadataGenerator implements PoetClass {
5151

5252
private final Partitions partitions;
53-
private final String serviceEndpointPrefix;
53+
private final String service;
5454
private final String basePackage;
5555
private final String regionBasePackage;
5656

5757
public ServiceMetadataGenerator(Partitions partitions,
58-
String serviceEndpointPrefix,
58+
String service,
5959
String basePackage,
6060
String regionBasePackage) {
6161
this.partitions = partitions;
62-
this.serviceEndpointPrefix = serviceEndpointPrefix;
62+
this.service = service;
6363
this.basePackage = basePackage;
6464
this.regionBasePackage = regionBasePackage;
6565
}
@@ -68,8 +68,6 @@ public ServiceMetadataGenerator(Partitions partitions,
6868
public TypeSpec poetClass() {
6969
TypeName listOfRegions = ParameterizedTypeName.get(ClassName.get(List.class), ClassName.get(regionBasePackage, "Region"));
7070
TypeName mapOfStringString = ParameterizedTypeName.get(Map.class, String.class, String.class);
71-
TypeName listOfServicePartitionMetadata =
72-
ParameterizedTypeName.get(ClassName.get(List.class), ClassName.get(regionBasePackage, "ServicePartitionMetadata"));
7371

7472
return TypeSpec.classBuilder(className())
7573
.addModifiers(Modifier.PUBLIC)
@@ -81,7 +79,7 @@ public TypeSpec poetClass() {
8179
.addSuperinterface(ClassName.get(regionBasePackage, "ServiceMetadata"))
8280
.addField(FieldSpec.builder(String.class, "ENDPOINT_PREFIX")
8381
.addModifiers(PRIVATE, FINAL, STATIC)
84-
.initializer("$S", serviceEndpointPrefix)
82+
.initializer("$S", service)
8583
.build())
8684
.addField(FieldSpec.builder(mapOfStringString, "PARTITION_OVERRIDDEN_ENDPOINTS")
8785
.addModifiers(PRIVATE, FINAL, STATIC)
@@ -99,20 +97,15 @@ public TypeSpec poetClass() {
9997
.addModifiers(PRIVATE, FINAL, STATIC)
10098
.initializer(signingRegionOverrides(partitions))
10199
.build())
102-
.addField(FieldSpec.builder(listOfServicePartitionMetadata, "PARTITIONS")
103-
.addModifiers(PRIVATE, FINAL, STATIC)
104-
.initializer(servicePartitions(partitions))
105-
.build())
106100
.addMethod(regions())
107101
.addMethod(endpointFor())
108102
.addMethod(signingRegion())
109-
.addMethod(partitions(listOfServicePartitionMetadata))
110103
.build();
111104
}
112105

113106
@Override
114107
public ClassName className() {
115-
String sanitizedServiceName = serviceEndpointPrefix.replace(".", "-");
108+
String sanitizedServiceName = service.replace(".", "-");
116109
return ClassName.get(basePackage, Stream.of(sanitizedServiceName.split("-"))
117110
.map(Utils::capitalize)
118111
.collect(Collectors.joining()) + "ServiceMetadata");
@@ -157,8 +150,8 @@ private CodeBlock regionsField(Partitions partitions) {
157150

158151
partitions.getPartitions()
159152
.stream()
160-
.filter(p -> p.getServices().containsKey(serviceEndpointPrefix))
161-
.forEach(p -> regions.addAll(p.getServices().get(serviceEndpointPrefix).getEndpoints().keySet()
153+
.filter(p -> p.getServices().containsKey(service))
154+
.forEach(p -> regions.addAll(p.getServices().get(service).getEndpoints().keySet()
162155
.stream()
163156
.filter(r -> RegionValidationUtil.validRegion(r, p.getRegionRegex()))
164157
.collect(Collectors.toList())));
@@ -192,39 +185,6 @@ private CodeBlock signingRegionOverrides(Partitions partitions) {
192185
return builder.add(".build()").build();
193186
}
194187

195-
private CodeBlock servicePartitions(Partitions partitions) {
196-
return CodeBlock.builder()
197-
.add("$T.unmodifiableList($T.asList(", Collections.class, Arrays.class)
198-
.add(commaSeparatedServicePartitions(partitions))
199-
.add("))")
200-
.build();
201-
}
202-
203-
private CodeBlock commaSeparatedServicePartitions(Partitions partitions) {
204-
ClassName defaultServicePartitionMetadata = ClassName.get(regionBasePackage + ".internal",
205-
"DefaultServicePartitionMetadata");
206-
return partitions.getPartitions()
207-
.stream()
208-
.filter(p -> p.getServices().containsKey(serviceEndpointPrefix))
209-
.map(p -> CodeBlock.of("new $T($S, $L)",
210-
defaultServicePartitionMetadata,
211-
p.getPartition(),
212-
globalRegion(p)))
213-
.collect(CodeBlock.joining(","));
214-
}
215-
216-
private CodeBlock globalRegion(Partition partition) {
217-
ClassName region = ClassName.get(regionBasePackage, "Region");
218-
Service service = partition.getServices().get(this.serviceEndpointPrefix);
219-
boolean hasGlobalRegionForPartition = service.isRegionalized() != null &&
220-
!service.isRegionalized() &&
221-
service.isPartitionWideEndpointAvailable();
222-
String globalRegionForPartition = hasGlobalRegionForPartition ? service.getPartitionEndpoint() : null;
223-
return globalRegionForPartition == null
224-
? CodeBlock.of("null")
225-
: CodeBlock.of("$T.of($S)", region, globalRegionForPartition);
226-
}
227-
228188
private MethodSpec regions() {
229189
TypeName listOfRegions = ParameterizedTypeName.get(ClassName.get(List.class),
230190
ClassName.get(regionBasePackage, "Region"));
@@ -259,23 +219,14 @@ private MethodSpec signingRegion() {
259219
.build();
260220
}
261221

262-
private MethodSpec partitions(TypeName listOfServicePartitionMetadata) {
263-
return MethodSpec.methodBuilder("servicePartitions")
264-
.addModifiers(Modifier.PUBLIC)
265-
.addAnnotation(Override.class)
266-
.returns(listOfServicePartitionMetadata)
267-
.addStatement("return $L", "PARTITIONS")
268-
.build();
269-
}
270-
271222
private Map<Partition, Service> getServiceData(Partitions partitions) {
272223
Map<Partition, Service> serviceData = new TreeMap<>(Comparator.comparing(Partition::getPartition));
273224

274225
partitions.getPartitions()
275226
.forEach(p -> p.getServices()
276227
.entrySet()
277228
.stream()
278-
.filter(s -> s.getKey().equalsIgnoreCase(serviceEndpointPrefix))
229+
.filter(s -> s.getKey().equalsIgnoreCase(service))
279230
.forEach(s -> serviceData.put(p, s.getValue())));
280231

281232
return serviceData;

codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/model/Service.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public final class Service {
4545
/**
4646
* Returns true if the service is regionalized.
4747
*/
48-
private Boolean isRegionalized;
48+
private boolean isRegionalized;
4949

5050
public Service() {}
5151

@@ -99,15 +99,15 @@ public void setPartitionEndpoint(String partitionEndpoint) {
9999
/**
100100
* returns true if the service is regionalized.
101101
*/
102-
public Boolean isRegionalized() {
102+
public boolean isRegionalized() {
103103
return isRegionalized;
104104
}
105105

106106
/**
107107
* sets the regionalized property for a service..
108108
*/
109109
@JsonProperty(value = "isRegionalized")
110-
public void setIsRegionalized(Boolean regionalized) {
110+
public void setIsRegionalized(boolean regionalized) {
111111
isRegionalized = regionalized;
112112
}
113113

codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/regions/s3-service-metadata.java

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import software.amazon.awssdk.annotations.SdkPublicApi;
1010
import software.amazon.awssdk.regions.Region;
1111
import software.amazon.awssdk.regions.ServiceMetadata;
12-
import software.amazon.awssdk.regions.ServicePartitionMetadata;
13-
import software.amazon.awssdk.regions.internal.DefaultServicePartitionMetadata;
1412
import software.amazon.awssdk.utils.ImmutableMap;
1513

1614
@Generated("software.amazon.awssdk:codegen")
@@ -21,26 +19,22 @@ public final class S3ServiceMetadata implements ServiceMetadata {
2119
private static final Map<String, String> PARTITION_OVERRIDDEN_ENDPOINTS = ImmutableMap.<String, String> builder().build();
2220

2321
private static final Map<String, String> REGION_OVERRIDDEN_ENDPOINTS = ImmutableMap.<String, String> builder()
24-
.put("ap-northeast-1", "s3.ap-northeast-1.amazonaws.com").put("ap-southeast-1", "s3.ap-southeast-1.amazonaws.com")
25-
.put("ap-southeast-2", "s3.ap-southeast-2.amazonaws.com").put("eu-west-1", "s3.eu-west-1.amazonaws.com")
26-
.put("sa-east-1", "s3.sa-east-1.amazonaws.com").put("us-east-1", "s3.amazonaws.com")
27-
.put("us-west-1", "s3.us-west-1.amazonaws.com").put("us-west-2", "s3.us-west-2.amazonaws.com")
28-
.put("fips-us-gov-west-1", "s3-fips-us-gov-west-1.amazonaws.com")
29-
.put("us-gov-west-1", "s3.us-gov-west-1.amazonaws.com").build();
22+
.put("ap-northeast-1", "s3.ap-northeast-1.amazonaws.com").put("ap-southeast-1", "s3.ap-southeast-1.amazonaws.com")
23+
.put("ap-southeast-2", "s3.ap-southeast-2.amazonaws.com").put("eu-west-1", "s3.eu-west-1.amazonaws.com")
24+
.put("sa-east-1", "s3.sa-east-1.amazonaws.com").put("us-east-1", "s3.amazonaws.com")
25+
.put("us-west-1", "s3.us-west-1.amazonaws.com").put("us-west-2", "s3.us-west-2.amazonaws.com")
26+
.put("fips-us-gov-west-1", "s3-fips-us-gov-west-1.amazonaws.com")
27+
.put("us-gov-west-1", "s3.us-gov-west-1.amazonaws.com").build();
3028

3129
private static final List<Region> REGIONS = Collections.unmodifiableList(Arrays.asList(Region.of("ap-northeast-1"),
32-
Region.of("ap-northeast-2"), Region.of("ap-northeast-3"), Region.of("ap-south-1"), Region.of("ap-southeast-1"),
33-
Region.of("ap-southeast-2"), Region.of("ca-central-1"), Region.of("eu-central-1"), Region.of("eu-west-1"),
34-
Region.of("eu-west-2"), Region.of("eu-west-3"), Region.of("sa-east-1"), Region.of("us-east-1"),
35-
Region.of("us-east-2"), Region.of("us-west-1"), Region.of("us-west-2"), Region.of("cn-north-1"),
36-
Region.of("cn-northwest-1"), Region.of("fips-us-gov-west-1"), Region.of("us-gov-west-1")));
30+
Region.of("ap-northeast-2"), Region.of("ap-northeast-3"), Region.of("ap-south-1"), Region.of("ap-southeast-1"),
31+
Region.of("ap-southeast-2"), Region.of("ca-central-1"), Region.of("eu-central-1"), Region.of("eu-west-1"),
32+
Region.of("eu-west-2"), Region.of("eu-west-3"), Region.of("sa-east-1"), Region.of("us-east-1"),
33+
Region.of("us-east-2"), Region.of("us-west-1"), Region.of("us-west-2"), Region.of("cn-north-1"),
34+
Region.of("cn-northwest-1"), Region.of("fips-us-gov-west-1"), Region.of("us-gov-west-1")));
3735

3836
private static final Map<String, String> SIGNING_REGION_OVERRIDES = ImmutableMap.<String, String> builder()
39-
.put("fips-us-gov-west-1", "us-gov-west-1").build();
40-
41-
private static final List<ServicePartitionMetadata> PARTITIONS = Collections.unmodifiableList(Arrays.asList(
42-
new DefaultServicePartitionMetadata("aws", null), new DefaultServicePartitionMetadata("aws-cn", null),
43-
new DefaultServicePartitionMetadata("aws-us-gov", null)));
37+
.put("fips-us-gov-west-1", "us-gov-west-1").build();
4438

4539
@Override
4640
public List<Region> regions() {
@@ -50,16 +44,11 @@ public List<Region> regions() {
5044
@Override
5145
public URI endpointFor(Region region) {
5246
return URI.create(REGION_OVERRIDDEN_ENDPOINTS.containsKey(region.id()) ? REGION_OVERRIDDEN_ENDPOINTS.get(region.id())
53-
: computeEndpoint(ENDPOINT_PREFIX, PARTITION_OVERRIDDEN_ENDPOINTS, region));
47+
: computeEndpoint(ENDPOINT_PREFIX, PARTITION_OVERRIDDEN_ENDPOINTS, region));
5448
}
5549

5650
@Override
5751
public Region signingRegion(Region region) {
5852
return Region.of(SIGNING_REGION_OVERRIDES.getOrDefault(region.id(), region.id()));
5953
}
60-
61-
@Override
62-
public List<ServicePartitionMetadata> servicePartitions() {
63-
return PARTITIONS;
64-
}
6554
}

codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/regions/sts-service-metadata.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
/*
2+
* Copyright 2010-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
116
package software.amazon.awssdk.regions.servicemetadata;
217

318
import java.net.URI;
@@ -9,8 +24,6 @@
924
import software.amazon.awssdk.annotations.SdkPublicApi;
1025
import software.amazon.awssdk.regions.Region;
1126
import software.amazon.awssdk.regions.ServiceMetadata;
12-
import software.amazon.awssdk.regions.ServicePartitionMetadata;
13-
import software.amazon.awssdk.regions.internal.DefaultServicePartitionMetadata;
1427
import software.amazon.awssdk.utils.ImmutableMap;
1528

1629
@Generated("software.amazon.awssdk:codegen")
@@ -38,10 +51,6 @@ public final class StsServiceMetadata implements ServiceMetadata {
3851
.put("ap-northeast-2", "ap-northeast-2").put("us-east-1-fips", "us-east-1").put("us-east-2-fips", "us-east-2")
3952
.put("us-west-1-fips", "us-west-1").put("us-west-2-fips", "us-west-2").build();
4053

41-
private static final List<ServicePartitionMetadata> PARTITIONS = Collections.unmodifiableList(Arrays.asList(
42-
new DefaultServicePartitionMetadata("aws", null), new DefaultServicePartitionMetadata("aws-cn", null),
43-
new DefaultServicePartitionMetadata("aws-us-gov", null)));
44-
4554
@Override
4655
public List<Region> regions() {
4756
return REGIONS;
@@ -57,9 +66,4 @@ public URI endpointFor(Region region) {
5766
public Region signingRegion(Region region) {
5867
return Region.of(SIGNING_REGION_OVERRIDES.getOrDefault(region.id(), region.id()));
5968
}
60-
61-
@Override
62-
public List<ServicePartitionMetadata> servicePartitions() {
63-
return PARTITIONS;
64-
}
6569
}

core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsExecutionAttribute.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import software.amazon.awssdk.annotations.SdkPublicApi;
1919
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
20-
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
2120
import software.amazon.awssdk.core.interceptor.ExecutionAttribute;
2221
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
2322
import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute;
@@ -34,10 +33,5 @@ public final class AwsExecutionAttribute extends SdkExecutionAttribute {
3433
*/
3534
public static final ExecutionAttribute<Region> AWS_REGION = new ExecutionAttribute<>("AwsRegion");
3635

37-
/**
38-
* The {@link AwsClientOption#ENDPOINT_PREFIX} for the client.
39-
*/
40-
public static final ExecutionAttribute<String> ENDPOINT_PREFIX = new ExecutionAttribute<>("AwsEndpointPrefix");
41-
4236
private AwsExecutionAttribute() {}
4337
}

0 commit comments

Comments
 (0)