Skip to content

Commit 563f6a8

Browse files
http-client-java, option metadata-suffix, use it for metadata files (#8756)
Rename flag `graalvm-config-suffix` to `metadata-suffix`. Use this for metadata.json file. I will update SDK api-specs.json after release.
1 parent 00fb035 commit 563f6a8

File tree

7 files changed

+29
-14
lines changed

7 files changed

+29
-14
lines changed

packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/javamodel/JavaPackage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,9 @@ public void addJsonMergePatchHelper(List<ClientModel> models) {
370370
addJavaFile(javaFile);
371371
}
372372

373-
public void addTypeSpecMetadata(TypeSpecMetadata typeSpecMetadata) {
374-
String filePath = "src/main/resources/META-INF/" + typeSpecMetadata.getArtifactId() + "_metadata.json";
373+
public void addTypeSpecMetadata(TypeSpecMetadata typeSpecMetadata, String suffix) {
374+
String filePath = "src/main/resources/META-INF/" + typeSpecMetadata.getArtifactId() + "_metadata"
375+
+ (suffix == null ? "" : "_" + suffix) + ".json";
375376
try {
376377
TextFile textFile = new TextFile(filePath, typeSpecMetadata.toJsonString());
377378
this.checkDuplicateFile(textFile.getFilePath());

packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/FluentGen.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,8 @@ protected FluentJavaPackage handleTemplate(Client client) {
255255
// GraalVM config
256256
if (javaSettings.isGenerateGraalVmConfig()) {
257257
String artifactId = FluentUtils.getArtifactId();
258-
if (fluentJavaSettings.getGraalVmConfigSuffix().isPresent()) {
259-
artifactId = artifactId + "_" + fluentJavaSettings.getGraalVmConfigSuffix().get();
258+
if (fluentJavaSettings.getMetadataSuffix().isPresent()) {
259+
artifactId = artifactId + "_" + fluentJavaSettings.getMetadataSuffix().get();
260260
}
261261
javaPackage.addGraalVmConfig("com.azure.resourcemanager", artifactId, client.getGraalVmConfig());
262262
}

packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/util/FluentJavaSettings.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public class FluentJavaSettings {
7878

7979
private SampleGeneration generateSamples = SampleGeneration.NONE;
8080

81-
private String graalVmConfigSuffix = null;
81+
private String metadataSuffix = null;
8282

8383
private boolean sdkIntegration = false;
8484

@@ -165,8 +165,8 @@ public boolean isGenerateSamples() {
165165
return generateSamples != SampleGeneration.NONE;
166166
}
167167

168-
public Optional<String> getGraalVmConfigSuffix() {
169-
return Optional.ofNullable(graalVmConfigSuffix);
168+
public Optional<String> getMetadataSuffix() {
169+
return Optional.ofNullable(metadataSuffix);
170170
}
171171

172172
public boolean isSdkIntegration() {
@@ -216,7 +216,7 @@ private void loadSettings() {
216216
loadBooleanSetting("generate-samples",
217217
s -> generateSamples = (s ? SampleGeneration.AGGREGATED : SampleGeneration.NONE));
218218

219-
loadStringSetting("graalvm-config-suffix", s -> graalVmConfigSuffix = s);
219+
loadStringSetting("metadata-suffix", s -> metadataSuffix = s);
220220

221221
loadBooleanSetting("sdk-integration", b -> sdkIntegration = b);
222222

packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/Main.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.microsoft.typespec.http.client.generator.core.postprocessor.Postprocessor;
1919
import com.microsoft.typespec.http.client.generator.core.util.ClientModelUtil;
2020
import com.microsoft.typespec.http.client.generator.fluent.TypeSpecFluentPlugin;
21+
import com.microsoft.typespec.http.client.generator.mgmt.model.clientmodel.FluentStatic;
2122
import com.microsoft.typespec.http.client.generator.mgmt.model.javamodel.FluentJavaPackage;
2223
import com.microsoft.typespec.http.client.generator.mgmt.util.FluentUtils;
2324
import com.microsoft.typespec.http.client.generator.model.EmitterOptions;
@@ -118,7 +119,8 @@ private static void handleFluent(CodeModel codeModel, EmitterOptions emitterOpti
118119
FluentJavaPackage javaPackage = fluentPlugin.processTemplates(codeModel, client);
119120

120121
// delete generated Java files
121-
deleteGeneratedJavaFiles(emitterOptions.getOutputDir(), javaPackage.getJavaFiles(), JavaSettings.getInstance());
122+
deleteGeneratedJavaFiles(emitterOptions.getOutputDir(), javaPackage.getJavaFiles(), JavaSettings.getInstance(),
123+
FluentStatic.getFluentJavaSettings().getMetadataSuffix().orElse(null));
122124

123125
// write java files
124126

@@ -162,7 +164,7 @@ private static void handleDPG(CodeModel codeModel, EmitterOptions emitterOptions
162164
LOGGER.info("Count of text files: {}", javaPackage.getTextFiles().size());
163165

164166
// delete generated Java files
165-
deleteGeneratedJavaFiles(outputDir, javaPackage.getJavaFiles(), settings);
167+
deleteGeneratedJavaFiles(outputDir, javaPackage.getJavaFiles(), settings, null);
166168

167169
Map<String, String> javaFiles = new ConcurrentHashMap<>();
168170
javaPackage.getJavaFiles()
@@ -197,12 +199,14 @@ private static void handleDPG(CodeModel codeModel, EmitterOptions emitterOptions
197199
* @param javaFiles the list of Java files to be generated
198200
* @param settings the Java settings
199201
*/
200-
private static void deleteGeneratedJavaFiles(String outputDir, List<JavaFile> javaFiles, JavaSettings settings) {
202+
private static void deleteGeneratedJavaFiles(String outputDir, List<JavaFile> javaFiles, JavaSettings settings,
203+
String suffix) {
201204
Set<String> filesToDelete = new HashSet<>();
202205

203206
// clean up source code, based on metadata
204207
String metadataFilename = "src/main/resources/META-INF/"
205-
+ (settings.isFluent() ? FluentUtils.getArtifactId() : ClientModelUtil.getArtifactId()) + "_metadata.json";
208+
+ (settings.isFluent() ? FluentUtils.getArtifactId() : ClientModelUtil.getArtifactId()) + "_metadata"
209+
+ (suffix == null ? "" : "_" + suffix) + ".json";
206210
Path metadataFilePath = Paths.get(outputDir, metadataFilename).toAbsolutePath();
207211
if (Files.isRegularFile(metadataFilePath) && metadataFilePath.toFile().canRead()) {
208212
try (BufferedReader reader = Files.newBufferedReader(metadataFilePath, StandardCharsets.UTF_8);

packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/TypeSpecPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public JavaPackage processTemplates(CodeModel codeModel, Client client, JavaSett
6666
: emitterOptions.getApiVersion(),
6767
collectCrossLanguageDefinitions(client),
6868
FileUtil.filterForJavaSourceFiles(javaPackage.getJavaFiles().stream().map(JavaFile::getFilePath)));
69-
javaPackage.addTypeSpecMetadata(metadata);
69+
javaPackage.addTypeSpecMetadata(metadata, null);
7070
}
7171

7272
return javaPackage;

packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/fluent/TypeSpecFluentPlugin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ public TypeSpecFluentPlugin(EmitterOptions options, boolean sdkIntegration, Stri
101101
if (options.getResourceCollectionAssociations() != null) {
102102
SETTINGS_MAP.put("resource-collection-associations", options.getResourceCollectionAssociations());
103103
}
104+
if (options.getMetadataSuffix() != null) {
105+
SETTINGS_MAP.put("metadata-suffix", options.getMetadataSuffix());
106+
}
104107

105108
if (options.getCustomizationClass() != null) {
106109
SETTINGS_MAP.put("customization-class",
@@ -135,7 +138,7 @@ public FluentJavaPackage processTemplates(CodeModel codeModel, Client client) {
135138
TypeSpecMetadata metadata = new TypeSpecMetadata(FluentUtils.getArtifactId(), emitterOptions.getFlavor(),
136139
apiVersion, collectCrossLanguageDefinitions(client),
137140
FileUtil.filterForJavaSourceFiles(javaPackage.getJavaFiles().stream().map(JavaFile::getFilePath)));
138-
javaPackage.addTypeSpecMetadata(metadata);
141+
javaPackage.addTypeSpecMetadata(metadata, getFluentJavaSettings().getMetadataSuffix().orElse(null));
139142
}
140143

141144
return javaPackage;

packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/model/EmitterOptions.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public class EmitterOptions implements JsonSerializable<EmitterOptions> {
5151
private Boolean generateAsyncMethods;
5252
private String propertyIncludeAlways;
5353
private List<ResourceCollectionAssociation> resourceCollectionAssociations = new ArrayList<>();
54+
private String metadataSuffix;
5455

5556
// internal
5657
private String outputDir;
@@ -199,6 +200,10 @@ public List<ResourceCollectionAssociation> getResourceCollectionAssociations() {
199200
return resourceCollectionAssociations;
200201
}
201202

203+
public String getMetadataSuffix() {
204+
return metadataSuffix;
205+
}
206+
202207
@Override
203208
public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
204209
// it does not need to be written to JSON
@@ -273,6 +278,8 @@ public static EmitterOptions fromJson(JsonReader jsonReader) throws IOException
273278
options.premium = reader.getNullable(EmitterOptions::getBoolean);
274279
} else if ("client-side-validations".equals(fieldName)) {
275280
options.clientSideValidations = reader.getNullable(EmitterOptions::getBoolean);
281+
} else if ("metadata-suffix".equals(fieldName)) {
282+
options.metadataSuffix = emptyToNull(reader.getString());
276283
} else {
277284
reader.skipChildren();
278285
}

0 commit comments

Comments
 (0)