forked from microsoft/typespec
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Java codegen: Run cadl ranch tests (microsoft#4303)
This PR enables starting the test server and running the Java tests against the server.
- Loading branch information
Showing
286 changed files
with
15,072 additions
and
701 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -49,6 +49,7 @@ words: | |
- eastus | ||
- ecmarkup | ||
- EMBEDME | ||
- Entra | ||
- esbenp | ||
- esbuild | ||
- espt | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 changes: 35 additions & 0 deletions
35
...ient-java/generator/http-client-generator-core/src/main/resources/simplelogger.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# SLF4J's SimpleLogger configuration file | ||
# Simple implementation of Logger that sends all enabled log messages, for all defined loggers, to System.err. | ||
org.slf4j.simpleLogger.logFile=System.out | ||
|
||
# Default logging detail level for all instances of SimpleLogger. | ||
# Must be one of ("trace", "debug", "info", "warn", or "error"). | ||
# If not specified, defaults to "info". | ||
org.slf4j.simpleLogger.defaultLogLevel=error | ||
|
||
# Logging detail level for a SimpleLogger instance named "xxxxx". | ||
# Must be one of ("trace", "debug", "info", "warn", or "error"). | ||
# If not specified, the default logging detail level is used. | ||
#org.slf4j.simpleLogger.log.xxxxx= | ||
|
||
# Set to true if you want the current date and time to be included in output messages. | ||
# Default is false, and will output the number of milliseconds elapsed since startup. | ||
#org.slf4j.simpleLogger.showDateTime=false | ||
|
||
# The date and time format to be used in the output messages. | ||
# The pattern describing the date and time format is the same that is used in java.text.SimpleDateFormat. | ||
# If the format is not specified or is invalid, the default format is used. | ||
# The default format is yyyy-MM-dd HH:mm:ss:SSS Z. | ||
#org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z | ||
|
||
# Set to true if you want to output the current thread name. | ||
# Defaults to true. | ||
#org.slf4j.simpleLogger.showThreadName=true | ||
|
||
# Set to true if you want the Logger instance name to be included in output messages. | ||
# Defaults to true. | ||
#org.slf4j.simpleLogger.showLogName=true | ||
|
||
# Set to true if you want the last component of the name to be included in output messages. | ||
# Defaults to false. | ||
#org.slf4j.simpleLogger.showShortLogName=false |
5 changes: 5 additions & 0 deletions
5
...es/http-client-java/generator/http-client-generator-mgmt/src/main/resources/Changelog.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Release History | ||
|
||
## {{artifact-version}} ({{date-utc}}) | ||
|
||
- Azure Resource Manager {{service-name}} client library for Java. {{service-description}} |
33 changes: 33 additions & 0 deletions
33
...nerator/http-client-generator-mgmt/src/main/resources/Client_getLroFinalResultOrError.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
if (response.getStatus() != LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) { | ||
String errorMessage; | ||
ManagementError managementError = null; | ||
HttpResponse errorResponse = null; | ||
PollResult.Error lroError = response.getValue().getError(); | ||
if (lroError != null) { | ||
errorResponse = new HttpResponseImpl(lroError.getResponseStatusCode(), lroError.getResponseHeaders(), lroError.getResponseBody()); | ||
|
||
errorMessage = response.getValue().getError().getMessage(); | ||
String errorBody = response.getValue().getError().getResponseBody(); | ||
if (errorBody != null) { | ||
// try to deserialize error body to ManagementError | ||
try { | ||
managementError = this.getSerializerAdapter().deserialize(errorBody, ManagementError.class, SerializerEncoding.JSON); | ||
if (managementError.getCode() == null || managementError.getMessage() == null) { | ||
managementError = null; | ||
} | ||
} catch (IOException | RuntimeException ioe) { | ||
LOGGER.logThrowableAsWarning(ioe); | ||
} | ||
} | ||
} else { | ||
// fallback to default error message | ||
errorMessage = "Long running operation failed."; | ||
} | ||
if (managementError == null) { | ||
// fallback to default ManagementError | ||
managementError = new ManagementError(response.getStatus().toString(), errorMessage); | ||
} | ||
return Mono.error(new ManagementException(errorMessage, errorResponse, managementError)); | ||
} else { | ||
return response.getFinalResult(); | ||
} |
162 changes: 162 additions & 0 deletions
162
...ent-java/generator/http-client-generator-mgmt/src/main/resources/Manager_Configurable.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
/** | ||
* The Configurable allowing configurations to be set. | ||
*/ | ||
public static final class Configurable { | ||
private static final ClientLogger LOGGER = new ClientLogger(Configurable.class); | ||
|
||
private HttpClient httpClient; | ||
private HttpLogOptions httpLogOptions; | ||
private final List<HttpPipelinePolicy> policies = new ArrayList<>(); | ||
private final List<String> scopes = new ArrayList<>(); | ||
private RetryPolicy retryPolicy; | ||
private RetryOptions retryOptions; | ||
private Duration defaultPollInterval; | ||
|
||
private Configurable() { | ||
} | ||
|
||
/** | ||
* Sets the http client. | ||
* | ||
* @param httpClient the HTTP client. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withHttpClient(HttpClient httpClient) { | ||
this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the logging options to the HTTP pipeline. | ||
* | ||
* @param httpLogOptions the HTTP log options. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withLogOptions(HttpLogOptions httpLogOptions) { | ||
this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Adds the pipeline policy to the HTTP pipeline. | ||
* | ||
* @param policy the HTTP pipeline policy. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withPolicy(HttpPipelinePolicy policy) { | ||
this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null.")); | ||
return this; | ||
} | ||
|
||
/** | ||
* Adds the scope to permission sets. | ||
* | ||
* @param scope the scope. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withScope(String scope) { | ||
this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null.")); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the retry policy to the HTTP pipeline. | ||
* | ||
* @param retryPolicy the HTTP pipeline retry policy. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withRetryPolicy(RetryPolicy retryPolicy) { | ||
this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the retry options for the HTTP pipeline retry policy. | ||
* <p> | ||
* This setting has no effect, if retry policy is set via {@link #withRetryPolicy(RetryPolicy)}. | ||
* | ||
* @param retryOptions the retry options for the HTTP pipeline retry policy. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withRetryOptions(RetryOptions retryOptions) { | ||
this.retryOptions = Objects.requireNonNull(retryOptions, "'retryOptions' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the default poll interval, used when service does not provide "Retry-After" header. | ||
* | ||
* @param defaultPollInterval the default poll interval. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withDefaultPollInterval(Duration defaultPollInterval) { | ||
this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'defaultPollInterval' cannot be null."); | ||
if (this.defaultPollInterval.isNegative()) { | ||
throw LOGGER.logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative")); | ||
} | ||
return this; | ||
} | ||
|
||
/** | ||
* Creates an instance of {{service-name}} service API entry point. | ||
* | ||
* @param credential the credential to use. | ||
* @param profile the Azure profile for client. | ||
* @return the {{service-name}} service API instance. | ||
*/ | ||
public {{manager-class}} authenticate(TokenCredential credential, AzureProfile profile) { | ||
Objects.requireNonNull(credential, "'credential' cannot be null."); | ||
Objects.requireNonNull(profile, "'profile' cannot be null."); | ||
|
||
StringBuilder userAgentBuilder = new StringBuilder(); | ||
userAgentBuilder.append("azsdk-java") | ||
.append("-") | ||
.append("{{package-name}}") | ||
.append("/") | ||
.append("{{artifact-version}}"); | ||
if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) { | ||
userAgentBuilder.append(" (") | ||
.append(Configuration.getGlobalConfiguration().get("java.version")) | ||
.append("; ") | ||
.append(Configuration.getGlobalConfiguration().get("os.name")) | ||
.append("; ") | ||
.append(Configuration.getGlobalConfiguration().get("os.version")) | ||
.append("; auto-generated)"); | ||
} else { | ||
userAgentBuilder.append(" (auto-generated)"); | ||
} | ||
|
||
if (scopes.isEmpty()) { | ||
scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default"); | ||
} | ||
if (retryPolicy == null) { | ||
if (retryOptions != null) { | ||
retryPolicy = new RetryPolicy(retryOptions); | ||
} else { | ||
retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS); | ||
} | ||
} | ||
List<HttpPipelinePolicy> policies = new ArrayList<>(); | ||
policies.add(new UserAgentPolicy(userAgentBuilder.toString())); | ||
policies.add(new AddHeadersFromContextPolicy()); | ||
policies.add(new RequestIdPolicy()); | ||
policies.addAll( | ||
this.policies.stream() | ||
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL) | ||
.collect(Collectors.toList())); | ||
HttpPolicyProviders.addBeforeRetryPolicies(policies); | ||
policies.add(retryPolicy); | ||
policies.add(new AddDatePolicy()); | ||
policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0]))); | ||
policies.addAll( | ||
this.policies.stream() | ||
.filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY) | ||
.collect(Collectors.toList())); | ||
HttpPolicyProviders.addAfterRetryPolicies(policies); | ||
policies.add(new HttpLoggingPolicy(httpLogOptions)); | ||
HttpPipeline httpPipeline = new HttpPipelineBuilder() | ||
.httpClient(httpClient) | ||
.policies(policies.toArray(new HttpPipelinePolicy[0])).build(); | ||
return new {{manager-class}}(httpPipeline, profile, defaultPollInterval); | ||
} | ||
} |
Oops, something went wrong.