Skip to content

Add model maximum overloads to Java clients - #11803

Merged
Weidong Xu (weidongxu-microsoft) merged 15 commits into
microsoft:mainfrom
weidongxu-microsoft:issue-10742-model-max-overload
Sep 2, 2026
Merged

Add model maximum overloads to Java clients#11803
Weidong Xu (weidongxu-microsoft) merged 15 commits into
microsoft:mainfrom
weidongxu-microsoft:issue-10742-model-max-overload

Conversation

@weidongxu-microsoft

@weidongxu-microsoft Weidong Xu (weidongxu-microsoft) commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Fixes the second part of #10742.

Summary

  • support the internal max-overload=model generator option for Azure Java clients
  • generate public strongly typed maximum WithResponse, pageable, and LRO overloads ending in RequestOptions
  • preserve advanced-versioning overloads while keeping protocol methods package-private
  • rename hidden protocol helpers to *Internal when protocol API generation is disabled
  • support typed response headers, void responses, multipart requests, and dependent header model types
  • avoid ServiceClient annotation name collisions

Testing

  • focused model-overload and sync-over-async reflection tests
  • data-plane E2E coverage for core, parameters, HEAD, and multipart scenarios
  • full generator-test suite: 802 passed, 32 skipped
  • Azure FileStorage generated main, test, and sample sources compiled successfully

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
…ax-overload

# Conflicts:
#	packages/http-client-java/generator/http-client-generator-test/Generate.ps1
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataAsyncClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataFileAsyncClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataFileClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsAsyncClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsContentTypeAsyncClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsContentTypeClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsNonStringAsyncClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsNonStringClient.java
#	packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/payload-multipart_metadata.json
#	packages/http-client-java/generator/http-client-generator-test/src/test/java/payload/multipart/MultipartTests.java
@microsoft-github-policy-service microsoft-github-policy-service Bot added the emitter:client:java Issue for the Java client emitter: @typespec/http-client-java label Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

All changed packages have been documented.

  • @typespec/http-client-java
Show changes

@typespec/http-client-java - feature ✏️

Add the max-overload: model option to generate maximum WithResponse overloads with strongly typed request and response models.

@azure-sdk-automation

azure-sdk-automation Bot commented Sep 1, 2026

Copy link
Copy Markdown

You can try these changes here

🛝 Playground 🌐 Website 🛝 VSCode Extension

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Add RequestOptions maximum overloads for pageable and LRO methods, including advanced-versioning signatures. Rename hidden protocol helpers when protocol API generation is disabled and cover signature collisions and sync-over-async delegation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Include the full generated client, metadata, and service-name conflict fixture output required by the Java regeneration checks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

ClientMapper.parseHeader uses JavaSettings.getInstance() instead of its settings parameter, which can yield incorrect behavior when settings aren’t truly global.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds support for generating “model maximum overloads” in the TypeSpec Java generator (Azure flavor) via a max-overload=model option, producing public strongly-typed max overloads while keeping protocol methods internal (renamed with *Internal), and extending coverage to headers-as-model, void responses, paging/LRO, multipart, and name-collision scenarios.

Changes:

  • Plumbs max-overload through emitter options into generator settings and adds JavaSettings.isModelMaxOverload().
  • Updates client/method naming and templates to generate public model max overloads and rename hidden protocol helpers to *Internal.
  • Adds new TypeSpec specs and JUnit tests (plus regenerated test outputs/metadata) to validate overload behavior, typed headers, paging/LRO, multipart, and ServiceClient name collisions.
