diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/CHANGELOG.md b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/CHANGELOG.md index 9fd8fce98c86..03f81cbf0839 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/CHANGELOG.md +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/CHANGELOG.md @@ -1,7 +1,8 @@ # Release History -## 1.0.0-beta.2 (Unreleased) +## 1.0.0-beta.1 (2021-05-13) +- Azure Resource Manager SqlVirtualMachine client library for Java. This package contains Microsoft Azure SDK for SqlVirtualMachine Management SDK. The SQL virtual machine management API provides a RESTful set of web APIs that interact with Azure Compute, Network & Storage services to manage your SQL Server virtual machine. The API enables users to create, delete and retrieve a SQL virtual machine, SQL virtual machine group or availability group listener. Package tag package-2017-03-01-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). ## 1.0.0-beta.1 (2020-12-18) diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/README.md b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/README.md index 3b4d4d26ff20..a5db14c86a20 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/README.md +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/README.md @@ -4,6 +4,20 @@ Azure Resource Manager SqlVirtualMachine client library for Java. This package contains Microsoft Azure SDK for SqlVirtualMachine Management SDK. The SQL virtual machine management API provides a RESTful set of web APIs that interact with Azure Compute, Network & Storage services to manage your SQL Server virtual machine. The API enables users to create, delete and retrieve a SQL virtual machine, SQL virtual machine group or availability group listener. Package tag package-2017-03-01-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). +## We'd love to hear your feedback + +We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better. + +If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together. + +Thank you in advance for your collaboration. We really appreciate your time! + +## Documentation + +Various documentation is available to help you get started + +- [API reference documentation][docs] + ## Getting started ### Prerequisites @@ -18,7 +32,7 @@ This package contains Microsoft Azure SDK for SqlVirtualMachine Management SDK. com.azure.resourcemanager azure-resourcemanager-sqlvirtualmachine - 1.0.0-beta.1 + 1.0.0-beta.2 ``` [//]: # ({x-version-update-end}) @@ -75,6 +89,8 @@ For details on contributing to this repository, see the [contributing guide](htt 1. Create new Pull Request +[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS +[docs]: https://azure.github.io/azure-sdk-for-java/ [jdk]: https://docs.microsoft.com/java/azure/jdk/ [azure_subscription]: https://azure.microsoft.com/free/ [azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/pom.xml b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/pom.xml index 5ebbb54a52aa..5a66a1b4f863 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/pom.xml +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/pom.xml @@ -13,7 +13,7 @@ jar Microsoft Azure SDK for SqlVirtualMachine Management - This package contains Microsoft Azure SDK for SqlVirtualMachine Management SDK. The SQL virtual machine management API provides a RESTful set of web APIs that interact with Azure Compute, Network & Storage services to manage your SQL Server virtual machine. The API enables users to create, delete and retrieve a SQL virtual machine, SQL virtual machine group or availability group listener. Package tag package-2017-03-01-preview. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt + This package contains Microsoft Azure SDK for SqlVirtualMachine Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. The SQL virtual machine management API provides a RESTful set of web APIs that interact with Azure Compute, Network & Storage services to manage your SQL Server virtual machine. The API enables users to create, delete and retrieve a SQL virtual machine, SQL virtual machine group or availability group listener. Package tag package-2017-03-01-preview. https://github.com/Azure/azure-sdk-for-java @@ -41,6 +41,11 @@ + + com.azure + azure-core + 1.16.0 + com.azure azure-core-management diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/SqlVirtualMachineManager.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/SqlVirtualMachineManager.java index 1de090ec4187..76f52ee12cc8 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/SqlVirtualMachineManager.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/SqlVirtualMachineManager.java @@ -169,17 +169,31 @@ public SqlVirtualMachineManager authenticate(TokenCredential credential, AzurePr Objects.requireNonNull(credential, "'credential' cannot be null."); Objects.requireNonNull(profile, "'profile' cannot be null."); + StringBuilder userAgentBuilder = new StringBuilder(); + userAgentBuilder + .append("azsdk-java") + .append("-") + .append("com.azure.resourcemanager.sqlvirtualmachine") + .append("/") + .append("1.0.0-beta.1"); + if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) { + userAgentBuilder + .append(" (") + .append(Configuration.getGlobalConfiguration().get("java.version")) + .append("; ") + .append(Configuration.getGlobalConfiguration().get("os.name")) + .append("; ") + .append(Configuration.getGlobalConfiguration().get("os.version")) + .append("; auto-generated)"); + } else { + userAgentBuilder.append(" (auto-generated)"); + } + if (retryPolicy == null) { retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS); } List policies = new ArrayList<>(); - policies - .add( - new UserAgentPolicy( - null, - "com.azure.resourcemanager.sqlvirtualmachine", - "1.0.0-beta.1", - Configuration.getGlobalConfiguration())); + policies.add(new UserAgentPolicy(userAgentBuilder.toString())); policies.add(new RequestIdPolicy()); HttpPolicyProviders.addBeforeRetryPolicies(policies); policies.add(retryPolicy); @@ -188,6 +202,7 @@ public SqlVirtualMachineManager authenticate(TokenCredential credential, AzurePr .add( new BearerTokenAuthenticationPolicy( credential, profile.getEnvironment().getManagementEndpoint() + "/.default")); + policies.addAll(this.policies); HttpPolicyProviders.addAfterRetryPolicies(policies); policies.add(new HttpLoggingPolicy(httpLogOptions)); HttpPipeline httpPipeline = diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenerImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenerImpl.java index 0ad6e07df792..ad16cbaf4d54 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenerImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenerImpl.java @@ -5,7 +5,6 @@ package com.azure.resourcemanager.sqlvirtualmachine.implementation; import com.azure.core.util.Context; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.AvailabilityGroupListenerInner; import com.azure.resourcemanager.sqlvirtualmachine.models.AvailabilityGroupListener; import com.azure.resourcemanager.sqlvirtualmachine.models.LoadBalancerConfiguration; @@ -16,7 +15,7 @@ public final class AvailabilityGroupListenerImpl implements AvailabilityGroupListener, AvailabilityGroupListener.Definition, AvailabilityGroupListener.Update { private AvailabilityGroupListenerInner innerObject; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; public String id() { return this.innerModel().id(); @@ -59,7 +58,7 @@ public AvailabilityGroupListenerInner innerModel() { return this.innerObject; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } @@ -104,7 +103,8 @@ public AvailabilityGroupListener create(Context context) { return this; } - AvailabilityGroupListenerImpl(String name, SqlVirtualMachineManager serviceManager) { + AvailabilityGroupListenerImpl( + String name, com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = new AvailabilityGroupListenerInner(); this.serviceManager = serviceManager; this.availabilityGroupListenerName = name; @@ -142,7 +142,9 @@ public AvailabilityGroupListener apply(Context context) { return this; } - AvailabilityGroupListenerImpl(AvailabilityGroupListenerInner innerObject, SqlVirtualMachineManager serviceManager) { + AvailabilityGroupListenerImpl( + AvailabilityGroupListenerInner innerObject, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = innerObject; this.serviceManager = serviceManager; this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups"); diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersClientImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersClientImpl.java index 905d777e051d..2ee1b35a947c 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersClientImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersClientImpl.java @@ -203,7 +203,7 @@ private Mono> getWithResponseAsync( this.client.getApiVersion(), accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -402,7 +402,7 @@ private Mono>> createOrUpdateWithResponseAsync( parameters, accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -750,7 +750,7 @@ private Mono>> deleteWithResponseAsync( this.client.getSubscriptionId(), this.client.getApiVersion(), context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1044,7 +1044,7 @@ private Mono> listByGroupSinglePag res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1212,7 +1212,7 @@ private Mono> listByGroupNextSingl res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersImpl.java index a048f12a5d90..c20fe1391325 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/AvailabilityGroupListenersImpl.java @@ -9,7 +9,6 @@ import com.azure.core.http.rest.SimpleResponse; import com.azure.core.util.Context; import com.azure.core.util.logging.ClientLogger; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.AvailabilityGroupListenersClient; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.AvailabilityGroupListenerInner; import com.azure.resourcemanager.sqlvirtualmachine.models.AvailabilityGroupListener; @@ -21,10 +20,11 @@ public final class AvailabilityGroupListenersImpl implements AvailabilityGroupLi private final AvailabilityGroupListenersClient innerClient; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; public AvailabilityGroupListenersImpl( - AvailabilityGroupListenersClient innerClient, SqlVirtualMachineManager serviceManager) { + AvailabilityGroupListenersClient innerClient, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerClient = innerClient; this.serviceManager = serviceManager; } @@ -79,14 +79,14 @@ public PagedIterable listByGroup( String resourceGroupName, String sqlVirtualMachineGroupName) { PagedIterable inner = this.serviceClient().listByGroup(resourceGroupName, sqlVirtualMachineGroupName); - return inner.mapPage(inner1 -> new AvailabilityGroupListenerImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new AvailabilityGroupListenerImpl(inner1, this.manager())); } public PagedIterable listByGroup( String resourceGroupName, String sqlVirtualMachineGroupName, Context context) { PagedIterable inner = this.serviceClient().listByGroup(resourceGroupName, sqlVirtualMachineGroupName, context); - return inner.mapPage(inner1 -> new AvailabilityGroupListenerImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new AvailabilityGroupListenerImpl(inner1, this.manager())); } public AvailabilityGroupListener getById(String id) { @@ -224,7 +224,7 @@ private AvailabilityGroupListenersClient serviceClient() { return this.innerClient; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationImpl.java index b07b432f02d0..76e21d080079 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationImpl.java @@ -4,7 +4,6 @@ package com.azure.resourcemanager.sqlvirtualmachine.implementation; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.OperationInner; import com.azure.resourcemanager.sqlvirtualmachine.models.Operation; import com.azure.resourcemanager.sqlvirtualmachine.models.OperationDisplay; @@ -15,9 +14,11 @@ public final class OperationImpl implements Operation { private OperationInner innerObject; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; - OperationImpl(OperationInner innerObject, SqlVirtualMachineManager serviceManager) { + OperationImpl( + OperationInner innerObject, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = innerObject; this.serviceManager = serviceManager; } @@ -47,7 +48,7 @@ public OperationInner innerModel() { return this.innerObject; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } } diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsClientImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsClientImpl.java index 654073a4c460..15d584b8f56f 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsClientImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsClientImpl.java @@ -108,7 +108,7 @@ private Mono> listSinglePageAsync() { res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -228,7 +228,7 @@ private Mono> listNextSinglePageAsync(String nextL res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsImpl.java index 47d07859be46..ced421e7130e 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/OperationsImpl.java @@ -7,7 +7,6 @@ import com.azure.core.http.rest.PagedIterable; import com.azure.core.util.Context; import com.azure.core.util.logging.ClientLogger; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.OperationsClient; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.OperationInner; import com.azure.resourcemanager.sqlvirtualmachine.models.Operation; @@ -19,28 +18,30 @@ public final class OperationsImpl implements Operations { private final OperationsClient innerClient; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; - public OperationsImpl(OperationsClient innerClient, SqlVirtualMachineManager serviceManager) { + public OperationsImpl( + OperationsClient innerClient, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerClient = innerClient; this.serviceManager = serviceManager; } public PagedIterable list() { PagedIterable inner = this.serviceClient().list(); - return inner.mapPage(inner1 -> new OperationImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new OperationImpl(inner1, this.manager())); } public PagedIterable list(Context context) { PagedIterable inner = this.serviceClient().list(context); - return inner.mapPage(inner1 -> new OperationImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new OperationImpl(inner1, this.manager())); } private OperationsClient serviceClient() { return this.innerClient; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } } diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupImpl.java index bd8fddd82db4..129b35ffaa91 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupImpl.java @@ -6,7 +6,6 @@ import com.azure.core.management.Region; import com.azure.core.util.Context; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.SqlVirtualMachineGroupInner; import com.azure.resourcemanager.sqlvirtualmachine.models.ClusterConfiguration; import com.azure.resourcemanager.sqlvirtualmachine.models.ClusterManagerType; @@ -22,7 +21,7 @@ public final class SqlVirtualMachineGroupImpl implements SqlVirtualMachineGroup, SqlVirtualMachineGroup.Definition, SqlVirtualMachineGroup.Update { private SqlVirtualMachineGroupInner innerObject; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; public String id() { return this.innerModel().id(); @@ -89,7 +88,7 @@ public SqlVirtualMachineGroupInner innerModel() { return this.innerObject; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } @@ -122,7 +121,8 @@ public SqlVirtualMachineGroup create(Context context) { return this; } - SqlVirtualMachineGroupImpl(String name, SqlVirtualMachineManager serviceManager) { + SqlVirtualMachineGroupImpl( + String name, com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = new SqlVirtualMachineGroupInner(); this.serviceManager = serviceManager; this.sqlVirtualMachineGroupName = name; @@ -151,7 +151,9 @@ public SqlVirtualMachineGroup apply(Context context) { return this; } - SqlVirtualMachineGroupImpl(SqlVirtualMachineGroupInner innerObject, SqlVirtualMachineManager serviceManager) { + SqlVirtualMachineGroupImpl( + SqlVirtualMachineGroupInner innerObject, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = innerObject; this.serviceManager = serviceManager; this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups"); diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsClientImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsClientImpl.java index 59c50f5b5b9a..f7491aa87e51 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsClientImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsClientImpl.java @@ -226,7 +226,7 @@ private Mono> getByResourceGroupWithRespon this.client.getApiVersion(), accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -394,7 +394,7 @@ private Mono>> createOrUpdateWithResponseAsync( parameters, accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -688,7 +688,7 @@ private Mono>> deleteWithResponseAsync( this.client.getSubscriptionId(), this.client.getApiVersion(), context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -940,7 +940,7 @@ private Mono>> updateWithResponseAsync( parameters, accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1236,7 +1236,7 @@ private Mono> listByResourceGroupSing res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1397,7 +1397,7 @@ private Mono> listSinglePageAsync() { res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1529,7 +1529,7 @@ private Mono> listByResourceGroupNext res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1601,7 +1601,7 @@ private Mono> listNextSinglePageAsync res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsImpl.java index 0c821e5e441c..a8fe079458c6 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineGroupsImpl.java @@ -9,7 +9,6 @@ import com.azure.core.http.rest.SimpleResponse; import com.azure.core.util.Context; import com.azure.core.util.logging.ClientLogger; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.SqlVirtualMachineGroupsClient; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.SqlVirtualMachineGroupInner; import com.azure.resourcemanager.sqlvirtualmachine.models.SqlVirtualMachineGroup; @@ -21,10 +20,11 @@ public final class SqlVirtualMachineGroupsImpl implements SqlVirtualMachineGroup private final SqlVirtualMachineGroupsClient innerClient; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; public SqlVirtualMachineGroupsImpl( - SqlVirtualMachineGroupsClient innerClient, SqlVirtualMachineManager serviceManager) { + SqlVirtualMachineGroupsClient innerClient, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerClient = innerClient; this.serviceManager = serviceManager; } @@ -64,23 +64,23 @@ public void delete(String resourceGroupName, String sqlVirtualMachineGroupName, public PagedIterable listByResourceGroup(String resourceGroupName) { PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName); - return inner.mapPage(inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); } public PagedIterable listByResourceGroup(String resourceGroupName, Context context) { PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName, context); - return inner.mapPage(inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); } public PagedIterable list() { PagedIterable inner = this.serviceClient().list(); - return inner.mapPage(inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); } public PagedIterable list(Context context) { PagedIterable inner = this.serviceClient().list(context); - return inner.mapPage(inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineGroupImpl(inner1, this.manager())); } public SqlVirtualMachineGroup getById(String id) { @@ -177,7 +177,7 @@ private SqlVirtualMachineGroupsClient serviceClient() { return this.innerClient; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineImpl.java index 2b1ec596215c..00354d1635bc 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineImpl.java @@ -6,7 +6,6 @@ import com.azure.core.management.Region; import com.azure.core.util.Context; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.SqlVirtualMachineInner; import com.azure.resourcemanager.sqlvirtualmachine.models.AutoBackupSettings; import com.azure.resourcemanager.sqlvirtualmachine.models.AutoPatchingSettings; @@ -27,7 +26,7 @@ public final class SqlVirtualMachineImpl implements SqlVirtualMachine, SqlVirtualMachine.Definition, SqlVirtualMachine.Update { private SqlVirtualMachineInner innerObject; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; public String id() { return this.innerModel().id(); @@ -122,7 +121,7 @@ public SqlVirtualMachineInner innerModel() { return this.innerObject; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } @@ -155,7 +154,8 @@ public SqlVirtualMachine create(Context context) { return this; } - SqlVirtualMachineImpl(String name, SqlVirtualMachineManager serviceManager) { + SqlVirtualMachineImpl( + String name, com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = new SqlVirtualMachineInner(); this.serviceManager = serviceManager; this.sqlVirtualMachineName = name; @@ -184,7 +184,9 @@ public SqlVirtualMachine apply(Context context) { return this; } - SqlVirtualMachineImpl(SqlVirtualMachineInner innerObject, SqlVirtualMachineManager serviceManager) { + SqlVirtualMachineImpl( + SqlVirtualMachineInner innerObject, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerObject = innerObject; this.serviceManager = serviceManager; this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups"); diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineManagementClientImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineManagementClientImpl.java index b59727d19bee..e186e3ecd299 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineManagementClientImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachineManagementClientImpl.java @@ -272,7 +272,7 @@ public Mono getLroFinalResultOrError(AsyncPollResponse, if (managementError.getCode() == null || managementError.getMessage() == null) { managementError = null; } - } catch (IOException ioe) { + } catch (IOException | RuntimeException ioe) { logger.logThrowableAsWarning(ioe); } } @@ -301,7 +301,7 @@ private static final class HttpResponseImpl extends HttpResponse { super(null); this.statusCode = statusCode; this.httpHeaders = httpHeaders; - this.responseBody = responseBody.getBytes(StandardCharsets.UTF_8); + this.responseBody = responseBody == null ? null : responseBody.getBytes(StandardCharsets.UTF_8); } public int getStatusCode() { diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesClientImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesClientImpl.java index 53aeffcbd1c9..52d530517cee 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesClientImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesClientImpl.java @@ -260,7 +260,7 @@ private Mono> listBySqlVmGroupSinglePageAs res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -437,7 +437,7 @@ private Mono> listSinglePageAsync() { res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -585,7 +585,7 @@ private Mono> getByResourceGroupWithResponseAsy this.client.getApiVersion(), accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -780,7 +780,7 @@ private Mono>> createOrUpdateWithResponseAsync( parameters, accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1054,7 +1054,7 @@ private Mono>> deleteWithResponseAsync( this.client.getSubscriptionId(), this.client.getApiVersion(), context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1302,7 +1302,7 @@ private Mono>> updateWithResponseAsync( parameters, accept, context)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1580,7 +1580,7 @@ private Mono> listByResourceGroupSinglePag res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1732,7 +1732,7 @@ private Mono> listBySqlVmGroupNextSinglePa res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1804,7 +1804,7 @@ private Mono> listNextSinglePageAsync(Stri res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** @@ -1876,7 +1876,7 @@ private Mono> listByResourceGroupNextSingl res.getValue().value(), res.getValue().nextLink(), null)) - .subscriberContext(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()))); + .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly())); } /** diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesImpl.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesImpl.java index e6dca143477f..1a29b7d2f35b 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesImpl.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/SqlVirtualMachinesImpl.java @@ -9,7 +9,6 @@ import com.azure.core.http.rest.SimpleResponse; import com.azure.core.util.Context; import com.azure.core.util.logging.ClientLogger; -import com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager; import com.azure.resourcemanager.sqlvirtualmachine.fluent.SqlVirtualMachinesClient; import com.azure.resourcemanager.sqlvirtualmachine.fluent.models.SqlVirtualMachineInner; import com.azure.resourcemanager.sqlvirtualmachine.models.SqlVirtualMachine; @@ -21,9 +20,11 @@ public final class SqlVirtualMachinesImpl implements SqlVirtualMachines { private final SqlVirtualMachinesClient innerClient; - private final SqlVirtualMachineManager serviceManager; + private final com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager; - public SqlVirtualMachinesImpl(SqlVirtualMachinesClient innerClient, SqlVirtualMachineManager serviceManager) { + public SqlVirtualMachinesImpl( + SqlVirtualMachinesClient innerClient, + com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager serviceManager) { this.innerClient = innerClient; this.serviceManager = serviceManager; } @@ -32,24 +33,24 @@ public PagedIterable listBySqlVmGroup( String resourceGroupName, String sqlVirtualMachineGroupName) { PagedIterable inner = this.serviceClient().listBySqlVmGroup(resourceGroupName, sqlVirtualMachineGroupName); - return inner.mapPage(inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); } public PagedIterable listBySqlVmGroup( String resourceGroupName, String sqlVirtualMachineGroupName, Context context) { PagedIterable inner = this.serviceClient().listBySqlVmGroup(resourceGroupName, sqlVirtualMachineGroupName, context); - return inner.mapPage(inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); } public PagedIterable list() { PagedIterable inner = this.serviceClient().list(); - return inner.mapPage(inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); } public PagedIterable list(Context context) { PagedIterable inner = this.serviceClient().list(context); - return inner.mapPage(inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); } public SqlVirtualMachine getByResourceGroup(String resourceGroupName, String sqlVirtualMachineName) { @@ -89,13 +90,13 @@ public void delete(String resourceGroupName, String sqlVirtualMachineName, Conte public PagedIterable listByResourceGroup(String resourceGroupName) { PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName); - return inner.mapPage(inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); } public PagedIterable listByResourceGroup(String resourceGroupName, Context context) { PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName, context); - return inner.mapPage(inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); + return Utils.mapPage(inner, inner1 -> new SqlVirtualMachineImpl(inner1, this.manager())); } public SqlVirtualMachine getById(String id) { @@ -189,7 +190,7 @@ private SqlVirtualMachinesClient serviceClient() { return this.innerClient; } - private SqlVirtualMachineManager manager() { + private com.azure.resourcemanager.sqlvirtualmachine.SqlVirtualMachineManager manager() { return this.serviceManager; } diff --git a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/Utils.java b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/Utils.java index 97d1f2cd7bc1..f85a94e65360 100644 --- a/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/Utils.java +++ b/sdk/sqlvirtualmachine/azure-resourcemanager-sqlvirtualmachine/src/main/java/com/azure/resourcemanager/sqlvirtualmachine/implementation/Utils.java @@ -4,12 +4,20 @@ package com.azure.resourcemanager.sqlvirtualmachine.implementation; +import com.azure.core.http.rest.PagedFlux; +import com.azure.core.http.rest.PagedIterable; +import com.azure.core.http.rest.PagedResponse; +import com.azure.core.http.rest.PagedResponseBase; import com.azure.core.util.CoreUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import reactor.core.publisher.Flux; final class Utils { static String getValueFromIdByName(String id, String name) { @@ -64,4 +72,133 @@ static String getValueFromIdByParameterName(String id, String pathTemplate, Stri } return null; } + + static PagedIterable mapPage(PagedIterable pageIterable, Function mapper) { + return new PagedIterableImpl(pageIterable, mapper); + } + + private static final class PagedIterableImpl extends PagedIterable { + + private final PagedIterable pagedIterable; + private final Function mapper; + private final Function, PagedResponse> pageMapper; + + private PagedIterableImpl(PagedIterable pagedIterable, Function mapper) { + super( + PagedFlux + .create( + () -> + (continuationToken, pageSize) -> + Flux.fromStream(pagedIterable.streamByPage().map(getPageMapper(mapper))))); + this.pagedIterable = pagedIterable; + this.mapper = mapper; + this.pageMapper = getPageMapper(mapper); + } + + private static Function, PagedResponse> getPageMapper(Function mapper) { + return page -> + new PagedResponseBase( + page.getRequest(), + page.getStatusCode(), + page.getHeaders(), + page.getElements().stream().map(mapper).collect(Collectors.toList()), + page.getContinuationToken(), + null); + } + + @Override + public Stream stream() { + return pagedIterable.stream().map(mapper); + } + + @Override + public Stream> streamByPage() { + return pagedIterable.streamByPage().map(pageMapper); + } + + @Override + public Stream> streamByPage(String continuationToken) { + return pagedIterable.streamByPage(continuationToken).map(pageMapper); + } + + @Override + public Stream> streamByPage(int preferredPageSize) { + return pagedIterable.streamByPage(preferredPageSize).map(pageMapper); + } + + @Override + public Stream> streamByPage(String continuationToken, int preferredPageSize) { + return pagedIterable.streamByPage(continuationToken, preferredPageSize).map(pageMapper); + } + + @Override + public Iterator iterator() { + return new IteratorImpl(pagedIterable.iterator(), mapper); + } + + @Override + public Iterable> iterableByPage() { + return new IterableImpl, PagedResponse>(pagedIterable.iterableByPage(), pageMapper); + } + + @Override + public Iterable> iterableByPage(String continuationToken) { + return new IterableImpl, PagedResponse>( + pagedIterable.iterableByPage(continuationToken), pageMapper); + } + + @Override + public Iterable> iterableByPage(int preferredPageSize) { + return new IterableImpl, PagedResponse>( + pagedIterable.iterableByPage(preferredPageSize), pageMapper); + } + + @Override + public Iterable> iterableByPage(String continuationToken, int preferredPageSize) { + return new IterableImpl, PagedResponse>( + pagedIterable.iterableByPage(continuationToken, preferredPageSize), pageMapper); + } + } + + private static final class IteratorImpl implements Iterator { + + private final Iterator iterator; + private final Function mapper; + + private IteratorImpl(Iterator iterator, Function mapper) { + this.iterator = iterator; + this.mapper = mapper; + } + + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public S next() { + return mapper.apply(iterator.next()); + } + + @Override + public void remove() { + iterator.remove(); + } + } + + private static final class IterableImpl implements Iterable { + + private final Iterable iterable; + private final Function mapper; + + private IterableImpl(Iterable iterable, Function mapper) { + this.iterable = iterable; + this.mapper = mapper; + } + + @Override + public Iterator iterator() { + return new IteratorImpl(iterable.iterator(), mapper); + } + } }