Skip to content

Commit 446e168

Browse files
authored
Remove deprecated MockDefaultGenerator (OpenAPITools#18857)
* Make DryRunStatus path field final * Add templateData capture functionality to DryRunTemplateManager * Replace MockDefaultGenerator with DryRunTemplateManager captures * Remove MockDefaultGenerator
1 parent 2fcf825 commit 446e168

5 files changed

Lines changed: 90 additions & 191 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunStatus.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*
1717
* @return a {@link Path} instance
1818
*/
19-
private Path path;
19+
private final Path path;
2020
/**
2121
* -- GETTER --
2222
* Gets the

modules/openapi-generator/src/main/java/org/openapitools/codegen/DryRunTemplateManager.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
public class DryRunTemplateManager implements TemplateProcessor {
1919
private final TemplateManagerOptions options;
2020
private final Map<String, DryRunStatus> dryRunStatusMap = new HashMap<>();
21+
22+
private final Map<String, Map<String, Object>> capturedTemplateData = new HashMap<>();
23+
private boolean recordTemplateData = false;
2124

2225
/**
2326
* Constructs a new instance of {@link DryRunTemplateManager} for the provided options
@@ -47,6 +50,9 @@ public Map<String, DryRunStatus> getDryRunStatusMap() {
4750
*/
4851
@Override
4952
public File write(Map<String, Object> data, String template, File target) throws IOException {
53+
if (recordTemplateData) {
54+
this.capturedTemplateData.put(target.getAbsolutePath(), data);
55+
}
5056
return writeToFile(target.getAbsolutePath(), "dummy".getBytes(StandardCharsets.UTF_8));
5157
}
5258

@@ -101,4 +107,25 @@ public void skip(Path path, String context) {
101107
public void error(Path path, String context) {
102108
dryRunStatusMap.put(path.toString(), new DryRunStatus(path, DryRunStatus.State.Error, context));
103109
}
110+
111+
/**
112+
* Enable capturing of data being passed to the files as they are being written.<br>
113+
* Call this method <b><u>before</u></b> calling {@link Generator#generate()}.
114+
*/
115+
public DryRunTemplateManager enableTemplateDataCapturing() {
116+
recordTemplateData = true;
117+
return this;
118+
}
119+
120+
/**
121+
* Retrieve the captured template data for a specific file. Capturing must have
122+
* been enabled via {@link #enableTemplateDataCapturing()} prior to generation.<br>
123+
* Note: Not all files have template data (e.g. Metadata files) – in such case an empty
124+
* map is returned.
125+
* @param generatedFile An absolute path to the generated file
126+
* @return Typically one of the *Map types found in {@link org.openapitools.codegen.model}
127+
*/
128+
public Map<String, Object> getCapturedTemplateData(Path generatedFile) {
129+
return capturedTemplateData.getOrDefault(generatedFile.toString(), Map.of());
130+
}
104131
}

modules/openapi-generator/src/test/java/org/openapitools/codegen/MockDefaultGenerator.java

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

modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@
1515
import io.swagger.v3.oas.models.media.Schema;
1616
import io.swagger.v3.oas.models.servers.Server;
1717
import io.swagger.v3.parser.core.models.ParseOptions;
18-
import org.openapitools.codegen.MockDefaultGenerator.WrittenTemplateBasedFile;
1918
import org.openapitools.codegen.java.assertions.JavaFileAssert;
2019
import org.openapitools.codegen.model.ModelMap;
2120
import org.openapitools.codegen.model.ModelsMap;
2221
import org.openapitools.codegen.utils.ModelUtils;
23-
import org.testng.Assert;
2422

2523
import java.io.File;
2624
import java.io.IOException;
@@ -95,24 +93,6 @@ public static OpenAPI createOpenAPIWithOneSchema(String name, Schema<?> schema)
9593
return openAPI;
9694
}
9795

98-
/**
99-
* Extract file from {@link MockDefaultGenerator}
100-
*
101-
* @param generator Generator
102-
* @param root root path
103-
* @param filename filename under root
104-
*
105-
* @return a {@link WrittenTemplateBasedFile}
106-
* @deprecated Since 5.0. Please avoid this method and usage of {@link MockDefaultGenerator}, prefer {@link DefaultGenerator#DefaultGenerator(Boolean)} with dryRun=true.
107-
*/
108-
@Deprecated
109-
public static WrittenTemplateBasedFile getTemplateBasedFile(MockDefaultGenerator generator, File root, String filename) {
110-
String defaultApiFilename = new File(root, filename).getAbsolutePath().replace("\\", "/");
111-
Optional<WrittenTemplateBasedFile> optional = generator.getTemplateBasedFiles().stream().filter(f -> defaultApiFilename.equals(f.getOutputFilename())).findFirst();
112-
Assert.assertTrue(optional.isPresent());
113-
return optional.get();
114-
}
115-
11696
public static void ensureContainsFile(List<File> generatedFiles, File root, String filename) {
11797
Path path = root.toPath().resolve(filename);
11898
assertTrue(generatedFiles.contains(path.toFile()), "File '" + path.toAbsolutePath() + "' was not found in the list of generated files");

0 commit comments

Comments
 (0)