Skip to content

Commit 0581c8a

Browse files
committed
Minor changes
1 parent e0f2f61 commit 0581c8a

File tree

5 files changed

+11
-51
lines changed

5 files changed

+11
-51
lines changed

codegen/src/main/java/software/amazon/awssdk/codegen/docs/OperationDocProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ abstract class OperationDocProvider {
5555
"an exception will be thrown. ";
5656

5757
private static final ExampleMetadataProvider EXAMPLE_PROVIDER =
58-
ExampleMetadataProvider.getInstance(EXAMPLE_META_PATH);
58+
new ExampleMetadataProvider(EXAMPLE_META_PATH);
5959

6060
protected final IntermediateModel model;
6161
protected final OperationModel opModel;

codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/PackageInfoGeneratorTasks.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private String buildJavadocContent(String baseDocumentation, String codeExamples
109109
* Gets code examples using a custom example metadata path.
110110
*/
111111
private String getCodeExamplesWithPath(Metadata metadata, String exampleMetaPath) {
112-
ExampleMetadataProvider exampleProvider = ExampleMetadataProvider.getInstance(exampleMetaPath);
112+
ExampleMetadataProvider exampleProvider = new ExampleMetadataProvider(exampleMetaPath);
113113
List<ExampleMetadataProvider.ExampleData> examples = exampleProvider.getServiceCodeExamples(metadata);
114114

115115
if (examples.isEmpty()) {

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

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import java.util.Locale;
2424
import java.util.Map;
2525
import java.util.Optional;
26-
import java.util.concurrent.ConcurrentHashMap;
27-
import java.util.concurrent.ConcurrentMap;
2826
import software.amazon.awssdk.codegen.model.intermediate.Metadata;
2927
import software.amazon.awssdk.protocols.jsoncore.JsonNode;
3028
import software.amazon.awssdk.protocols.jsoncore.JsonNodeParser;
@@ -38,38 +36,24 @@ public final class ExampleMetadataProvider {
3836

3937
private static final Logger log = Logger.loggerFor(ExampleMetadataProvider.class);
4038

41-
private static final ConcurrentMap<String, ExampleMetadataProvider> INSTANCE_CACHE = new ConcurrentHashMap<>();
42-
4339
private final String exampleMetaPath;
4440
private final JsonNodeParser jsonParser;
4541
private final Lazy<Map<String, JsonNode>> serviceNodeCache;
4642
private final Lazy<Map<String, String>> normalizedServiceKeyMap;
4743

48-
private ExampleMetadataProvider(String exampleMetaPath) {
49-
this.exampleMetaPath = exampleMetaPath;
50-
this.jsonParser = JsonNodeParser.create();
51-
this.serviceNodeCache = new Lazy<>(this::buildServiceNodeCache);
52-
this.normalizedServiceKeyMap = new Lazy<>(this::buildNormalizedServiceKeyMap);
53-
}
54-
5544
/**
5645
* Creates an ExampleMetadataProvider instance for the given JSON file path.
5746
*
5847
* @param exampleMetaPath path to the example metadata JSON file
59-
* @return ExampleMetadataProvider instance for this path
6048
*/
61-
public static ExampleMetadataProvider getInstance(String exampleMetaPath) {
49+
public ExampleMetadataProvider(String exampleMetaPath) {
6250
if (exampleMetaPath == null) {
6351
throw new IllegalArgumentException("exampleMetaPath cannot be null");
6452
}
65-
return INSTANCE_CACHE.computeIfAbsent(exampleMetaPath, ExampleMetadataProvider::new);
66-
}
67-
68-
/**
69-
* Clears the instance cache.
70-
*/
71-
public static void clearCache() {
72-
INSTANCE_CACHE.clear();
53+
this.exampleMetaPath = exampleMetaPath;
54+
this.jsonParser = JsonNodeParser.create();
55+
this.serviceNodeCache = new Lazy<>(this::buildServiceNodeCache);
56+
this.normalizedServiceKeyMap = new Lazy<>(this::buildNormalizedServiceKeyMap);
7357
}
7458

7559
/**

codegen/src/test/java/software/amazon/awssdk/codegen/docs/OperationDocProviderTest.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import java.util.Optional;
2222
import java.util.stream.Stream;
23-
import org.junit.jupiter.api.AfterAll;
2423
import org.junit.jupiter.api.Test;
2524
import org.junit.jupiter.params.ParameterizedTest;
2625
import org.junit.jupiter.params.provider.Arguments;
@@ -32,16 +31,11 @@ public class OperationDocProviderTest {
3231

3332
private static final String TEST_EXAMPLE_META_PATH = "software/amazon/awssdk/codegen/test-example-meta.json";
3433

35-
@AfterAll
36-
static void cleanupCache() {
37-
ExampleMetadataProvider.clearCache();
38-
}
39-
4034
@ParameterizedTest
4135
@MethodSource("createLinkToCodeExampleTestCases")
4236
public void exampleMetadataService_createLinkToCodeExample_returnsExpectedResult(
4337
String serviceName, String operationName, String expectedUrl) {
44-
ExampleMetadataProvider provider = ExampleMetadataProvider.getInstance(TEST_EXAMPLE_META_PATH);
38+
ExampleMetadataProvider provider = new ExampleMetadataProvider(TEST_EXAMPLE_META_PATH);
4539

4640
Optional<String> result = provider.createLinkToCodeExample(createTestMetadata(serviceName), operationName);
4741

@@ -65,20 +59,8 @@ private static Stream<Arguments> createLinkToCodeExampleTestCases() {
6559
}
6660

6761
@Test
68-
public void registryPattern_withMultiplePaths_maintainsSeparateInstances() {
69-
ExampleMetadataProvider provider1 = ExampleMetadataProvider.getInstance(TEST_EXAMPLE_META_PATH);
70-
ExampleMetadataProvider provider2 = ExampleMetadataProvider.getInstance("nonexistent/path.json");
71-
72-
assertThat(provider1).isNotSameAs(provider2);
73-
74-
ExampleMetadataProvider provider1Again = ExampleMetadataProvider.getInstance(TEST_EXAMPLE_META_PATH);
75-
assertThat(provider1).isSameAs(provider1Again);
76-
}
77-
78-
@Test
79-
public void registryPattern_threadSafety_handlesNullPath() {
80-
assertThatThrownBy(() -> ExampleMetadataProvider.getInstance(null))
81-
.as("getInstance should reject null paths")
62+
public void constructor_withNullPath_throwsIllegalArgumentException() {
63+
assertThatThrownBy(() -> new ExampleMetadataProvider(null))
8264
.isInstanceOf(IllegalArgumentException.class)
8365
.hasMessageContaining("exampleMetaPath cannot be null");
8466
}

codegen/src/test/java/software/amazon/awssdk/codegen/emitters/tasks/PackageInfoGeneratorTasksTest.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.List;
2323
import java.util.Scanner;
2424
import java.util.stream.Stream;
25-
import org.junit.jupiter.api.AfterAll;
2625
import org.junit.jupiter.params.ParameterizedTest;
2726
import org.junit.jupiter.params.provider.Arguments;
2827
import org.junit.jupiter.params.provider.MethodSource;
@@ -35,17 +34,12 @@ public class PackageInfoGeneratorTasksTest {
3534

3635
private static final String TEST_EXAMPLE_META_PATH = "software/amazon/awssdk/codegen/test-example-meta.json";
3736

38-
@AfterAll
39-
static void cleanupCache() {
40-
ExampleMetadataProvider.clearCache();
41-
}
42-
4337
@ParameterizedTest
4438
@MethodSource("getServiceCodeExamplesTestCases")
4539
public void exampleMetadataService_getServiceCodeExamples_returnsExpectedResult(
4640
String metadataPath, String serviceName,
4741
Integer expectedSize, String expectedFirstTitle, String expectedFirstCategory, String expectedFirstUrl) {
48-
ExampleMetadataProvider provider = ExampleMetadataProvider.getInstance(metadataPath);
42+
ExampleMetadataProvider provider = new ExampleMetadataProvider(metadataPath);
4943

5044
List<ExampleMetadataProvider.ExampleData> result = provider.getServiceCodeExamples(createTestMetadata(serviceName));
5145

0 commit comments

Comments
 (0)