File summaries
File Description
packages/http-client-java/generator/http-client-generator/src/test/java/com/microsoft/typespec/http/client/generator/model/EmitterOptionsTests.java Adds unit test coverage for parsing max-overload.
packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/TypeSpecPlugin.java Passes max-overload into the generator settings map.
packages/http-client-java/generator/http-client-generator/src/main/java/com/microsoft/typespec/http/client/generator/model/EmitterOptions.java Adds maxOverload option parsing and accessor.
packages/http-client-java/generator/http-client-generator-test/tsp/service-client-name-conflict.tsp New TypeSpec scenario validating ServiceClient annotation name collision handling.
packages/http-client-java/generator/http-client-generator-test/tsp/protocol-api-sync-over-async.tsp Extends sync-over-async protocol API scenario with pageable resource listing.
packages/http-client-java/generator/http-client-generator-test/tsp/max-overload-model.tsp New TypeSpec scenario to exercise model max overloads (WithResponse/pageable/LRO/headers/internal).
packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/serviceclientnameconflict/generated/ServiceClientNameConflictClientTestBase.java Generated test base for the service-client name conflict scenario.
packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/protocolapisyncoverasync/ProtocolApiSyncOverAsyncTests.java Adds reflection assertions for *Internal naming on list methods.
packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/maxoverloadmodel/MaxOverloadModelTests.java New reflection-based tests for model max overload generation and visibility rules.
packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/maxoverloadmodel/generated/MaxOverloadModelClientTestBase.java Generated test base for the max-overload-model scenario.
packages/http-client-java/generator/http-client-generator-test/src/test/java/payload/multipart/MultipartTests.java Updates multipart tests to validate strongly-typed WithResponse overloads returning Response<Void>.
packages/http-client-java/generator/http-client-generator-test/src/test/java/payload/head/HeadTests.java Updates HEAD tests to validate typed deserialized response headers via ResponseBase.
packages/http-client-java/generator/http-client-generator-test/src/test/java/parameters/basic/BasicClientTests.java Updates basic parameter tests to use typed WithResponse(..., RequestOptions) overloads.
packages/http-client-java/generator/http-client-generator-test/src/test/java/azure/core/basic/CoreTests.java Updates Azure Core basic tests to exercise typed WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/tsptest-serviceclientnameconflict.properties Adds test resource properties for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/tsptest-maxoverloadmodel.properties Adds test resource properties for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/tsptest-serviceclientnameconflict_metadata.json Adds generated metadata for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/tsptest-responseheaders_metadata.json Updates generated metadata after header-model related changes.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/tsptest-protocolapisyncoverasync_metadata.json Updates generated metadata to include new list operations/internal naming.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/tsptest-protocolandconvenient_metadata.json Updates generated metadata to reflect *Internal protocol helper renames.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/tsptest-maxoverloadmodel_metadata.json Adds generated metadata for max-overload-model scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/tsptest-internal_metadata.json Updates generated metadata after internal API/header model adjustments.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/payload-head_metadata.json Updates generated metadata to include internal WithResponse helpers and header models.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/parameters-basic_metadata.json Updates generated metadata to include internal WithResponse helpers.
packages/http-client-java/generator/http-client-generator-test/src/main/resources/META-INF/azure-core-basic_metadata.json Updates generated metadata to include internal WithResponse helpers and internal paging helpers.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/ServiceClientNameConflictClient.java Generated sync client validating ServiceClient name collision handling.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/ServiceClientNameConflictAsyncClient.java Generated async client validating ServiceClient name collision handling.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/ServiceClient.java Generated class named ServiceClient to exercise annotation import/name collision path.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/ServiceAsyncClient.java Generated async service client for name-collision scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/package-info.java Generated package docs for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/implementation/ServicesImpl.java Generated service operations impl for name-collision scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/implementation/ServiceClientNameConflictClientImpl.java Generated protocol client impl for name-collision scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/serviceclientnameconflict/implementation/package-info.java Generated implementation package docs for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolapisyncoverasync/ProtocolApiSyncOverAsyncClient.java Generated sync client with internal protocol helpers and typed pageable convenience.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolapisyncoverasync/ProtocolApiSyncOverAsyncAsyncClient.java Generated async client with internal protocol helpers and typed pageable convenience.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolapisyncoverasync/models/ResourceModel.java Generated model used by the new resource list scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolapisyncoverasync/implementation/ProtocolApiSyncOverAsyncClientImpl.java Generated impl adds pageable protocol operations and helpers.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolandconvenient/ProtocolAndConvenientClient.java Updates generated client to rename hidden protocol helpers to *Internal.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolandconvenient/ProtocolAndConvenientAsyncClient.java Updates generated async client to rename hidden protocol helpers to *Internal.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolandconvenient/implementation/ProtocolAndConvenienceOpsImpl.java Updates generated implementation to rename hidden protocol helpers to *Internal.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/package-info.java Generated package docs for new max-overload-model scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/ResponseModel.java Generated response model used by WithResponse overload tests.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/ResourceWithoutOptionsModel.java Generated model used for parameterless pageable overload tests.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/ResourceModel.java Generated resource model used across LRO/pageable scenarios.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/RequestStatus.java Generated enum used by typed header models.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/RequestModel.java Generated request model used by model max overload tests.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/package-info.java Generated model package docs for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/GetWithHeadersHeaders.java Generated typed headers model for response headers in convenience responses.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/models/GetResourceMetadataHeaders.java Generated typed headers model used as the response body for HEAD-with-typed-headers.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/MaxOverloadModelServiceVersion.java Generated service version enum for advanced versioning scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/implementation/SyncOperationLocationPollingStrategy.java Generated LRO polling helper used by max-overload-model scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/implementation/PollingUtils.java Generated polling helper utilities.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/implementation/package-info.java Generated implementation package docs for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/implementation/OperationLocationPollingStrategy.java Generated async polling helper used by max-overload-model scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/implementation/models/package-info.java Generated internal-model package docs for new scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/maxoverloadmodel/implementation/models/GetInternalHeadersHeaders.java Generated internal-only typed headers model for internal API operation.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsNonStringClient.java Updates generated multipart clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsNonStringAsyncClient.java Updates generated multipart async clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsContentTypeClient.java Updates generated multipart content-type clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsContentTypeAsyncClient.java Updates generated multipart content-type async clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsClient.java Updates generated multipart mixed-parts clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataHttpPartsAsyncClient.java Updates generated multipart mixed-parts async clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataFileClient.java Updates generated multipart file clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/multipart/FormDataFileAsyncClient.java Updates generated multipart file async clients to include typed max WithResponse overloads.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/head/models/package-info.java Adds generated model package docs for typed HEAD response headers.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/head/models/ContentTypeHeaderInResponseHeaders.java Adds generated typed headers model for HEAD response headers.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/head/implementation/HeadClientImpl.java Renames protocol helpers to *Internal for the HEAD scenario.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/head/HeadClient.java Generates internal protocol method and convenience method returning ResponseBase with deserialized headers.
packages/http-client-java/generator/http-client-generator-test/src/main/java/payload/head/HeadAsyncClient.java Async equivalent for internal protocol method + ResponseBase convenience response.
packages/http-client-java/generator/http-client-generator-test/src/main/java/parameters/basic/ImplicitBodyClient.java Generates internal protocol WithResponse and public typed max WithResponse overload.
packages/http-client-java/generator/http-client-generator-test/src/main/java/parameters/basic/ImplicitBodyAsyncClient.java Async equivalent for internal protocol WithResponse and typed max overload.
packages/http-client-java/generator/http-client-generator-test/src/main/java/parameters/basic/implementation/ImplicitBodiesImpl.java Renames protocol impl WithResponse methods to *Internal.
packages/http-client-java/generator/http-client-generator-test/src/main/java/parameters/basic/implementation/ExplicitBodiesImpl.java Renames protocol impl WithResponse methods to *Internal.
packages/http-client-java/generator/http-client-generator-test/src/main/java/parameters/basic/ExplicitBodyClient.java Generates internal protocol WithResponse and public typed max WithResponse overload.
packages/http-client-java/generator/http-client-generator-test/src/main/java/parameters/basic/ExplicitBodyAsyncClient.java Async equivalent for internal protocol WithResponse and typed max overload.
packages/http-client-java/generator/http-client-generator-test/src/main/java/azure/core/basic/implementation/BasicClientImpl.java Renames protocol WithResponse and paging helpers to *Internal.
packages/http-client-java/generator/http-client-generator-test/Generate.ps1 Enables max-overload=model for representative E2E scenarios and adds advanced-versioning case for new spec.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/util/MethodNamer.java Adds helpers for generating *Internal and internal async/LRO method names.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ServiceSyncClientTemplate.java Avoids ServiceClient annotation import collision by using fully-qualified annotation when needed.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceSyncMethodTemplate.java Adds wrapping logic for typed response headers, void responses, and ResponseBase value preservation.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceMethodTemplateBase.java Centralizes BinaryData conversion logic and ensures RequestOptions initialization when present.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ConvenienceAsyncMethodTemplate.java Adds async wrapping logic for typed response headers/ResponseBase/SimpleResponse conversions.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/ClientMethodTemplate.java Fixes paging sync delegation to call the correct async method name after internal renames.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ResponseTypeFactory.java Adjusts response type mapping for responseHeadersAsModel scenarios.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/ClientMapper.java Ensures typed header schemas are parsed/marked for generation for responseHeadersAsModel and model max overloads.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/clientcore/ClientCoreClientMethodMapper.java Aligns context-parameter mapping with updated base signature.
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/extension/plugin/JavaSettings.java Reads max-overload=model and exposes isModelMaxOverload().
packages/http-client-java/emitter/src/code-model-builder.ts Adds emitter option typing and logic to suppress public protocol API when max-overload=model for Azure v1 convenience APIs; tracks schema usage for typed header models.
.chronus/changes/http-client-java-model-max-overload-2026-09-01.md Adds changelog entry for the new max-overload: model feature.
Review details
  • Files reviewed: 98/100 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings September 2, 2026 03:05
