Skip to content

Commit 3b5d0c7

Browse files
committed
Additional changes - Creating a new PartitionsMetadata for partisions.json
1 parent 6f689ad commit 3b5d0c7

11 files changed

Lines changed: 350 additions & 411 deletions

File tree

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

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import software.amazon.awssdk.codegen.lite.regions.ServiceMetadataGenerator;
3737
import software.amazon.awssdk.codegen.lite.regions.ServiceMetadataProviderGenerator;
3838
import software.amazon.awssdk.codegen.lite.regions.model.Partitions;
39+
import software.amazon.awssdk.codegen.lite.regions.model.PartitionsMetadata;
40+
import software.amazon.awssdk.codegen.lite.regions.PartitionsMetadataLoader;
3941
import software.amazon.awssdk.utils.StringUtils;
4042

4143
/**
@@ -59,24 +61,24 @@ public class RegionGenerationMojo extends AbstractMojo {
5961
"${basedir}/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json")
6062
private File endpoints;
6163

62-
@Parameter(property = "partitionsjson", defaultValue =
63-
"${basedir}/src/main/resources/software/amazon/awssdk/regions/internal/region/partitions.json.resource")
64-
private File partitionsjson;
64+
@Parameter(property = "partitionsJson", defaultValue =
65+
"${basedir}/../../codegen/src/main/resources/software/amazon/awssdk/codegen/rules/partitions.json.resource")
66+
private File partitionsJson;
6567

6668
@Override
6769
public void execute() throws MojoExecutionException {
6870
Path baseSourcesDirectory = Paths.get(outputDirectory).resolve("generated-sources").resolve("sdk");
6971
Path testsDirectory = Paths.get(outputDirectory).resolve("generated-test-sources").resolve("sdk-tests");
7072

7173
Partitions partitions = RegionMetadataLoader.build(endpoints);
72-
Partitions regionpartitions = RegionMetadataLoader.build(partitionsjson);
74+
PartitionsMetadata regionPartitions = PartitionsMetadataLoader.build(partitionsJson);
7375

7476
generatePartitionMetadataClass(baseSourcesDirectory, partitions);
75-
generateRegionClass(baseSourcesDirectory, regionpartitions);
77+
generateRegionClass(baseSourcesDirectory, regionPartitions);
7678
generateServiceMetadata(baseSourcesDirectory, partitions);
77-
generateRegions(baseSourcesDirectory, regionpartitions);
79+
generateRegions(baseSourcesDirectory, regionPartitions);
7880
generatePartitionProvider(baseSourcesDirectory, partitions);
79-
generateRegionProvider(baseSourcesDirectory, regionpartitions);
81+
generateRegionProvider(baseSourcesDirectory, regionPartitions);
8082
generateServiceProvider(baseSourcesDirectory, partitions);
8183
generateEndpointTags(baseSourcesDirectory, partitions);
8284

@@ -93,7 +95,7 @@ public void generatePartitionMetadataClass(Path baseSourcesDirectory, Partitions
9395
REGION_BASE)).generate());
9496
}
9597

96-
public void generateRegionClass(Path baseSourcesDirectory, Partitions partitions) {
98+
public void generateRegionClass(Path baseSourcesDirectory, PartitionsMetadata partitions) {
9799
Path sourcesDirectory = baseSourcesDirectory.resolve(StringUtils.replace(REGION_BASE, ".", "/"));
98100
new CodeGenerator(sourcesDirectory.toString(), new RegionGenerator(partitions, REGION_BASE)).generate();
99101
}
@@ -110,7 +112,7 @@ public void generateServiceMetadata(Path baseSourcesDirectory, Partitions partit
110112
.generate());
111113
}
112114

113-
public void generateRegions(Path baseSourcesDirectory, Partitions partitions) {
115+
public void generateRegions(Path baseSourcesDirectory, PartitionsMetadata partitions) {
114116
Path sourcesDirectory = baseSourcesDirectory.resolve(StringUtils.replace(REGION_METADATA_BASE, ".", "/"));
115117
partitions.getPartitions()
116118
.forEach(p -> p.getRegions().forEach((k, v) ->
@@ -131,7 +133,7 @@ public void generatePartitionProvider(Path baseSourcesDirectory, Partitions part
131133
.generate();
132134
}
133135

134-
public void generateRegionProvider(Path baseSourcesDirectory, Partitions partitions) {
136+
public void generateRegionProvider(Path baseSourcesDirectory, PartitionsMetadata partitions) {
135137
Path sourcesDirectory = baseSourcesDirectory.resolve(StringUtils.replace(REGION_BASE, ".", "/"));
136138
new CodeGenerator(sourcesDirectory.toString(), new RegionMetadataProviderGenerator(partitions,
137139
REGION_METADATA_BASE,
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright 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+
16+
package software.amazon.awssdk.codegen.lite.regions;
17+
18+
import com.fasterxml.jackson.jr.ob.JSON;
19+
import java.io.File;
20+
import java.io.IOException;
21+
import software.amazon.awssdk.annotations.SdkInternalApi;
22+
import software.amazon.awssdk.codegen.lite.regions.model.PartitionsMetadata;
23+
24+
/**
25+
* Loads and parses the partitions.json file into {@link PartitionsMetadata}.
26+
*/
27+
@SdkInternalApi
28+
public final class PartitionsMetadataLoader {
29+
30+
private PartitionsMetadataLoader() {
31+
}
32+
33+
public static PartitionsMetadata build(File path) {
34+
return loadPartitionFromStream(path, path.toString());
35+
}
36+
37+
private static PartitionsMetadata loadPartitionFromStream(File stream, String location) {
38+
39+
try {
40+
return JSON.std.with(JSON.Feature.USE_IS_GETTERS)
41+
.beanFrom(PartitionsMetadata.class, stream);
42+
43+
} catch (IOException | RuntimeException e) {
44+
throw new RuntimeException("Error while loading partitions file from " + location, e);
45+
}
46+
}
47+
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@
3838
import software.amazon.awssdk.annotations.Generated;
3939
import software.amazon.awssdk.annotations.SdkPublicApi;
4040
import software.amazon.awssdk.codegen.lite.PoetClass;
41-
import software.amazon.awssdk.codegen.lite.regions.model.Partitions;
41+
import software.amazon.awssdk.codegen.lite.regions.model.PartitionsMetadata;
4242
import software.amazon.awssdk.utils.Validate;
4343
import software.amazon.awssdk.utils.http.SdkHttpUtils;
4444

4545
public class RegionGenerator implements PoetClass {
4646

47-
private final Partitions partitions;
47+
private final PartitionsMetadata partitions;
4848
private final String basePackage;
4949

50-
public RegionGenerator(Partitions partitions,
50+
public RegionGenerator(PartitionsMetadata partitions,
5151
String basePackage) {
5252
this.partitions = partitions;
5353
this.basePackage = basePackage;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,17 @@
3232
import software.amazon.awssdk.annotations.SdkPublicApi;
3333
import software.amazon.awssdk.codegen.lite.PoetClass;
3434
import software.amazon.awssdk.codegen.lite.Utils;
35-
import software.amazon.awssdk.codegen.lite.regions.model.Partition;
35+
import software.amazon.awssdk.codegen.lite.regions.model.PartitionMetadata;
3636

3737
public class RegionMetadataGenerator implements PoetClass {
3838

39-
private final Partition partition;
39+
private final PartitionMetadata partition;
4040
private final String region;
4141
private final String regionDescription;
4242
private final String basePackage;
4343
private final String regionBasePackage;
4444

45-
public RegionMetadataGenerator(Partition partition,
45+
public RegionMetadataGenerator(PartitionMetadata partition,
4646
String region,
4747
String regionDescription,
4848
String basePackage,

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@
3636
import software.amazon.awssdk.annotations.SdkPublicApi;
3737
import software.amazon.awssdk.codegen.lite.PoetClass;
3838
import software.amazon.awssdk.codegen.lite.Utils;
39-
import software.amazon.awssdk.codegen.lite.regions.model.Partitions;
39+
import software.amazon.awssdk.codegen.lite.regions.model.PartitionsMetadata;
4040
import software.amazon.awssdk.utils.ImmutableMap;
4141

4242
public class RegionMetadataProviderGenerator implements PoetClass {
4343

44-
private final Partitions partitions;
44+
private final PartitionsMetadata partitions;
4545
private final String basePackage;
4646
private final String regionBasePackage;
4747

48-
public RegionMetadataProviderGenerator(Partitions partitions,
48+
public RegionMetadataProviderGenerator(PartitionsMetadata partitions,
4949
String basePackage,
5050
String regionBasePackage) {
5151
this.partitions = partitions;
@@ -79,7 +79,7 @@ public ClassName className() {
7979
return ClassName.get(regionBasePackage, "GeneratedRegionMetadataProvider");
8080
}
8181

82-
private CodeBlock regions(Partitions partitions) {
82+
private CodeBlock regions(PartitionsMetadata partitions) {
8383
CodeBlock.Builder builder = CodeBlock.builder().add("$T.<Region, RegionMetadata>builder()", ImmutableMap.class);
8484

8585
partitions.getPartitions()

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

Lines changed: 3 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -62,61 +62,17 @@ public final class Partition {
6262
*/
6363
private Endpoint defaults;
6464

65-
/**
66-
* The partition id.
67-
*/
68-
private String id;
69-
70-
/**
71-
* Configuration outputs for the partition.
72-
*/
73-
private PartitionOutputs outputs;
74-
7565
public Partition() {
7666
}
7767

7868
public Partition(@JsonProperty(value = "partition") String partition,
7969
@JsonProperty(value = "regions") Map<String, PartitionRegion>
80-
regions,
70+
regions,
8171
@JsonProperty(value = "services") Map<String,
82-
Service> services,
83-
@JsonProperty(value = "id") String id,
84-
@JsonProperty(value = "outputs") PartitionOutputs outputs,
85-
@JsonProperty(value = "regionRegex") String regionRegex) {
72+
Service> services) {
8673
this.partition = Validate.paramNotNull(partition, "Partition");
8774
this.regions = regions;
8875
this.services = services;
89-
this.id = id;
90-
this.outputs = outputs;
91-
this.regionRegex = regionRegex;
92-
}
93-
94-
/**
95-
* Returns the partition ID.
96-
*/
97-
public String getId() {
98-
return id;
99-
}
100-
101-
/**
102-
* Sets the partition id.
103-
*/
104-
public void setId(String id) {
105-
this.id = id;
106-
}
107-
108-
/**
109-
* Returns the configuration outputs for the partition.
110-
*/
111-
public PartitionOutputs getOutputs() {
112-
return outputs;
113-
}
114-
115-
/**
116-
* Sets the configuration outputs for the partition.
117-
*/
118-
public void setOutputs(PartitionOutputs outputs) {
119-
this.outputs = outputs;
12076
}
12177

12278
/**
@@ -221,82 +177,6 @@ private boolean matchesRegionRegex(String region) {
221177
return p.matcher(region).matches();
222178
}
223179

224-
public static class PartitionOutputs {
225-
private String dnsSuffix;
226-
private String dualStackDnsSuffix;
227-
private String implicitGlobalRegion;
228-
private String name;
229-
private boolean supportsDualStack;
230-
private boolean supportsFIPS;
231-
232-
@JsonProperty("dnsSuffix")
233-
public String getDnsSuffix() {
234-
return dnsSuffix;
235-
}
236-
237-
public void setDnsSuffix(String dnsSuffix) {
238-
this.dnsSuffix = dnsSuffix;
239-
}
240-
241-
@JsonProperty("dualStackDnsSuffix")
242-
public String getDualStackDnsSuffix() {
243-
return dualStackDnsSuffix;
244-
}
245-
246-
public void setDualStackDnsSuffix(String dualStackDnsSuffix) {
247-
this.dualStackDnsSuffix = dualStackDnsSuffix;
248-
}
249-
250-
@JsonProperty("implicitGlobalRegion")
251-
public String getImplicitGlobalRegion() {
252-
return implicitGlobalRegion;
253-
}
254-
255-
public void setImplicitGlobalRegion(String implicitGlobalRegion) {
256-
this.implicitGlobalRegion = implicitGlobalRegion;
257-
}
258-
259-
@JsonProperty("name")
260-
public String getName() {
261-
return name;
262-
}
263-
264-
public void setName(String name) {
265-
this.name = name;
266-
}
267-
268-
@JsonProperty("supportsDualStack")
269-
public boolean getSupportsDualStack() {
270-
return supportsDualStack;
271-
}
272-
273-
public void setSupportsDualStack(boolean supportsDualStack) {
274-
this.supportsDualStack = supportsDualStack;
275-
}
276-
277-
@JsonProperty("supportsFIPS")
278-
public boolean getSupportsFIPS() {
279-
return supportsFIPS;
280-
}
281-
282-
public void setSupportsFIPS(boolean supportsFIPS) {
283-
this.supportsFIPS = supportsFIPS;
284-
}
285-
}
286-
287-
public static class Region {
288-
private String description;
289-
290-
@JsonProperty("description")
291-
public String getDescription() {
292-
return description;
293-
}
294-
295-
public void setDescription(String description) {
296-
this.description = description;
297-
}
298-
}
299-
300180
@Deprecated
301181
private boolean hasServiceEndpoint(String endpoint) {
302182
for (Service s : services.values()) {
@@ -306,4 +186,4 @@ private boolean hasServiceEndpoint(String endpoint) {
306186
}
307187
return false;
308188
}
309-
}
189+
}

0 commit comments

Comments
 (0)