From 15efd85b28a76421e60a7ac771008147e0f62c67 Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Sat, 28 Feb 2026 17:24:19 +0800 Subject: [PATCH 01/15] update core --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index e46bb79faf..5a7deafc2c 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit e46bb79fafe2e98982ce5f785dbe1974c0209307 +Subproject commit 5a7deafc2ccfef66a9171c2da7422bc738ec8b36 From 81ee90db99aa5c7f85354d8e95c3c2ef009bdedd Mon Sep 17 00:00:00 2001 From: XiaofeiCao Date: Mon, 2 Mar 2026 11:44:48 +0800 Subject: [PATCH 02/15] check-in generated sample code for premium --- eng/sdk/sync_sdk.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/sdk/sync_sdk.py b/eng/sdk/sync_sdk.py index 7030f0cae7..2ad89d663b 100644 --- a/eng/sdk/sync_sdk.py +++ b/eng/sdk/sync_sdk.py @@ -172,7 +172,9 @@ def update_sdks(): cmd = ["git", "checkout", "src/test"] subprocess.check_call(cmd, cwd=module_path) - if not generated_samples_exists: + # For ARM module, we want to keep the generated samples code. + # For data-plane, if the generated samples/test code is not there before generation, we will delete the generated code after generation, to avoid unnecessary code check-in. + if not generated_samples_exists and not arm_module: shutil.rmtree(generated_samples_path, ignore_errors=True) if not generated_test_exists: shutil.rmtree(generated_test_path, ignore_errors=True) From 30eb9ee9763f44d15c9c2b4c4d92b967e0572724 Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Thu, 5 Mar 2026 12:16:11 +0800 Subject: [PATCH 03/15] try pin autorest version --- eng/pipelines/jobs/build-autorest-mgmt.yml | 2 +- eng/pipelines/variables/globals.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/jobs/build-autorest-mgmt.yml b/eng/pipelines/jobs/build-autorest-mgmt.yml index 894d6ed29a..f208d931c6 100644 --- a/eng/pipelines/jobs/build-autorest-mgmt.yml +++ b/eng/pipelines/jobs/build-autorest-mgmt.yml @@ -36,7 +36,7 @@ jobs: inputs: versionSpec: '$(NodeVersion)' - - script: npm install autorest -g + - script: npm install autorest@${AutorestVersion} -g - template: /eng/pipelines/steps/cache-maven-repository.yml parameters: diff --git a/eng/pipelines/variables/globals.yml b/eng/pipelines/variables/globals.yml index 1ac6949292..e03d00f765 100644 --- a/eng/pipelines/variables/globals.yml +++ b/eng/pipelines/variables/globals.yml @@ -1,6 +1,7 @@ variables: JavaVersion: '1.11' NodeVersion: '20.x' + AutorestVersion: '3.7.2' # Sets the Maven log level to either the LogLevel passed in the manual pipeline run or the default 'warn' MavenLogLevel: $[coalesce(variables['LogLevel'], 'warn')] From 10e076ef8eebf17debeb444b70c04a222c071dbd Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Thu, 5 Mar 2026 12:21:05 +0800 Subject: [PATCH 04/15] fix --- eng/pipelines/jobs/build-autorest-mgmt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/jobs/build-autorest-mgmt.yml b/eng/pipelines/jobs/build-autorest-mgmt.yml index f208d931c6..6153b4f3af 100644 --- a/eng/pipelines/jobs/build-autorest-mgmt.yml +++ b/eng/pipelines/jobs/build-autorest-mgmt.yml @@ -36,7 +36,7 @@ jobs: inputs: versionSpec: '$(NodeVersion)' - - script: npm install autorest@${AutorestVersion} -g + - script: npm install autorest@$(AutorestVersion) -g - template: /eng/pipelines/steps/cache-maven-repository.yml parameters: From 4b8665ca7536f5a834cfe8143200ee58e6b1b381 Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Thu, 5 Mar 2026 12:30:43 +0800 Subject: [PATCH 05/15] also fix autorest pipeline --- eng/pipelines/jobs/build-autorest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/jobs/build-autorest.yml b/eng/pipelines/jobs/build-autorest.yml index 1327f7e92c..c9346e28ff 100644 --- a/eng/pipelines/jobs/build-autorest.yml +++ b/eng/pipelines/jobs/build-autorest.yml @@ -54,7 +54,7 @@ jobs: publishJUnitResults: false - script: | - npm install -g autorest + npm install -g autorest@$(AutorestVersion) npm ci displayName: 'Prepare Environment for Generation' From da7a11b7edb977a7cf91f0d0131fa6dd91811365 Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Thu, 5 Mar 2026 13:37:36 +0800 Subject: [PATCH 06/15] try failOnStderr --- eng/pipelines/jobs/build-autorest-mgmt.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/jobs/build-autorest-mgmt.yml b/eng/pipelines/jobs/build-autorest-mgmt.yml index 6153b4f3af..1c9f0a813b 100644 --- a/eng/pipelines/jobs/build-autorest-mgmt.yml +++ b/eng/pipelines/jobs/build-autorest-mgmt.yml @@ -36,7 +36,7 @@ jobs: inputs: versionSpec: '$(NodeVersion)' - - script: npm install autorest@$(AutorestVersion) -g + - script: npm install autorest -g - template: /eng/pipelines/steps/cache-maven-repository.yml parameters: @@ -60,6 +60,7 @@ jobs: pwsh: true filePath: fluent-tests/Initialize-Tests.ps1 workingDirectory: ./fluent-tests + failOnStderr: false - task: Maven@4 displayName: 'Run Tests' From 7a31f9bfac4b6110726bf1ddb086c82dc07c1437 Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Thu, 5 Mar 2026 13:48:15 +0800 Subject: [PATCH 07/15] Revert "try failOnStderr" This reverts commit da7a11b7edb977a7cf91f0d0131fa6dd91811365. --- eng/pipelines/jobs/build-autorest-mgmt.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/jobs/build-autorest-mgmt.yml b/eng/pipelines/jobs/build-autorest-mgmt.yml index 1c9f0a813b..6153b4f3af 100644 --- a/eng/pipelines/jobs/build-autorest-mgmt.yml +++ b/eng/pipelines/jobs/build-autorest-mgmt.yml @@ -36,7 +36,7 @@ jobs: inputs: versionSpec: '$(NodeVersion)' - - script: npm install autorest -g + - script: npm install autorest@$(AutorestVersion) -g - template: /eng/pipelines/steps/cache-maven-repository.yml parameters: @@ -60,7 +60,6 @@ jobs: pwsh: true filePath: fluent-tests/Initialize-Tests.ps1 workingDirectory: ./fluent-tests - failOnStderr: false - task: Maven@4 displayName: 'Run Tests' From 2c72ed1727c1750c34134057847f00804323cb37 Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 13:51:05 +0800 Subject: [PATCH 08/15] core on main --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 5a7deafc2c..97a3eb7f13 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 5a7deafc2ccfef66a9171c2da7422bc738ec8b36 +Subproject commit 97a3eb7f13c63650cb7d0a86290c2b00c35103ff From adaae23437d03aceace3fbf6792d4637aa901552 Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 14:53:15 +0800 Subject: [PATCH 09/15] prepare typespec-java 0.41.0 --- typespec-extension/changelog.md | 9 +++++++++ typespec-extension/package-lock.json | 4 ++-- typespec-extension/package.json | 2 +- typespec-tests/package.json | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/typespec-extension/changelog.md b/typespec-extension/changelog.md index 79d8b6714c..b164f053a4 100644 --- a/typespec-extension/changelog.md +++ b/typespec-extension/changelog.md @@ -1,5 +1,14 @@ # Release History +## 0.41.0 (2026-03-06) + +Compatible with compiler 1.9.0. + +- Supported DurationKnownEncoding.milliseconds. +- Supported apiVersions in metadata.json for multiple services. +- Premium examples now have separate entry points other than `AzureResourceManager`. +- Updated package dependencies to the latest versions. + ## 0.40.0 (2026-02-25) Compatible with compiler 1.9.0. diff --git a/typespec-extension/package-lock.json b/typespec-extension/package-lock.json index 2564aa7d27..3383828de7 100644 --- a/typespec-extension/package-lock.json +++ b/typespec-extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "@azure-tools/typespec-java", - "version": "0.40.0", + "version": "0.41.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@azure-tools/typespec-java", - "version": "0.40.0", + "version": "0.41.0", "license": "MIT", "dependencies": { "@autorest/codemodel": "~4.20.1", diff --git a/typespec-extension/package.json b/typespec-extension/package.json index f015dc4bb9..c4e21a41ab 100644 --- a/typespec-extension/package.json +++ b/typespec-extension/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-java", - "version": "0.40.0", + "version": "0.41.0", "description": "TypeSpec library for emitting Java client from the TypeSpec REST protocol binding", "keywords": [ "TypeSpec" diff --git a/typespec-tests/package.json b/typespec-tests/package.json index 09ff0cbf93..e3b8b3fc2d 100644 --- a/typespec-tests/package.json +++ b/typespec-tests/package.json @@ -13,7 +13,7 @@ "@typespec/spector": "0.1.0-alpha.23", "@typespec/http-specs": "0.1.0-alpha.32", "@azure-tools/azure-http-specs": "0.1.0-alpha.37", - "@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.40.0.tgz" + "@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.41.0.tgz" }, "devDependencies": { "@typespec/prettier-plugin-typespec": "^1.9.0", From 8addbbb818a74c838a075eb5f108b59c1492c8cd Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 14:54:59 +0800 Subject: [PATCH 10/15] prepare autorest.java 4.1.63 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20da5ce0f3..1022681ce5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@autorest/java", - "version": "4.1.62", + "version": "4.1.63", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@autorest/java", - "version": "4.1.62", + "version": "4.1.63", "license": "MIT", "devDependencies": { "@microsoft.azure/autorest.testserver": "3.3.50", diff --git a/package.json b/package.json index 4fd8e3cc94..857bd97ca1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@autorest/java", - "version": "4.1.62", + "version": "4.1.63", "description": "The Java extension for classic generators in AutoRest.", "scripts": { "autorest": "autorest", From 7583893e88a416e111200e2bfc14db40c98753ec Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 14:55:37 +0800 Subject: [PATCH 11/15] sync main --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 97a3eb7f13..6f07d5b6e5 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 97a3eb7f13c63650cb7d0a86290c2b00c35103ff +Subproject commit 6f07d5b6e585d8d152987810a8c183683b593534 From 6a9dbc826de7fdebc4a5e365844c0740c105a347 Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 14:58:26 +0800 Subject: [PATCH 12/15] sync tests --- .../encode/duration/HeaderAsyncClient.java | 25 +++--- .../java/encode/duration/HeaderClient.java | 24 ++--- .../encode/duration/PropertyAsyncClient.java | 8 +- .../java/encode/duration/PropertyClient.java | 8 +- .../encode/duration/QueryAsyncClient.java | 25 +++--- .../java/encode/duration/QueryClient.java | 24 ++--- .../duration/implementation/HeadersImpl.java | 88 +++++++++++-------- .../implementation/PropertiesImpl.java | 16 ++-- .../duration/implementation/QueriesImpl.java | 81 ++++++++++------- .../Float64MillisecondsDurationProperty.java | 17 ++-- ...loatMillisecondsDurationArrayProperty.java | 24 +++-- .../FloatMillisecondsDurationProperty.java | 17 ++-- ...illisecondsLargerUnitDurationProperty.java | 17 ++-- .../Int32MillisecondsDurationProperty.java | 21 +++-- ...illisecondsLargerUnitDurationProperty.java | 21 +++-- .../encode/duration/EncodeDurationTests.java | 59 +++++++++++++ 16 files changed, 304 insertions(+), 171 deletions(-) diff --git a/typespec-tests/src/main/java/encode/duration/HeaderAsyncClient.java b/typespec-tests/src/main/java/encode/duration/HeaderAsyncClient.java index 6d626edacb..08346f6dc9 100644 --- a/typespec-tests/src/main/java/encode/duration/HeaderAsyncClient.java +++ b/typespec-tests/src/main/java/encode/duration/HeaderAsyncClient.java @@ -187,7 +187,7 @@ public Mono> float64SecondsWithResponse(Duration duration, Reques */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponse(int duration, RequestOptions requestOptions) { + public Mono> int32MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponseAsync(duration, requestOptions); } @@ -204,7 +204,8 @@ public Mono> int32MillisecondsWithResponse(int duration, RequestO */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponse(int duration, RequestOptions requestOptions) { + public Mono> int32MillisecondsLargerUnitWithResponse(Duration duration, + RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponseAsync(duration, requestOptions); } @@ -221,7 +222,7 @@ public Mono> int32MillisecondsLargerUnitWithResponse(int duration */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Mono> floatMillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponseAsync(duration, requestOptions); } @@ -238,7 +239,7 @@ public Mono> floatMillisecondsWithResponse(double duration, Reque */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponse(double duration, + public Mono> floatMillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponseAsync(duration, requestOptions); } @@ -256,7 +257,7 @@ public Mono> floatMillisecondsLargerUnitWithResponse(double durat */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Mono> float64MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponseAsync(duration, requestOptions); } @@ -273,7 +274,7 @@ public Mono> float64MillisecondsWithResponse(double duration, Req */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponse(List duration, + public Mono> int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponseAsync(duration, requestOptions); } @@ -452,7 +453,7 @@ public Mono float64Seconds(Duration duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32Milliseconds(int duration) { + public Mono int32Milliseconds(Duration duration) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -472,7 +473,7 @@ public Mono int32Milliseconds(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsLargerUnit(int duration) { + public Mono int32MillisecondsLargerUnit(Duration duration) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsLargerUnitWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -492,7 +493,7 @@ public Mono int32MillisecondsLargerUnit(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMilliseconds(double duration) { + public Mono floatMilliseconds(Duration duration) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -512,7 +513,7 @@ public Mono floatMilliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMillisecondsLargerUnit(double duration) { + public Mono floatMillisecondsLargerUnit(Duration duration) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsLargerUnitWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -532,7 +533,7 @@ public Mono floatMillisecondsLargerUnit(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono float64Milliseconds(double duration) { + public Mono float64Milliseconds(Duration duration) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return float64MillisecondsWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); @@ -552,7 +553,7 @@ public Mono float64Milliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsArray(List duration) { + public Mono int32MillisecondsArray(List duration) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsArrayWithResponse(duration, requestOptions).flatMap(FluxUtil::toMono); diff --git a/typespec-tests/src/main/java/encode/duration/HeaderClient.java b/typespec-tests/src/main/java/encode/duration/HeaderClient.java index 710d085edc..41941b1c5b 100644 --- a/typespec-tests/src/main/java/encode/duration/HeaderClient.java +++ b/typespec-tests/src/main/java/encode/duration/HeaderClient.java @@ -185,7 +185,7 @@ public Response float64SecondsWithResponse(Duration duration, RequestOptio */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int duration, RequestOptions requestOptions) { + public Response int32MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponse(duration, requestOptions); } @@ -202,7 +202,7 @@ public Response int32MillisecondsWithResponse(int duration, RequestOptions */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int duration, RequestOptions requestOptions) { + public Response int32MillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponse(duration, requestOptions); } @@ -219,7 +219,7 @@ public Response int32MillisecondsLargerUnitWithResponse(int duration, Requ */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Response floatMillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponse(duration, requestOptions); } @@ -236,7 +236,7 @@ public Response floatMillisecondsWithResponse(double duration, RequestOpti */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double duration, RequestOptions requestOptions) { + public Response floatMillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponse(duration, requestOptions); } @@ -253,7 +253,7 @@ public Response floatMillisecondsLargerUnitWithResponse(double duration, R */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double duration, RequestOptions requestOptions) { + public Response float64MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponse(duration, requestOptions); } @@ -270,7 +270,7 @@ public Response float64MillisecondsWithResponse(double duration, RequestOp */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { + public Response int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponse(duration, requestOptions); } @@ -439,7 +439,7 @@ public void float64Seconds(Duration duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32Milliseconds(int duration) { + public void int32Milliseconds(Duration duration) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsWithResponse(duration, requestOptions).getValue(); @@ -458,7 +458,7 @@ public void int32Milliseconds(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsLargerUnit(int duration) { + public void int32MillisecondsLargerUnit(Duration duration) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsLargerUnitWithResponse(duration, requestOptions).getValue(); @@ -477,7 +477,7 @@ public void int32MillisecondsLargerUnit(int duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMilliseconds(double duration) { + public void floatMilliseconds(Duration duration) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsWithResponse(duration, requestOptions).getValue(); @@ -496,7 +496,7 @@ public void floatMilliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMillisecondsLargerUnit(double duration) { + public void floatMillisecondsLargerUnit(Duration duration) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsLargerUnitWithResponse(duration, requestOptions).getValue(); @@ -515,7 +515,7 @@ public void floatMillisecondsLargerUnit(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void float64Milliseconds(double duration) { + public void float64Milliseconds(Duration duration) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); float64MillisecondsWithResponse(duration, requestOptions).getValue(); @@ -534,7 +534,7 @@ public void float64Milliseconds(double duration) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsArray(List duration) { + public void int32MillisecondsArray(List duration) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsArrayWithResponse(duration, requestOptions).getValue(); diff --git a/typespec-tests/src/main/java/encode/duration/PropertyAsyncClient.java b/typespec-tests/src/main/java/encode/duration/PropertyAsyncClient.java index ddebcb7d99..17f4a7180e 100644 --- a/typespec-tests/src/main/java/encode/duration/PropertyAsyncClient.java +++ b/typespec-tests/src/main/java/encode/duration/PropertyAsyncClient.java @@ -238,7 +238,7 @@ public Mono> float64SecondsWithResponse(BinaryData body, Re *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -248,7 +248,7 @@ public Mono> float64SecondsWithResponse(BinaryData body, Re *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -501,7 +501,7 @@ public Mono> floatSecondsLargerUnitWithResponse(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -511,7 +511,7 @@ public Mono> floatSecondsLargerUnitWithResponse(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
diff --git a/typespec-tests/src/main/java/encode/duration/PropertyClient.java b/typespec-tests/src/main/java/encode/duration/PropertyClient.java index c175283374..39eadae545 100644 --- a/typespec-tests/src/main/java/encode/duration/PropertyClient.java +++ b/typespec-tests/src/main/java/encode/duration/PropertyClient.java @@ -236,7 +236,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -246,7 +246,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -496,7 +496,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -506,7 +506,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
diff --git a/typespec-tests/src/main/java/encode/duration/QueryAsyncClient.java b/typespec-tests/src/main/java/encode/duration/QueryAsyncClient.java index c376be68fe..02b1ee49de 100644 --- a/typespec-tests/src/main/java/encode/duration/QueryAsyncClient.java +++ b/typespec-tests/src/main/java/encode/duration/QueryAsyncClient.java @@ -170,7 +170,7 @@ public Mono> float64SecondsWithResponse(Duration input, RequestOp */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponse(int input, RequestOptions requestOptions) { + public Mono> int32MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponseAsync(input, requestOptions); } @@ -187,7 +187,7 @@ public Mono> int32MillisecondsWithResponse(int input, RequestOpti */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponse(int input, RequestOptions requestOptions) { + public Mono> int32MillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponseAsync(input, requestOptions); } @@ -204,7 +204,7 @@ public Mono> int32MillisecondsLargerUnitWithResponse(int input, R */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Mono> floatMillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponseAsync(input, requestOptions); } @@ -221,7 +221,7 @@ public Mono> floatMillisecondsWithResponse(double input, RequestO */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponse(double input, RequestOptions requestOptions) { + public Mono> floatMillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponseAsync(input, requestOptions); } @@ -238,7 +238,7 @@ public Mono> floatMillisecondsLargerUnitWithResponse(double input */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Mono> float64MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponseAsync(input, requestOptions); } @@ -272,7 +272,8 @@ public Mono> int32SecondsArrayWithResponse(List input, */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { + public Mono> int32MillisecondsArrayWithResponse(List input, + RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponseAsync(input, requestOptions); } @@ -430,7 +431,7 @@ public Mono float64Seconds(Duration input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32Milliseconds(int input) { + public Mono int32Milliseconds(Duration input) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -450,7 +451,7 @@ public Mono int32Milliseconds(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsLargerUnit(int input) { + public Mono int32MillisecondsLargerUnit(Duration input) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsLargerUnitWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -470,7 +471,7 @@ public Mono int32MillisecondsLargerUnit(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMilliseconds(double input) { + public Mono floatMilliseconds(Duration input) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -490,7 +491,7 @@ public Mono floatMilliseconds(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono floatMillisecondsLargerUnit(double input) { + public Mono floatMillisecondsLargerUnit(Duration input) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); return floatMillisecondsLargerUnitWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -510,7 +511,7 @@ public Mono floatMillisecondsLargerUnit(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono float64Milliseconds(double input) { + public Mono float64Milliseconds(Duration input) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); return float64MillisecondsWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); @@ -550,7 +551,7 @@ public Mono int32SecondsArray(List input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono int32MillisecondsArray(List input) { + public Mono int32MillisecondsArray(List input) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); return int32MillisecondsArrayWithResponse(input, requestOptions).flatMap(FluxUtil::toMono); diff --git a/typespec-tests/src/main/java/encode/duration/QueryClient.java b/typespec-tests/src/main/java/encode/duration/QueryClient.java index 1c68bee8ba..1a2f5812a4 100644 --- a/typespec-tests/src/main/java/encode/duration/QueryClient.java +++ b/typespec-tests/src/main/java/encode/duration/QueryClient.java @@ -168,7 +168,7 @@ public Response float64SecondsWithResponse(Duration input, RequestOptions */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int input, RequestOptions requestOptions) { + public Response int32MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsWithResponse(input, requestOptions); } @@ -185,7 +185,7 @@ public Response int32MillisecondsWithResponse(int input, RequestOptions re */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int input, RequestOptions requestOptions) { + public Response int32MillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsLargerUnitWithResponse(input, requestOptions); } @@ -202,7 +202,7 @@ public Response int32MillisecondsLargerUnitWithResponse(int input, Request */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Response floatMillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsWithResponse(input, requestOptions); } @@ -219,7 +219,7 @@ public Response floatMillisecondsWithResponse(double input, RequestOptions */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double input, RequestOptions requestOptions) { + public Response floatMillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.floatMillisecondsLargerUnitWithResponse(input, requestOptions); } @@ -236,7 +236,7 @@ public Response floatMillisecondsLargerUnitWithResponse(double input, Requ */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double input, RequestOptions requestOptions) { + public Response float64MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { return this.serviceClient.float64MillisecondsWithResponse(input, requestOptions); } @@ -270,7 +270,7 @@ public Response int32SecondsArrayWithResponse(List input, Reques */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { + public Response int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { return this.serviceClient.int32MillisecondsArrayWithResponse(input, requestOptions); } @@ -420,7 +420,7 @@ public void float64Seconds(Duration input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32Milliseconds(int input) { + public void int32Milliseconds(Duration input) { // Generated convenience method for int32MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsWithResponse(input, requestOptions).getValue(); @@ -439,7 +439,7 @@ public void int32Milliseconds(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsLargerUnit(int input) { + public void int32MillisecondsLargerUnit(Duration input) { // Generated convenience method for int32MillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsLargerUnitWithResponse(input, requestOptions).getValue(); @@ -458,7 +458,7 @@ public void int32MillisecondsLargerUnit(int input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMilliseconds(double input) { + public void floatMilliseconds(Duration input) { // Generated convenience method for floatMillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsWithResponse(input, requestOptions).getValue(); @@ -477,7 +477,7 @@ public void floatMilliseconds(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void floatMillisecondsLargerUnit(double input) { + public void floatMillisecondsLargerUnit(Duration input) { // Generated convenience method for floatMillisecondsLargerUnitWithResponse RequestOptions requestOptions = new RequestOptions(); floatMillisecondsLargerUnitWithResponse(input, requestOptions).getValue(); @@ -496,7 +496,7 @@ public void floatMillisecondsLargerUnit(double input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void float64Milliseconds(double input) { + public void float64Milliseconds(Duration input) { // Generated convenience method for float64MillisecondsWithResponse RequestOptions requestOptions = new RequestOptions(); float64MillisecondsWithResponse(input, requestOptions).getValue(); @@ -534,7 +534,7 @@ public void int32SecondsArray(List input) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void int32MillisecondsArray(List input) { + public void int32MillisecondsArray(List input) { // Generated convenience method for int32MillisecondsArrayWithResponse RequestOptions requestOptions = new RequestOptions(); int32MillisecondsArrayWithResponse(input, requestOptions).getValue(); diff --git a/typespec-tests/src/main/java/encode/duration/implementation/HeadersImpl.java b/typespec-tests/src/main/java/encode/duration/implementation/HeadersImpl.java index 78fc0f39e9..86581183ea 100644 --- a/typespec-tests/src/main/java/encode/duration/implementation/HeadersImpl.java +++ b/typespec-tests/src/main/java/encode/duration/implementation/HeadersImpl.java @@ -26,6 +26,7 @@ import com.azure.core.util.serializer.JacksonAdapter; import java.time.Duration; import java.util.List; +import java.util.stream.Collectors; import reactor.core.publisher.Mono; /** @@ -210,7 +211,7 @@ Response float64SecondsSync(@HostParam("endpoint") String endpoint, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/int32-milliseconds") @ExpectedResponses({ 204 }) @@ -219,7 +220,7 @@ Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/int32-milliseconds-larger-unit") @ExpectedResponses({ 204 }) @@ -228,7 +229,7 @@ Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/int32-milliseconds-larger-unit") @ExpectedResponses({ 204 }) @@ -237,7 +238,7 @@ Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String e @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response int32MillisecondsLargerUnitSync(@HostParam("endpoint") String endpoint, - @HeaderParam("duration") int duration, RequestOptions requestOptions, Context context); + @HeaderParam("duration") long duration, RequestOptions requestOptions, Context context); @Get("/encode/duration/header/float-milliseconds") @ExpectedResponses({ 204 }) @@ -606,9 +607,10 @@ public Response float64SecondsWithResponse(Duration duration, RequestOptio * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponseAsync(int duration, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.int32Milliseconds(this.client.getEndpoint(), duration, requestOptions, context)); + public Mono> int32MillisecondsWithResponseAsync(Duration duration, RequestOptions requestOptions) { + long durationConverted = duration.toMillis(); + return FluxUtil.withContext(context -> service.int32Milliseconds(this.client.getEndpoint(), durationConverted, + requestOptions, context)); } /** @@ -623,8 +625,10 @@ public Mono> int32MillisecondsWithResponseAsync(int duration, Req * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int duration, RequestOptions requestOptions) { - return service.int32MillisecondsSync(this.client.getEndpoint(), duration, requestOptions, Context.NONE); + public Response int32MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { + long durationConverted = duration.toMillis(); + return service.int32MillisecondsSync(this.client.getEndpoint(), durationConverted, requestOptions, + Context.NONE); } /** @@ -639,10 +643,11 @@ public Response int32MillisecondsWithResponse(int duration, RequestOptions * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponseAsync(int duration, + public Mono> int32MillisecondsLargerUnitWithResponseAsync(Duration duration, RequestOptions requestOptions) { - return FluxUtil.withContext(context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), duration, - requestOptions, context)); + long durationConverted = duration.toMillis(); + return FluxUtil.withContext(context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), + durationConverted, requestOptions, context)); } /** @@ -657,8 +662,9 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(int dur * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int duration, RequestOptions requestOptions) { - return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), duration, requestOptions, + public Response int32MillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { + long durationConverted = duration.toMillis(); + return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), durationConverted, requestOptions, Context.NONE); } @@ -674,9 +680,10 @@ public Response int32MillisecondsLargerUnitWithResponse(int duration, Requ * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponseAsync(double duration, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.floatMilliseconds(this.client.getEndpoint(), duration, requestOptions, context)); + public Mono> floatMillisecondsWithResponseAsync(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.floatMilliseconds(this.client.getEndpoint(), durationConverted, + requestOptions, context)); } /** @@ -691,8 +698,10 @@ public Mono> floatMillisecondsWithResponseAsync(double duration, * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double duration, RequestOptions requestOptions) { - return service.floatMillisecondsSync(this.client.getEndpoint(), duration, requestOptions, Context.NONE); + public Response floatMillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.floatMillisecondsSync(this.client.getEndpoint(), durationConverted, requestOptions, + Context.NONE); } /** @@ -707,10 +716,11 @@ public Response floatMillisecondsWithResponse(double duration, RequestOpti * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponseAsync(double duration, + public Mono> floatMillisecondsLargerUnitWithResponseAsync(Duration duration, RequestOptions requestOptions) { - return FluxUtil.withContext(context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), duration, - requestOptions, context)); + double durationConverted = (double) duration.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), + durationConverted, requestOptions, context)); } /** @@ -725,8 +735,9 @@ public Mono> floatMillisecondsLargerUnitWithResponseAsync(double * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double duration, RequestOptions requestOptions) { - return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), duration, requestOptions, + public Response floatMillisecondsLargerUnitWithResponse(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), durationConverted, requestOptions, Context.NONE); } @@ -742,9 +753,10 @@ public Response floatMillisecondsLargerUnitWithResponse(double duration, R * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponseAsync(double duration, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.float64Milliseconds(this.client.getEndpoint(), duration, requestOptions, context)); + public Mono> float64MillisecondsWithResponseAsync(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.float64Milliseconds(this.client.getEndpoint(), durationConverted, + requestOptions, context)); } /** @@ -759,8 +771,10 @@ public Mono> float64MillisecondsWithResponseAsync(double duration * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double duration, RequestOptions requestOptions) { - return service.float64MillisecondsSync(this.client.getEndpoint(), duration, requestOptions, Context.NONE); + public Response float64MillisecondsWithResponse(Duration duration, RequestOptions requestOptions) { + double durationConverted = (double) duration.toNanos() / 1000_000L; + return service.float64MillisecondsSync(this.client.getEndpoint(), durationConverted, requestOptions, + Context.NONE); } /** @@ -775,10 +789,12 @@ public Response float64MillisecondsWithResponse(double duration, RequestOp * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponseAsync(List duration, + public Mono> int32MillisecondsArrayWithResponseAsync(List duration, RequestOptions requestOptions) { - String durationConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(duration, CollectionFormat.CSV); + String durationConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + duration.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return FluxUtil.withContext(context -> service.int32MillisecondsArray(this.client.getEndpoint(), durationConverted, requestOptions, context)); } @@ -795,9 +811,11 @@ public Mono> int32MillisecondsArrayWithResponseAsync(List int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { - String durationConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(duration, CollectionFormat.CSV); + public Response int32MillisecondsArrayWithResponse(List duration, RequestOptions requestOptions) { + String durationConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + duration.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return service.int32MillisecondsArraySync(this.client.getEndpoint(), durationConverted, requestOptions, Context.NONE); } diff --git a/typespec-tests/src/main/java/encode/duration/implementation/PropertiesImpl.java b/typespec-tests/src/main/java/encode/duration/implementation/PropertiesImpl.java index b727b536a7..0733e08920 100644 --- a/typespec-tests/src/main/java/encode/duration/implementation/PropertiesImpl.java +++ b/typespec-tests/src/main/java/encode/duration/implementation/PropertiesImpl.java @@ -725,7 +725,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -735,7 +735,7 @@ public Response float64SecondsWithResponse(BinaryData body, RequestO *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -764,7 +764,7 @@ public Mono> int32MillisecondsWithResponseAsync(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -774,7 +774,7 @@ public Mono> int32MillisecondsWithResponseAsync(BinaryData *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1280,7 +1280,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1290,7 +1290,7 @@ public Response floatSecondsLargerUnitWithResponse(BinaryData body, *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1319,7 +1319,7 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(B *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
@@ -1329,7 +1329,7 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(B *
      * {@code
      * {
-     *     value: int (Required)
+     *     value: long (Required)
      * }
      * }
      * 
diff --git a/typespec-tests/src/main/java/encode/duration/implementation/QueriesImpl.java b/typespec-tests/src/main/java/encode/duration/implementation/QueriesImpl.java index 3a46e23b7a..476f3f5bb7 100644 --- a/typespec-tests/src/main/java/encode/duration/implementation/QueriesImpl.java +++ b/typespec-tests/src/main/java/encode/duration/implementation/QueriesImpl.java @@ -192,7 +192,7 @@ Response float64SecondsSync(@HostParam("endpoint") String endpoint, @Query @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) - Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryParam("input") int input, + Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/int32-milliseconds") @@ -201,7 +201,7 @@ Mono> int32Milliseconds(@HostParam("endpoint") String endpoint, @ @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) - Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @QueryParam("input") int input, + Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/int32-milliseconds-larger-unit") @@ -211,7 +211,7 @@ Response int32MillisecondsSync(@HostParam("endpoint") String endpoint, @Qu @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String endpoint, - @QueryParam("input") int input, RequestOptions requestOptions, Context context); + @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/int32-milliseconds-larger-unit") @ExpectedResponses({ 204 }) @@ -220,7 +220,7 @@ Mono> int32MillisecondsLargerUnit(@HostParam("endpoint") String e @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response int32MillisecondsLargerUnitSync(@HostParam("endpoint") String endpoint, - @QueryParam("input") int input, RequestOptions requestOptions, Context context); + @QueryParam("input") long input, RequestOptions requestOptions, Context context); @Get("/encode/duration/query/float-milliseconds") @ExpectedResponses({ 204 }) @@ -568,9 +568,10 @@ public Response float64SecondsWithResponse(Duration input, RequestOptions * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsWithResponseAsync(int input, RequestOptions requestOptions) { + public Mono> int32MillisecondsWithResponseAsync(Duration input, RequestOptions requestOptions) { + long inputConverted = input.toMillis(); return FluxUtil.withContext( - context -> service.int32Milliseconds(this.client.getEndpoint(), input, requestOptions, context)); + context -> service.int32Milliseconds(this.client.getEndpoint(), inputConverted, requestOptions, context)); } /** @@ -585,8 +586,9 @@ public Mono> int32MillisecondsWithResponseAsync(int input, Reques * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsWithResponse(int input, RequestOptions requestOptions) { - return service.int32MillisecondsSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response int32MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { + long inputConverted = input.toMillis(); + return service.int32MillisecondsSync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } /** @@ -601,9 +603,11 @@ public Response int32MillisecondsWithResponse(int input, RequestOptions re * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsLargerUnitWithResponseAsync(int input, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), input, requestOptions, context)); + public Mono> int32MillisecondsLargerUnitWithResponseAsync(Duration input, + RequestOptions requestOptions) { + long inputConverted = input.toMillis(); + return FluxUtil.withContext(context -> service.int32MillisecondsLargerUnit(this.client.getEndpoint(), + inputConverted, requestOptions, context)); } /** @@ -618,8 +622,10 @@ public Mono> int32MillisecondsLargerUnitWithResponseAsync(int inp * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response int32MillisecondsLargerUnitWithResponse(int input, RequestOptions requestOptions) { - return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response int32MillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { + long inputConverted = input.toMillis(); + return service.int32MillisecondsLargerUnitSync(this.client.getEndpoint(), inputConverted, requestOptions, + Context.NONE); } /** @@ -634,9 +640,10 @@ public Response int32MillisecondsLargerUnitWithResponse(int input, Request * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsWithResponseAsync(double input, RequestOptions requestOptions) { + public Mono> floatMillisecondsWithResponseAsync(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; return FluxUtil.withContext( - context -> service.floatMilliseconds(this.client.getEndpoint(), input, requestOptions, context)); + context -> service.floatMilliseconds(this.client.getEndpoint(), inputConverted, requestOptions, context)); } /** @@ -651,8 +658,9 @@ public Mono> floatMillisecondsWithResponseAsync(double input, Req * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsWithResponse(double input, RequestOptions requestOptions) { - return service.floatMillisecondsSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response floatMillisecondsWithResponse(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.floatMillisecondsSync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } /** @@ -667,10 +675,11 @@ public Response floatMillisecondsWithResponse(double input, RequestOptions * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> floatMillisecondsLargerUnitWithResponseAsync(double input, + public Mono> floatMillisecondsLargerUnitWithResponseAsync(Duration input, RequestOptions requestOptions) { - return FluxUtil.withContext( - context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), input, requestOptions, context)); + double inputConverted = (double) input.toNanos() / 1000_000L; + return FluxUtil.withContext(context -> service.floatMillisecondsLargerUnit(this.client.getEndpoint(), + inputConverted, requestOptions, context)); } /** @@ -685,8 +694,10 @@ public Mono> floatMillisecondsLargerUnitWithResponseAsync(double * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response floatMillisecondsLargerUnitWithResponse(double input, RequestOptions requestOptions) { - return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response floatMillisecondsLargerUnitWithResponse(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.floatMillisecondsLargerUnitSync(this.client.getEndpoint(), inputConverted, requestOptions, + Context.NONE); } /** @@ -701,9 +712,10 @@ public Response floatMillisecondsLargerUnitWithResponse(double input, Requ * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> float64MillisecondsWithResponseAsync(double input, RequestOptions requestOptions) { + public Mono> float64MillisecondsWithResponseAsync(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; return FluxUtil.withContext( - context -> service.float64Milliseconds(this.client.getEndpoint(), input, requestOptions, context)); + context -> service.float64Milliseconds(this.client.getEndpoint(), inputConverted, requestOptions, context)); } /** @@ -718,8 +730,9 @@ public Mono> float64MillisecondsWithResponseAsync(double input, R * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response float64MillisecondsWithResponse(double input, RequestOptions requestOptions) { - return service.float64MillisecondsSync(this.client.getEndpoint(), input, requestOptions, Context.NONE); + public Response float64MillisecondsWithResponse(Duration input, RequestOptions requestOptions) { + double inputConverted = (double) input.toNanos() / 1000_000L; + return service.float64MillisecondsSync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } /** @@ -776,10 +789,12 @@ public Response int32SecondsArrayWithResponse(List input, Reques * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> int32MillisecondsArrayWithResponseAsync(List input, + public Mono> int32MillisecondsArrayWithResponseAsync(List input, RequestOptions requestOptions) { - String inputConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(input, CollectionFormat.CSV); + String inputConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + input.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return FluxUtil.withContext(context -> service.int32MillisecondsArray(this.client.getEndpoint(), inputConverted, requestOptions, context)); } @@ -796,9 +811,11 @@ public Mono> int32MillisecondsArrayWithResponseAsync(List int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { - String inputConverted - = JacksonAdapter.createDefaultSerializerAdapter().serializeIterable(input, CollectionFormat.CSV); + public Response int32MillisecondsArrayWithResponse(List input, RequestOptions requestOptions) { + String inputConverted = JacksonAdapter.createDefaultSerializerAdapter() + .serializeIterable( + input.stream().map(paramItemValue -> paramItemValue.toMillis()).collect(Collectors.toList()), + CollectionFormat.CSV); return service.int32MillisecondsArraySync(this.client.getEndpoint(), inputConverted, requestOptions, Context.NONE); } diff --git a/typespec-tests/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java b/typespec-tests/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java index 5a6aa75879..b72035fa61 100644 --- a/typespec-tests/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java +++ b/typespec-tests/src/main/java/encode/duration/property/models/Float64MillisecondsDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Float64MillisecondsDurationProperty model. @@ -30,8 +31,12 @@ public final class Float64MillisecondsDurationProperty * @param value the value value to set. */ @Generated - public Float64MillisecondsDurationProperty(double value) { - this.value = value; + public Float64MillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -40,8 +45,8 @@ public Float64MillisecondsDurationProperty(double value) { * @return the value value. */ @Generated - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -67,13 +72,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static Float64MillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java b/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java index aa77fd209a..1341181dfc 100644 --- a/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java +++ b/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationArrayProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; import java.util.List; /** @@ -31,8 +32,14 @@ public final class FloatMillisecondsDurationArrayProperty * @param value the value value to set. */ @Generated - public FloatMillisecondsDurationArrayProperty(List value) { - this.value = value; + public FloatMillisecondsDurationArrayProperty(List value) { + if (value == null) { + this.value = null; + } else { + this.value = value.stream() + .map(el -> (double) el.toNanos() / 1000_000L) + .collect(java.util.stream.Collectors.toList()); + } } /** @@ -41,8 +48,13 @@ public FloatMillisecondsDurationArrayProperty(List value) { * @return the value value. */ @Generated - public List getValue() { - return this.value; + public List getValue() { + if (this.value == null) { + return null; + } + return this.value.stream() + .map(el -> Duration.ofNanos((long) (el * 1000_000L))) + .collect(java.util.stream.Collectors.toList()); } /** @@ -68,13 +80,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static FloatMillisecondsDurationArrayProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - List value = null; + List value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.readArray(reader1 -> reader1.getDouble()); + value = reader.readArray(reader1 -> Duration.ofNanos((long) (reader1.getDouble() * 1000_000L))); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java b/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java index d40fbf62e9..cb4eac0de8 100644 --- a/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java +++ b/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The FloatMillisecondsDurationProperty model. @@ -29,8 +30,12 @@ public final class FloatMillisecondsDurationProperty implements JsonSerializable * @param value the value value to set. */ @Generated - public FloatMillisecondsDurationProperty(double value) { - this.value = value; + public FloatMillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -39,8 +44,8 @@ public FloatMillisecondsDurationProperty(double value) { * @return the value value. */ @Generated - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -66,13 +71,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static FloatMillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java b/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java index e98cf4026c..13d8ffb22d 100644 --- a/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java +++ b/typespec-tests/src/main/java/encode/duration/property/models/FloatMillisecondsLargerUnitDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The FloatMillisecondsLargerUnitDurationProperty model. @@ -30,8 +31,12 @@ public final class FloatMillisecondsLargerUnitDurationProperty * @param value the value value to set. */ @Generated - public FloatMillisecondsLargerUnitDurationProperty(double value) { - this.value = value; + public FloatMillisecondsLargerUnitDurationProperty(Duration value) { + if (value == null) { + this.value = 0.0; + } else { + this.value = (double) value.toNanos() / 1000_000L; + } } /** @@ -40,8 +45,8 @@ public FloatMillisecondsLargerUnitDurationProperty(double value) { * @return the value value. */ @Generated - public double getValue() { - return this.value; + public Duration getValue() { + return Duration.ofNanos((long) (this.value * 1000_000L)); } /** @@ -67,13 +72,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static FloatMillisecondsLargerUnitDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - double value = 0.0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getDouble(); + value = Duration.ofNanos((long) (reader.getDouble() * 1000_000L)); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java b/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java index d8130c569a..8c7d34072b 100644 --- a/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java +++ b/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Int32MillisecondsDurationProperty model. @@ -21,7 +22,7 @@ public final class Int32MillisecondsDurationProperty implements JsonSerializable * The value property. */ @Generated - private final int value; + private final long value; /** * Creates an instance of Int32MillisecondsDurationProperty class. @@ -29,8 +30,12 @@ public final class Int32MillisecondsDurationProperty implements JsonSerializable * @param value the value value to set. */ @Generated - public Int32MillisecondsDurationProperty(int value) { - this.value = value; + public Int32MillisecondsDurationProperty(Duration value) { + if (value == null) { + this.value = 0L; + } else { + this.value = value.toMillis(); + } } /** @@ -39,8 +44,8 @@ public Int32MillisecondsDurationProperty(int value) { * @return the value value. */ @Generated - public int getValue() { - return this.value; + public Duration getValue() { + return Duration.ofMillis(this.value); } /** @@ -50,7 +55,7 @@ public int getValue() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeIntField("value", this.value); + jsonWriter.writeLongField("value", this.value); return jsonWriter.writeEndObject(); } @@ -66,13 +71,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static Int32MillisecondsDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - int value = 0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getInt(); + value = Duration.ofMillis(reader.getLong()); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java b/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java index 9be4f62447..7f74132a55 100644 --- a/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java +++ b/typespec-tests/src/main/java/encode/duration/property/models/Int32MillisecondsLargerUnitDurationProperty.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * The Int32MillisecondsLargerUnitDurationProperty model. @@ -22,7 +23,7 @@ public final class Int32MillisecondsLargerUnitDurationProperty * The value property. */ @Generated - private final int value; + private final long value; /** * Creates an instance of Int32MillisecondsLargerUnitDurationProperty class. @@ -30,8 +31,12 @@ public final class Int32MillisecondsLargerUnitDurationProperty * @param value the value value to set. */ @Generated - public Int32MillisecondsLargerUnitDurationProperty(int value) { - this.value = value; + public Int32MillisecondsLargerUnitDurationProperty(Duration value) { + if (value == null) { + this.value = 0L; + } else { + this.value = value.toMillis(); + } } /** @@ -40,8 +45,8 @@ public Int32MillisecondsLargerUnitDurationProperty(int value) { * @return the value value. */ @Generated - public int getValue() { - return this.value; + public Duration getValue() { + return Duration.ofMillis(this.value); } /** @@ -51,7 +56,7 @@ public int getValue() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeIntField("value", this.value); + jsonWriter.writeLongField("value", this.value); return jsonWriter.writeEndObject(); } @@ -67,13 +72,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static Int32MillisecondsLargerUnitDurationProperty fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - int value = 0; + Duration value = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("value".equals(fieldName)) { - value = reader.getInt(); + value = Duration.ofMillis(reader.getLong()); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/test/java/encode/duration/EncodeDurationTests.java b/typespec-tests/src/test/java/encode/duration/EncodeDurationTests.java index ff829e46ea..04ab3573d8 100644 --- a/typespec-tests/src/test/java/encode/duration/EncodeDurationTests.java +++ b/typespec-tests/src/test/java/encode/duration/EncodeDurationTests.java @@ -4,10 +4,16 @@ package encode.duration; import encode.duration.property.models.DefaultDurationProperty; +import encode.duration.property.models.Float64MillisecondsDurationProperty; import encode.duration.property.models.Float64SecondsDurationProperty; +import encode.duration.property.models.FloatMillisecondsDurationArrayProperty; +import encode.duration.property.models.FloatMillisecondsDurationProperty; +import encode.duration.property.models.FloatMillisecondsLargerUnitDurationProperty; import encode.duration.property.models.FloatSecondsDurationArrayProperty; import encode.duration.property.models.FloatSecondsDurationProperty; import encode.duration.property.models.ISO8601DurationProperty; +import encode.duration.property.models.Int32MillisecondsDurationProperty; +import encode.duration.property.models.Int32MillisecondsLargerUnitDurationProperty; import encode.duration.property.models.Int32SecondsDurationProperty; import java.time.Duration; import java.util.Arrays; @@ -24,6 +30,8 @@ public class EncodeDurationTests { private static final Duration DAY40 = Duration.ofDays(40); private static final Duration SECOND35 = Duration.ofSeconds(35, 625_000_000); private static final Duration SECOND36 = Duration.ofSeconds(36); + private static final Duration MILLIS35625 = Duration.ofMillis(35625); + private static final Duration MILLIS36000 = Duration.ofMillis(36000); @Test public void testQuery() { @@ -38,6 +46,19 @@ public void testQuery() { queryClient.iso8601(DAY40); queryClient.int32SecondsArray(Arrays.asList(SECOND36, Duration.ofSeconds(47))); + + queryClient.int32Milliseconds(MILLIS36000); + + queryClient.int32MillisecondsLargerUnit(Duration.ofMinutes(3)); + +// TODO: floatMilliseconds/float64Milliseconds send 35625.0 instead of 35625 as query param +// queryClient.floatMilliseconds(MILLIS35625); +// +// queryClient.floatMillisecondsLargerUnit(Duration.ofMinutes(3).plusSeconds(30)); +// +// queryClient.float64Milliseconds(MILLIS35625); + + queryClient.int32MillisecondsArray(Arrays.asList(MILLIS36000, Duration.ofMillis(47000))); } @Test @@ -53,6 +74,19 @@ public void testHeader() { headerClient.iso8601(DAY40); headerClient.iso8601Array(Arrays.asList(DAY40, Duration.ofDays(50))); + + headerClient.int32Milliseconds(MILLIS36000); + + headerClient.int32MillisecondsLargerUnit(Duration.ofMinutes(3)); + +// TODO: floatMilliseconds/float64Milliseconds send 35625.0 instead of 35625 as header value +// headerClient.floatMilliseconds(MILLIS35625); +// +// headerClient.floatMillisecondsLargerUnit(Duration.ofMinutes(3).plusSeconds(30)); +// +// headerClient.float64Milliseconds(MILLIS35625); + + headerClient.int32MillisecondsArray(Arrays.asList(MILLIS36000, Duration.ofMillis(47000))); } @Test @@ -74,5 +108,30 @@ public void testProperty() { FloatSecondsDurationArrayProperty ret = propertyClient.floatSecondsArray(new FloatSecondsDurationArrayProperty(array)); Assertions.assertEquals(array, ret.getValue()); + + Assertions.assertEquals(MILLIS36000, + propertyClient.int32Milliseconds(new Int32MillisecondsDurationProperty(MILLIS36000)).getValue()); + + Assertions.assertEquals(MILLIS35625, + propertyClient.floatMilliseconds(new FloatMillisecondsDurationProperty(MILLIS35625)).getValue()); + + Assertions.assertEquals(MILLIS35625, + propertyClient.float64Milliseconds(new Float64MillisecondsDurationProperty(MILLIS35625)).getValue()); + + Assertions.assertEquals(Duration.ofMinutes(3), + propertyClient + .int32MillisecondsLargerUnit(new Int32MillisecondsLargerUnitDurationProperty(Duration.ofMinutes(3))) + .getValue()); + + Assertions.assertEquals(Duration.ofMinutes(3).plusSeconds(30), + propertyClient + .floatMillisecondsLargerUnit( + new FloatMillisecondsLargerUnitDurationProperty(Duration.ofMinutes(3).plusSeconds(30))) + .getValue()); + + List millisArray = Arrays.asList(Duration.ofMillis(35625), Duration.ofMillis(46750)); + FloatMillisecondsDurationArrayProperty millisArrayRet + = propertyClient.floatMillisecondsArray(new FloatMillisecondsDurationArrayProperty(millisArray)); + Assertions.assertEquals(millisArray, millisArrayRet.getValue()); } } From 49c7be40b271a8edfa26db9dca616005c4d0b6eb Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 15:05:43 +0800 Subject: [PATCH 13/15] audit fix --- typespec-extension/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/typespec-extension/package-lock.json b/typespec-extension/package-lock.json index 3383828de7..ea56eb3d46 100644 --- a/typespec-extension/package-lock.json +++ b/typespec-extension/package-lock.json @@ -7602,9 +7602,9 @@ } }, "node_modules/tar": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz", - "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.10.tgz", + "integrity": "sha512-8mOPs1//5q/rlkNSPcCegA6hiHJYDmSLEI8aMH/CdSQJNWztHC9WHNam5zdQlfpTwB9Xp7IBEsHfV5LKMJGVAw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { From 7e930fe9d5dce2af42121884290db9f8ca860295 Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 15:35:56 +0800 Subject: [PATCH 14/15] Update core submodule to latest upstream main --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 6f07d5b6e5..6d06117f98 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 6f07d5b6e585d8d152987810a8c183683b593534 +Subproject commit 6d06117f98cf0dd8f3450afb98c1916f5858e4c4 From 244e22904397169a268205ecbeb51f1a1f0922e0 Mon Sep 17 00:00:00 2001 From: "Xiaofei Cao (from Dev Box)" Date: Fri, 6 Mar 2026 15:38:55 +0800 Subject: [PATCH 15/15] Update Node.js packages for latest dependencies --- typespec-extension/package-lock.json | 8 ++++---- typespec-extension/package.json | 2 +- typespec-tests/package.json | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/typespec-extension/package-lock.json b/typespec-extension/package-lock.json index ea56eb3d46..710ae98572 100644 --- a/typespec-extension/package-lock.json +++ b/typespec-extension/package-lock.json @@ -24,7 +24,7 @@ "@microsoft/api-extractor": "^7.57.6", "@types/js-yaml": "~4.0.9", "@types/lodash": "~4.17.24", - "@types/node": "~25.3.2", + "@types/node": "~25.3.5", "@typescript-eslint/eslint-plugin": "~8.56.1", "@typescript-eslint/parser": "~8.56.1", "@typespec/compiler": "1.9.0", @@ -2372,9 +2372,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.2.tgz", - "integrity": "sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q==", + "version": "25.3.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.5.tgz", + "integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==", "dev": true, "license": "MIT", "peer": true, diff --git a/typespec-extension/package.json b/typespec-extension/package.json index c4e21a41ab..80158dad8d 100644 --- a/typespec-extension/package.json +++ b/typespec-extension/package.json @@ -78,7 +78,7 @@ "@microsoft/api-extractor": "^7.57.6", "@types/js-yaml": "~4.0.9", "@types/lodash": "~4.17.24", - "@types/node": "~25.3.2", + "@types/node": "~25.3.5", "@typescript-eslint/eslint-plugin": "~8.56.1", "@typescript-eslint/parser": "~8.56.1", "@typespec/compiler": "1.9.0", diff --git a/typespec-tests/package.json b/typespec-tests/package.json index e3b8b3fc2d..8cd3a11e83 100644 --- a/typespec-tests/package.json +++ b/typespec-tests/package.json @@ -22,7 +22,7 @@ }, "overrides": { "@typespec/compiler": "1.9.0", - "@typespec/http": "1.9.0", + "@typespec/http": "1.9.1", "@typespec/rest": "0.79.0", "@typespec/versioning": "0.79.0", "@typespec/openapi": "1.9.0", @@ -31,7 +31,7 @@ "@typespec/sse": "0.79.0", "@typespec/streams": "0.79.0", "@azure-tools/typespec-azure-core": "0.65.0", - "@azure-tools/typespec-client-generator-core": "0.65.3", + "@azure-tools/typespec-client-generator-core": "0.65.4", "@azure-tools/typespec-azure-resource-manager": "0.65.0", "@azure-tools/typespec-autorest": "0.65.0", "@azure-tools/typespec-liftr-base": "0.12.0"