Skip to content

Commit 91d4103

Browse files
authored
Regenerate Monitor libraries using latest Autorest (#43182)
Regenerate Monitor libraries using latest Autorest
1 parent a96e125 commit 91d4103

File tree

41 files changed

+1240
-590
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1240
-590
lines changed

sdk/monitor/azure-monitor-ingestion/src/main/java/com/azure/monitor/ingestion/implementation/IngestionUsingDataCollectionRulesClientBuilder.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.azure.core.client.traits.TokenCredentialTrait;
1212
import com.azure.core.credential.TokenCredential;
1313
import com.azure.core.http.HttpClient;
14-
import com.azure.core.http.HttpHeaderName;
1514
import com.azure.core.http.HttpHeaders;
1615
import com.azure.core.http.HttpPipeline;
1716
import com.azure.core.http.HttpPipelineBuilder;
@@ -291,10 +290,8 @@ private HttpPipeline createHttpPipeline() {
291290
policies.add(new UserAgentPolicy(applicationId, clientName, clientVersion, buildConfiguration));
292291
policies.add(new RequestIdPolicy());
293292
policies.add(new AddHeadersFromContextPolicy());
294-
HttpHeaders headers = new HttpHeaders();
295-
localClientOptions.getHeaders()
296-
.forEach(header -> headers.set(HttpHeaderName.fromString(header.getName()), header.getValue()));
297-
if (headers.getSize() > 0) {
293+
HttpHeaders headers = CoreUtils.createHttpHeadersFromClientOptions(localClientOptions);
294+
if (headers != null) {
298295
policies.add(new AddHeadersPolicy(headers));
299296
}
300297
this.pipelinePolicies.stream()
@@ -348,7 +345,7 @@ public IngestionUsingDataCollectionRulesClient buildClient() {
348345
private LogsIngestionAudience audience;
349346

350347
/**
351-
* Sets The audience.
348+
* Sets the audience.
352349
*
353350
* @param audience the audience indicating the authorization scope of log ingestion clients.
354351
* @return the IngestionUsingDataCollectionRulesClientBuilder.

sdk/monitor/azure-monitor-ingestion/swagger/README.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ autorest
2828

2929
```yaml
3030
java: true
31-
use: '@autorest/[email protected].39'
31+
use: '@autorest/[email protected].42'
3232
output-folder: ../
3333
license-header: MICROSOFT_MIT_SMALL
3434
input-file: https://github.com/Azure/azure-rest-api-specs/blob/main/specification/monitor/data-plane/ingestion/stable/2023-01-01/DataCollectionRules.json
@@ -49,8 +49,3 @@ enable-sync-stack: true
4949
customization-class: src/main/java/MonitorIngestionCustomizations.java
5050
stream-style-serialization: true
5151
```
52-
53-
### Manual Modifications
54-
55-
The following edits need to be made manually after code generation:
56-
- Rollback the edits to `module-info` file

sdk/monitor/azure-monitor-ingestion/swagger/src/main/java/MonitorIngestionCustomizations.java

Lines changed: 87 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@
55
import com.azure.autorest.customization.Customization;
66
import com.azure.autorest.customization.LibraryCustomization;
77
import com.azure.autorest.customization.PackageCustomization;
8-
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
9-
import com.github.javaparser.ast.body.TypeDeclaration;
10-
import com.github.javaparser.ast.stmt.BlockStmt;
8+
import com.github.javaparser.StaticJavaParser;
9+
import com.github.javaparser.ast.CompilationUnit;
10+
import com.github.javaparser.ast.NodeList;
11+
import com.github.javaparser.ast.expr.Name;
12+
import com.github.javaparser.ast.modules.ModuleExportsDirective;
13+
import com.github.javaparser.ast.modules.ModuleOpensDirective;
14+
import com.github.javaparser.ast.modules.ModuleRequiresDirective;
15+
import com.github.javaparser.javadoc.Javadoc;
16+
import com.github.javaparser.javadoc.description.JavadocDescription;
1117
import org.slf4j.Logger;
1218

13-
import java.util.function.Consumer;
14-
1519
/**
1620
* Customization class for Monitor. These customizations will be applied on top of the generated code.
1721
*/
@@ -33,7 +37,26 @@ public class MonitorIngestionCustomizations extends Customization {
3337
*/
3438
@Override
3539
public void customize(LibraryCustomization libraryCustomization, Logger logger) {
36-
monitorIngestionImplementation(libraryCustomization.getPackage("com.azure.monitor.ingestion.implementation"), logger);
40+
monitorIngestionImplementation(libraryCustomization.getPackage("com.azure.monitor.ingestion.implementation"));
41+
CompilationUnit moduleInfo = StaticJavaParser.parse(libraryCustomization.getRawEditor()
42+
.getFileContent("src/main/java/module-info.java"));
43+
moduleInfo.getModule()
44+
.ifPresent(module -> {
45+
module.setName("com.azure.monitor.ingestion");
46+
module.setDirectives(new NodeList<>(
47+
new ModuleRequiresDirective().setTransitive(true).setName("com.azure.core"),
48+
new ModuleExportsDirective().setName("com.azure.monitor.ingestion"),
49+
new ModuleExportsDirective().setName("com.azure.monitor.ingestion.models"),
50+
new ModuleOpensDirective().setName("com.azure.monitor.ingestion")
51+
.setModuleNames(new NodeList<>(new Name("com.azure.core")))));
52+
});
53+
54+
libraryCustomization.getRawEditor()
55+
.replaceFile("src/main/java/module-info.java",
56+
"// Copyright (c) Microsoft Corporation. All rights reserved.\n"
57+
+ "// Licensed under the MIT License.\n"
58+
+ "// Code generated by Microsoft (R) AutoRest Code Generator.\n\n"
59+
+ moduleInfo);
3760
}
3861

3962
/**
@@ -47,10 +70,9 @@ public void customize(LibraryCustomization libraryCustomization, Logger logger)
4770
* </ol>
4871
*
4972
* @param packageCustomization The package customization.
50-
* @param logger The logger.
5173
*/
52-
private void monitorIngestionImplementation(PackageCustomization packageCustomization, Logger logger) {
53-
IngestionUsingDataCollectionRulesClientBuilderCustomization(packageCustomization.getClass("IngestionUsingDataCollectionRulesClientBuilder"), logger);
74+
private void monitorIngestionImplementation(PackageCustomization packageCustomization) {
75+
IngestionUsingDataCollectionRulesClientBuilderCustomization(packageCustomization.getClass("IngestionUsingDataCollectionRulesClientBuilder"));
5476
}
5577

5678
/**
@@ -73,78 +95,64 @@ private void monitorIngestionImplementation(PackageCustomization packageCustomiz
7395
* </ol>
7496
*
7597
* @param classCustomization The class customization.
76-
* @param logger The logger.
7798
*/
78-
private void IngestionUsingDataCollectionRulesClientBuilderCustomization(ClassCustomization classCustomization, Logger logger) {
79-
classCustomization.addImports("com.azure.monitor.ingestion.models.LogsIngestionAudience");
99+
private void IngestionUsingDataCollectionRulesClientBuilderCustomization(ClassCustomization classCustomization) {
100+
classCustomization.customizeAst(ast -> {
101+
ast.addImport("com.azure.monitor.ingestion.models.LogsIngestionAudience");
102+
ast.getClassByName(classCustomization.getClassName()).ifPresent(clazz -> {
103+
clazz.addPrivateField("LogsIngestionAudience", "audience")
104+
.addAnnotation("Generated")
105+
.setJavadocComment("The audience indicating the authorization scope of log ingestion clients.")
106+
.createSetter()
107+
.setName("audience")
108+
.setType("IngestionUsingDataCollectionRulesClientBuilder")
109+
.setBody(StaticJavaParser.parseBlock("{this.audience = audience; return this; }"))
110+
.addAnnotation("Generated")
111+
.setJavadocComment(new Javadoc(JavadocDescription.parseText("Sets the audience."))
112+
.addBlockTag("param", "audience", "the audience indicating the authorization scope of log ingestion clients.")
113+
.addBlockTag("return", "the IngestionUsingDataCollectionRulesClientBuilder."));
80114

81-
82-
83-
customizeAst(classCustomization, clazz -> {
84-
clazz.addPrivateField("LogsIngestionAudience", "audience")
85-
.addAnnotation("Generated")
86-
.setJavadocComment("The audience indicating the authorization scope of log ingestion clients.")
87-
.createSetter()
88-
.setName("audience")
89-
.setType("IngestionUsingDataCollectionRulesClientBuilder")
90-
.setBody(new BlockStmt()
91-
.addStatement("this.audience = audience;")
92-
.addStatement("return this;"))
93-
.addAnnotation("Generated")
94-
.setJavadocComment("Sets The audience.\n" +
95-
" *\n" +
96-
" * @param audience the audience indicating the authorization scope of log ingestion clients.\n" +
97-
" * @return the IngestionUsingDataCollectionRulesClientBuilder.");
115+
clazz.getMethodsByName("createHttpPipeline").get(0).setBody(StaticJavaParser.parseBlock(
116+
String.join("\n",
117+
"{",
118+
"Configuration buildConfiguration",
119+
" = (configuration == null) ? Configuration.getGlobalConfiguration() : configuration;",
120+
"HttpLogOptions localHttpLogOptions = this.httpLogOptions == null ? new HttpLogOptions() : this.httpLogOptions;",
121+
"ClientOptions localClientOptions = this.clientOptions == null ? new ClientOptions() : this.clientOptions;",
122+
"List<HttpPipelinePolicy> policies = new ArrayList<>();",
123+
"String clientName = PROPERTIES.getOrDefault(SDK_NAME, \"UnknownName\");",
124+
"String clientVersion = PROPERTIES.getOrDefault(SDK_VERSION, \"UnknownVersion\");",
125+
"String applicationId = CoreUtils.getApplicationId(localClientOptions, localHttpLogOptions);",
126+
"policies.add(new UserAgentPolicy(applicationId, clientName, clientVersion, buildConfiguration));",
127+
"policies.add(new RequestIdPolicy());",
128+
"policies.add(new AddHeadersFromContextPolicy());",
129+
"HttpHeaders headers = CoreUtils.createHttpHeadersFromClientOptions(localClientOptions);",
130+
"if (headers != null) {",
131+
" policies.add(new AddHeadersPolicy(headers));",
132+
"}",
133+
"this.pipelinePolicies.stream()",
134+
" .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)",
135+
" .forEach(p -> policies.add(p));",
136+
"HttpPolicyProviders.addBeforeRetryPolicies(policies);",
137+
"policies.add(ClientBuilderUtil.validateAndGetRetryPolicy(retryPolicy, retryOptions, new RetryPolicy()));",
138+
"policies.add(new AddDatePolicy());",
139+
"if (tokenCredential != null) {",
140+
" policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, audience == null ? DEFAULT_SCOPES : new String[] { audience.toString() }));",
141+
"}",
142+
"this.pipelinePolicies.stream()",
143+
" .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)",
144+
" .forEach(p -> policies.add(p));",
145+
"HttpPolicyProviders.addAfterRetryPolicies(policies);",
146+
"policies.add(new HttpLoggingPolicy(localHttpLogOptions));",
147+
"HttpPipeline httpPipeline = new HttpPipelineBuilder().policies(policies.toArray(new HttpPipelinePolicy[0]))",
148+
" .httpClient(httpClient)",
149+
" .clientOptions(localClientOptions)",
150+
" .build();",
151+
"return httpPipeline;",
152+
"}"
153+
)
154+
));
155+
});
98156
});
99-
100-
101-
classCustomization.getMethod("createHttpPipeline").replaceBody("Configuration buildConfiguration\n" +
102-
" = (configuration == null) ? Configuration.getGlobalConfiguration() : configuration;\n" +
103-
" HttpLogOptions localHttpLogOptions = this.httpLogOptions == null ? new HttpLogOptions() : this.httpLogOptions;\n" +
104-
" ClientOptions localClientOptions = this.clientOptions == null ? new ClientOptions() : this.clientOptions;\n" +
105-
" List<HttpPipelinePolicy> policies = new ArrayList<>();\n" +
106-
" String clientName = PROPERTIES.getOrDefault(SDK_NAME, \"UnknownName\");\n" +
107-
" String clientVersion = PROPERTIES.getOrDefault(SDK_VERSION, \"UnknownVersion\");\n" +
108-
" String applicationId = CoreUtils.getApplicationId(localClientOptions, localHttpLogOptions);\n" +
109-
" policies.add(new UserAgentPolicy(applicationId, clientName, clientVersion, buildConfiguration));\n" +
110-
" policies.add(new RequestIdPolicy());\n" +
111-
" policies.add(new AddHeadersFromContextPolicy());\n" +
112-
" HttpHeaders headers = new HttpHeaders();\n" +
113-
" localClientOptions.getHeaders()\n" +
114-
" .forEach(header -> headers.set(HttpHeaderName.fromString(header.getName()), header.getValue()));\n" +
115-
" if (headers.getSize() > 0) {\n" +
116-
" policies.add(new AddHeadersPolicy(headers));\n" +
117-
" }\n" +
118-
" this.pipelinePolicies.stream()\n" +
119-
" .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)\n" +
120-
" .forEach(p -> policies.add(p));\n" +
121-
" HttpPolicyProviders.addBeforeRetryPolicies(policies);\n" +
122-
" policies.add(ClientBuilderUtil.validateAndGetRetryPolicy(retryPolicy, retryOptions, new RetryPolicy()));\n" +
123-
" policies.add(new AddDatePolicy());\n" +
124-
" if (tokenCredential != null) {\n" +
125-
" policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, audience == null ? DEFAULT_SCOPES : new String[] { audience.toString() }));\n" +
126-
" }\n" +
127-
" this.pipelinePolicies.stream()\n" +
128-
" .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)\n" +
129-
" .forEach(p -> policies.add(p));\n" +
130-
" HttpPolicyProviders.addAfterRetryPolicies(policies);\n" +
131-
" policies.add(new HttpLoggingPolicy(localHttpLogOptions));\n" +
132-
" HttpPipeline httpPipeline = new HttpPipelineBuilder().policies(policies.toArray(new HttpPipelinePolicy[0]))\n" +
133-
" .httpClient(httpClient)\n" +
134-
" .clientOptions(localClientOptions)\n" +
135-
" .build();\n" +
136-
" return httpPipeline;");
137-
138-
}
139-
140-
141-
/**
142-
* Customizes the abstract syntax tree of a class.
143-
* @param classCustomization The class customization.
144-
* @param consumer The consumer.
145-
*/
146-
private static void customizeAst(ClassCustomization classCustomization, Consumer<ClassOrInterfaceDeclaration> consumer) {
147-
classCustomization.customizeAst(ast -> consumer.accept(ast.getClassByName(classCustomization.getClassName())
148-
.orElseThrow(() -> new RuntimeException("Class not found. " + classCustomization.getClassName()))));
149157
}
150158
}

0 commit comments

Comments
 (0)