@weidongxu-microsoft
Weidong Xu (weidongxu-microsoft) removed this pull request from the merge queue due to a manual request Sep 2, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new max-overload setting is written into a static mutable settings map without clearing when unset, which can leak configuration across generator runs in the same JVM.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 98/100 changed files
  • Comments generated: 1
  • Review effort level: Lite

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Copilot AI review requested due to automatic review settings September 2, 2026 04:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The change spans core emitter/generator mapping and multiple codegen templates with broad regenerated outputs, making subtle behavior regressions difficult to rule out automatically.

Review details
  • Files reviewed: 98/100 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e5dff7f2-5849-4374-b6b3-9c7177834a21
Copilot AI review requested due to automatic review settings September 2, 2026 04:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

It changes multiple core generator templates/mappers and refreshes many generated baselines across paging/LRO/multipart/typed-headers, which warrants final human review despite tests.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

packages/http-client-java/generator/http-client-generator-test/src/main/java/tsptest/protocolapisyncoverasync/ProtocolApiSyncOverAsyncClient.java:142

  • The sync list convenience method claims to be generated for listInternal, but it bypasses listInternal and delegates to the async client's list(...). This is inconsistent with other sync-over-async conveniences and makes the comment misleading. Prefer calling the local listInternal(...) and mapping BinaryData to ResourceModel on the sync side (same pattern used elsewhere via mapPage).
  • Files reviewed: 106/108 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Merged via the queue into microsoft:main with commit a325757 Sep 2, 2026
35 checks passed
@weidongxu-microsoft
Weidong Xu (weidongxu-microsoft) deleted the issue-10742-model-max-overload branch September 2, 2026 06:35
Weidong Xu (weidongxu-microsoft) added a commit to Azure/typespec-azure that referenced this pull request Sep 2, 2026
## Summary

- pin `@azure-tools/typespec-java` to merged microsoft/typespec commit
`a32575719`
- sync the Java fixtures and tests from microsoft/typespec#11803
- enable `max-overload=model` for representative data-plane and
versioning cases
- preserve the sync-over-async test configuration

## Validation

- `pnpm build && pnpm test`
- `pnpm -w format && pnpm -w lint`
- remote Java regeneration and Spector tests

---------

Copilot-Session: 4b7d9e20-102d-4966-bb3b-01535ed22c2b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

emitter:client:java Issue for the Java client emitter: @typespec/http-client-java

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants