Skip to content

Commit c70d58f

Browse files
committed
Additional changes
1 parent f1334eb commit c70d58f

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
3131
import software.amazon.awssdk.codegen.model.intermediate.ShapeModel;
3232
import software.amazon.awssdk.codegen.model.service.PaginatorDefinition;
33+
import software.amazon.awssdk.utils.Lazy;
3334
import software.amazon.awssdk.utils.Pair;
3435
import software.amazon.awssdk.utils.StringUtils;
3536

@@ -38,6 +39,9 @@
3839
*/
3940
abstract class OperationDocProvider {
4041

42+
private static final Lazy<ExampleMetadataProvider> EXAMPLE_PROVIDER =
43+
new Lazy<>(() -> ExampleMetadataProvider.getInstance(EXAMPLE_META_PATH));
44+
4145
/**
4246
* Doc string for {@link java.nio.file.Path} parameter in simple method overload for streaming input operations.
4347
*/
@@ -90,9 +94,8 @@ String getDocs() {
9094
docBuilder.see(crosslink);
9195
}
9296

93-
ExampleMetadataProvider exampleProvider = ExampleMetadataProvider.getInstance(EXAMPLE_META_PATH);
94-
Optional<String> codeExampleLink = exampleProvider.createLinkToCodeExample(model.getMetadata(),
95-
opModel.getOperationName());
97+
Optional<String> codeExampleLink = EXAMPLE_PROVIDER.getValue()
98+
.createLinkToCodeExample(model.getMetadata(), opModel.getOperationName());
9699
codeExampleLink.ifPresent(docBuilder::see);
97100
return docBuilder.build().replace("$", "&#36");
98101
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,13 @@ public static ExampleMetadataProvider getInstance(String exampleMetaPath) {
6464
}
6565
return INSTANCE_CACHE.computeIfAbsent(exampleMetaPath, ExampleMetadataProvider::new);
6666
}
67+
68+
/**
69+
* Clears the instance cache.
70+
*/
71+
public static void clearCache() {
72+
INSTANCE_CACHE.clear();
73+
}
6774

6875
/**
6976
* Creates a link to a code example for the given operation.

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2020

2121
import java.util.Optional;
22+
import org.junit.jupiter.api.AfterEach;
2223
import org.junit.jupiter.api.Test;
2324
import software.amazon.awssdk.codegen.internal.ExampleMetadataProvider;
2425
import software.amazon.awssdk.codegen.model.intermediate.Metadata;
@@ -27,6 +28,11 @@ public class OperationDocProviderTest {
2728

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

31+
@AfterEach
32+
void cleanupCache() {
33+
ExampleMetadataProvider.clearCache();
34+
}
35+
3036
@Test
3137
public void exampleMetadataService_createLinkToCodeExample_withValidExample_returnsCorrectLink() {
3238
ExampleMetadataProvider provider = ExampleMetadataProvider.getInstance(TEST_EXAMPLE_META_PATH);

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.io.InputStream;
2222
import java.util.List;
2323
import java.util.Scanner;
24+
import org.junit.jupiter.api.AfterEach;
2425
import org.junit.jupiter.api.Test;
2526
import software.amazon.awssdk.codegen.emitters.GeneratorTaskParams;
2627
import software.amazon.awssdk.codegen.internal.ExampleMetadataProvider;
@@ -31,6 +32,11 @@ public class PackageInfoGeneratorTasksTest {
3132

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

35+
@AfterEach
36+
void cleanupCache() {
37+
ExampleMetadataProvider.clearCache();
38+
}
39+
3440
@Test
3541
public void exampleMetadataService_withExamples_returnsCorrectExamples() {
3642
ExampleMetadataProvider provider = ExampleMetadataProvider.getInstance(TEST_EXAMPLE_META_PATH);

0 commit comments

Comments
 (0)