From 624948da9b4f899e557ce865675c4ae400634f22 Mon Sep 17 00:00:00 2001 From: shafang Date: Tue, 21 Jan 2020 16:29:18 -0800 Subject: [PATCH 01/11] Subscription Key Credential objects --- .../checkstyle/checkstyle-suppressions.xml | 3 +- .../azure-ai-textanalytics/README.md | 24 ++-- .../TextAnalyticsClientBuilder.java | 14 ++- .../SubscriptionKeyCredentialPolicy.java | 35 ++++++ ...extAnalyticsSubscriptionKeyCredential.java | 40 +++++++ .../ai/textanalytics/AnalyzeSentiment.java | 3 +- .../textanalytics/AnalyzeSentimentAsync.java | 3 +- .../ai/textanalytics/DetectLanguage.java | 3 +- .../ai/textanalytics/DetectLanguageAsync.java | 3 +- .../ai/textanalytics/ExtractKeyPhrases.java | 4 +- .../textanalytics/ExtractKeyPhrasesAsync.java | 4 +- .../azure/ai/textanalytics/ReadmeSamples.java | 5 +- .../ai/textanalytics/RecognizeEntities.java | 3 +- .../textanalytics/RecognizeEntitiesAsync.java | 3 +- .../RecognizeLinkedEntities.java | 3 +- .../RecognizeLinkedEntitiesAsync.java | 3 +- .../azure/ai/textanalytics/RecognizePii.java | 3 +- .../ai/textanalytics/RecognizePiiAsync.java | 3 +- ...alyticsAsyncClientJavaDocCodeSnippets.java | 7 +- ...extAnalyticsClientJavaDocCodeSnippets.java | 11 +- .../batch/AnalyzeSentimentBatchDocuments.java | 3 +- .../AnalyzeSentimentBatchDocumentsAsync.java | 3 +- .../batch/DetectLanguageBatchDocuments.java | 3 +- .../DetectLanguageBatchDocumentsAsync.java | 3 +- .../ExtractKeyPhrasesBatchDocuments.java | 3 +- .../ExtractKeyPhrasesBatchDocumentsAsync.java | 3 +- .../RecognizeEntitiesBatchDocuments.java | 3 +- .../RecognizeEntitiesBatchDocumentsAsync.java | 3 +- ...RecognizeLinkedEntitiesBatchDocuments.java | 3 +- ...nizeLinkedEntitiesBatchDocumentsAsync.java | 3 +- .../batch/RecognizePiiBatchDocuments.java | 3 +- .../RecognizePiiBatchDocumentsAsync.java | 3 +- .../TextAnalyticsClientBuilderTest.java | 103 ++++++++++++++++++ .../rotateSharedKeyCredentialAsyncClient.json | 42 +++++++ .../rotateSharedKeyCredentialSyncClient.json | 42 +++++++ 35 files changed, 345 insertions(+), 55 deletions(-) create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml index 376ce0bc34dc..680590d525fa 100755 --- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml +++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml @@ -244,11 +244,12 @@ - + + diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index f0bb050eebc1..b19c4ddfeae6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -73,7 +73,7 @@ cognitive services. ``` Use the key as the credential parameter to authenticate the client: - + ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(SUBSCRIPTION_KEY) @@ -100,7 +100,7 @@ cognitive services. AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET Use the returned token credential to authenticate the client: - + ```java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() .endpoint(ENDPOINT) @@ -114,7 +114,7 @@ analyze sentiment, recognize entities, detect language, and extract key phrases To create a client object, you will need the cognitive services or text analytics endpoint to your resource and a subscription key that allows you access: - + ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(SUBSCRIPTION_KEY) @@ -186,14 +186,14 @@ The following sections provide several code snippets covering some of the most c Text analytics support both synchronous and asynchronous client creation by using `TextAnalyticsClientBuilder`, - + ``` java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(SUBSCRIPTION_KEY) .endpoint(ENDPOINT) .buildClient(); ``` - + ``` java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(SUBSCRIPTION_KEY) @@ -202,7 +202,7 @@ TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() ``` ### Detect language - + ```java String inputText = "Bonjour tout le monde"; @@ -215,7 +215,7 @@ for (DetectedLanguage detectedLanguage : textAnalyticsClient.detectLanguage(inpu ``` ### Recognize entity - + ```java String text = "Satya Nadella is the CEO of Microsoft"; @@ -230,7 +230,7 @@ for (NamedEntity entity : textAnalyticsClient.recognizeEntities(text).getNamedEn ``` ### Recognize PII(Personally Identifiable Information) entity - + ```java String text = "My SSN is 555-55-5555"; @@ -245,7 +245,7 @@ for (NamedEntity entity : textAnalyticsClient.recognizePiiEntities(text).getName ``` ### Recognize linked entity - + ```java String text = "Old Faithful is a geyser at Yellowstone Park."; @@ -258,7 +258,7 @@ for (LinkedEntity linkedEntity : textAnalyticsClient.recognizeLinkedEntities(tex } ``` ### Extract key phrases - + ```java String text = "My cat might need to see a veterinarian."; @@ -268,7 +268,7 @@ for (String keyPhrase : textAnalyticsClient.extractKeyPhrases(text).getKeyPhrase ``` ### Analyze sentiment - + ```java String text = "The hotel was dark and unclean."; @@ -285,7 +285,7 @@ Text Analytics clients raise exceptions. For example, if you try to detect the l document IDs, `400` error is return that indicating bad request. In the following code snippet, the error is handled gracefully by catching the exception and display the additional information about the error. - + ```java try { textAnalyticsClient.detectBatchLanguages(inputs); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java index ce06adc7650f..853ca652c326 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java @@ -3,8 +3,10 @@ package com.azure.ai.textanalytics; +import com.azure.ai.textanalytics.implementation.SubscriptionKeyCredentialPolicy; import com.azure.ai.textanalytics.implementation.TextAnalyticsClientImpl; import com.azure.ai.textanalytics.implementation.TextAnalyticsClientImplBuilder; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextAnalyticsClientOptions; import com.azure.core.annotation.ServiceClientBuilder; import com.azure.core.credential.TokenCredential; @@ -42,7 +44,7 @@ * *

* The client needs the service endpoint of the Azure Text Analytics to access the resource service. - * {@link #subscriptionKey(String) subscriptionKey(String)} or + * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) subscriptionKey(String)} or * {@link #credential(TokenCredential) credential(TokenCredential)} give the builder access credential. *

* @@ -87,7 +89,7 @@ public final class TextAnalyticsClientBuilder { private final String clientVersion; private String endpoint; - private String subscriptionKey; + private TextAnalyticsSubscriptionKeyCredential subscriptionKey; private TokenCredential tokenCredential; private HttpClient httpClient; private HttpLogOptions httpLogOptions; @@ -126,7 +128,7 @@ public TextAnalyticsClientBuilder() { * * @return A TextAnalyticsClient with the options set from the builder. * @throws NullPointerException if {@link #endpoint(String) endpoint} or - * {@link #subscriptionKey(String) subscriptionKey} has not been set. + * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) subscriptionKey} has not been set. * @throws IllegalArgumentException if {@link #endpoint(String) endpoint} cannot be parsed into a valid URL. */ public TextAnalyticsClient buildClient() { @@ -146,7 +148,7 @@ public TextAnalyticsClient buildClient() { * * @return A TextAnalyticsAsyncClient with the options set from the builder. * @throws NullPointerException if {@link #endpoint(String) endpoint} or - * {@link #subscriptionKey(String) subscriptionKey} has not been set. + * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) subscriptionKey} has not been set. * @throws IllegalArgumentException if {@link #endpoint(String) endpoint} cannot be parsed into a valid URL. */ public TextAnalyticsAsyncClient buildAsyncClient() { @@ -171,7 +173,7 @@ public TextAnalyticsAsyncClient buildAsyncClient() { // User token based policy policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, DEFAULT_SCOPE)); } else if (subscriptionKey != null) { - headers.put(OCP_APIM_SUBSCRIPTION_KEY, subscriptionKey); + policies.add(new SubscriptionKeyCredentialPolicy(subscriptionKey)); } else { // Throw exception that credential and tokenCredential cannot be null throw logger.logExceptionAsError( @@ -247,7 +249,7 @@ public TextAnalyticsClientBuilder endpoint(String endpoint) { * @return The updated TextAnalyticsClientBuilder object. * @throws NullPointerException If {@code subscriptionKey} is {@code null} */ - public TextAnalyticsClientBuilder subscriptionKey(String subscriptionKey) { + public TextAnalyticsClientBuilder subscriptionKey(TextAnalyticsSubscriptionKeyCredential subscriptionKey) { Objects.requireNonNull(subscriptionKey, "'subscriptionKey' cannot be null."); this.subscriptionKey = subscriptionKey; return this; diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java new file mode 100644 index 000000000000..781fc202f6c1 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics.implementation; + +import com.azure.core.http.HttpPipelineCallContext; +import com.azure.core.http.HttpPipelineNextPolicy; +import com.azure.core.http.HttpResponse; +import com.azure.core.http.policy.HttpPipelinePolicy; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import reactor.core.publisher.Mono; + +/** + * Policy that adds the {@link TextAnalyticsSubscriptionKeyCredential} into the request's `Ocp-Apim-Subscription-Key` + * header. + */ +public final class SubscriptionKeyCredentialPolicy implements HttpPipelinePolicy { + private final TextAnalyticsSubscriptionKeyCredential credential; + + /** + * Creates a {@link SubscriptionKeyCredentialPolicy} pipeline policy that adds the SharedKeyCredential into the + * request's `Ocp-Apim-Subscription-Key` header. + * + * @param credential the SharedKeyCredential credential used to create the policy. + */ + public SubscriptionKeyCredentialPolicy(TextAnalyticsSubscriptionKeyCredential credential) { + this.credential = credential; + } + + @Override + public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { + context.getHttpRequest().setHeader("Ocp-Apim-Subscription-Key", credential.getSubscriptionKey()); + return next.process(); + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java new file mode 100644 index 000000000000..a614ec7ed60b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics.models; + +/** + * Subscription key credential that shared across cognitive services, or restrict to single service. + */ +public final class TextAnalyticsSubscriptionKeyCredential { + private String subscriptionKey; + + /** + * Creates a {@code SharedKeyCredential} model that describes subscription key. + * + * @param subscriptionKey the subscription key + */ + public TextAnalyticsSubscriptionKeyCredential(String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + } + + /** + * Get the subscription key value. + * + * @return the subscription key value + */ + public String getSubscriptionKey() { + return this.subscriptionKey; + } + + /** + * Set the subscription key value. + * + * @param subscriptionKey the subscription key + * @return the {@link TextAnalyticsSubscriptionKeyCredential} itself + */ + public TextAnalyticsSubscriptionKeyCredential updateCredential(String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + return this; + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java index 33c55e930677..089ab9b9d000 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java @@ -3,6 +3,7 @@ package com.azure.ai.textanalytics; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.ai.textanalytics.models.AnalyzeSentimentResult; @@ -18,7 +19,7 @@ public class AnalyzeSentiment { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java index fcb636891ac4..ce38bbfdd4c2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java @@ -3,6 +3,7 @@ package com.azure.ai.textanalytics; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import java.util.concurrent.TimeUnit; @@ -19,7 +20,7 @@ public class AnalyzeSentimentAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java index 9bdfa281010d..70b3c61312fa 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java @@ -5,6 +5,7 @@ import com.azure.ai.textanalytics.models.DetectLanguageResult; import com.azure.ai.textanalytics.models.DetectedLanguage; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; /** * Sample demonstrates how to detect the language of an input text. @@ -18,7 +19,7 @@ public class DetectLanguage { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java index a1dc376928d1..9f742bcad694 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.DetectedLanguage; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import java.util.concurrent.TimeUnit; @@ -19,7 +20,7 @@ public class DetectLanguageAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java index 23d752ac72ee..b75d2dc4aa86 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java @@ -3,6 +3,8 @@ package com.azure.ai.textanalytics; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; + /** * Sample demonstrates how to extract the key phrases of an input text. */ @@ -15,7 +17,7 @@ public class ExtractKeyPhrases { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java index 8049c2bf4c6c..40ca9a4e80ab 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java @@ -3,6 +3,8 @@ package com.azure.ai.textanalytics; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; + import java.util.concurrent.TimeUnit; /** @@ -17,7 +19,7 @@ public class ExtractKeyPhrasesAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java index df946f34384b..fde96dd97152 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java @@ -7,6 +7,7 @@ import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.LinkedEntity; import com.azure.ai.textanalytics.models.NamedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.core.exception.HttpResponseException; import com.azure.core.http.HttpClient; @@ -43,7 +44,7 @@ public void configureHttpClient() { */ public void useSubscriptionKeySyncClient() { TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint(ENDPOINT) .buildClient(); } @@ -53,7 +54,7 @@ public void useSubscriptionKeySyncClient() { */ public void useSubscriptionKeyAsyncClient() { TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint(ENDPOINT) .buildAsyncClient(); } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java index f0d940a35680..28b595a1f320 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; /** * Sample demonstrates how to recognize the entities of an input text. @@ -17,7 +18,7 @@ public class RecognizeEntities { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java index 9e831c43611c..36bdeca910c4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import java.util.concurrent.TimeUnit; @@ -19,7 +20,7 @@ public class RecognizeEntitiesAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java index 9e01255b55ae..f7ecd8f5f6d1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.LinkedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; /** * Sample demonstrates how to recognize the linked entities of an input text. @@ -17,7 +18,7 @@ public class RecognizeLinkedEntities { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java index c10c3b800f83..5137bdf8d131 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.LinkedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import java.util.concurrent.TimeUnit; @@ -19,7 +20,7 @@ public class RecognizeLinkedEntitiesAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java index 71cc78bd856f..ba4010065766 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; /** * Sample demonstrates how to recognize the PII(Personally Identifiable Information) entities of an input text. @@ -17,7 +18,7 @@ public class RecognizePii { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java index 3186b57f3cf9..01d5613d112d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java @@ -4,6 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import java.util.concurrent.TimeUnit; @@ -20,7 +21,7 @@ public class RecognizePiiAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java index 7a13f73091ac..9ffa3e240f47 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java @@ -15,6 +15,7 @@ import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -26,8 +27,6 @@ * Code snippet for {@link TextAnalyticsAsyncClient} */ public class TextAnalyticsAsyncClientJavaDocCodeSnippets { - private static final String SUBSCRIPTION_KEY = null; - private static final String ENDPOINT = null; TextAnalyticsAsyncClient textAnalyticsAsyncClient = createTextAnalyticsAsyncClient(); /** @@ -38,8 +37,8 @@ public class TextAnalyticsAsyncClientJavaDocCodeSnippets { public TextAnalyticsAsyncClient createTextAnalyticsAsyncClient() { // BEGIN: com.azure.ai.textanalytics.TextAnalyticsAsyncClient.instantiation TextAnalyticsAsyncClient textAnalyticsAsyncClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) - .endpoint(ENDPOINT) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); // END: com.azure.ai.textanalytics.TextAnalyticsAsyncClient.instantiation return textAnalyticsAsyncClient; diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java index e823717dadf2..139de4212cf8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java @@ -15,6 +15,7 @@ import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -29,8 +30,6 @@ * Code snippets for {@link TextAnalyticsClient} and {@link TextAnalyticsClientBuilder} */ public class TextAnalyticsClientJavaDocCodeSnippets { - private static final String SUBSCRIPTION_KEY = null; - private static final String ENDPOINT = null; private final TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder().buildClient(); /** @@ -43,9 +42,9 @@ public void createTextAnalyticsClientWithPipeline() { .build(); TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .pipeline(pipeline) - .endpoint(ENDPOINT) - .subscriptionKey(SUBSCRIPTION_KEY) .buildClient(); // END: com.azure.ai.textanalytics.TextAnalyticsClient.pipeline.instantiation } @@ -56,8 +55,8 @@ public void createTextAnalyticsClientWithPipeline() { public void createTextAnalyticsClient() { // BEGIN: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) - .endpoint(ENDPOINT) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); // END: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java index 80a1b5fbbe61..004889e606cd 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java @@ -7,6 +7,7 @@ import com.azure.ai.textanalytics.TextAnalyticsClientBuilder; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -28,7 +29,7 @@ public class AnalyzeSentimentBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java index cc7b8983c432..99b78d541083 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java @@ -8,6 +8,7 @@ import com.azure.ai.textanalytics.models.AnalyzeSentimentResult; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -28,7 +29,7 @@ public class AnalyzeSentimentBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java index 48574f724ca9..2019ce63594a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java @@ -10,6 +10,7 @@ import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.core.util.Context; @@ -28,7 +29,7 @@ public class DetectLanguageBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java index e52f2b859489..842fc4920f99 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import java.util.Arrays; @@ -28,7 +29,7 @@ public class DetectLanguageBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java index 8af363673984..e242e18f8581 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java @@ -8,6 +8,7 @@ import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.ExtractKeyPhraseResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -27,7 +28,7 @@ public class ExtractKeyPhrasesBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java index 4991b96c8cd4..863356b1295f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java @@ -8,6 +8,7 @@ import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.ExtractKeyPhraseResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -27,7 +28,7 @@ public class ExtractKeyPhrasesBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java index 25c396359524..14159158392c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java @@ -9,6 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -28,7 +29,7 @@ public class RecognizeEntitiesBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java index 3a39d1a21314..7a1909523dff 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -28,7 +29,7 @@ public class RecognizeEntitiesBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java index bc85a0b36a8e..dc44829fa39a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java @@ -9,6 +9,7 @@ import com.azure.ai.textanalytics.models.LinkedEntity; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -28,7 +29,7 @@ public class RecognizeLinkedEntitiesBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java index 4b6038a093cf..f0f8fd62edf5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.textanalytics.models.LinkedEntity; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -28,7 +29,7 @@ public class RecognizeLinkedEntitiesBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java index edf4b38b63f4..9d3dab4ff16b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java @@ -9,6 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -28,7 +29,7 @@ public class RecognizePiiBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java index e38983e2e7d6..aab19c095b8d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -29,7 +30,7 @@ public class RecognizePiiBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey("{subscription_key}") + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java new file mode 100644 index 000000000000..6a28f21d0ef8 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java @@ -0,0 +1,103 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.DetectLanguageResult; +import com.azure.ai.textanalytics.models.DetectedLanguage; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; +import com.azure.core.test.TestBase; +import com.azure.core.util.Configuration; +import org.junit.jupiter.api.Test; +import reactor.test.StepVerifier; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class TextAnalyticsClientBuilderTest extends TestBase { + static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; + + @Test + public void rotateSharedKeyCredentialAsyncClient() { + final String endpoint = getEndpoint(); + Objects.requireNonNull(endpoint, "`endpoint` expected to be set."); + + final String subscriptionKey = Configuration.getGlobalConfiguration() + .get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); + + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(subscriptionKey); + + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint(endpoint); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + final TextAnalyticsAsyncClient client = clientBuilder.buildAsyncClient(); + + DetectedLanguage primaryLanguage = new DetectedLanguage("English", "en", 1.0); + List expectedLanguageList = Arrays.asList(primaryLanguage); + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages(expectedLanguageList, response.getDetectedLanguages())) + .verifyComplete(); + + credential.updateCredential("invalid key"); + + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .verifyError(HttpResponseException.class); + } + + @Test + public void rotateSharedKeyCredentialSyncClient() { + final String endpoint = getEndpoint(); + Objects.requireNonNull(endpoint, "`endpoint` expected to be set."); + + final String subscriptionKey = Configuration.getGlobalConfiguration() + .get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(subscriptionKey); + + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint(endpoint); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + final TextAnalyticsClient client = clientBuilder.buildClient(); + + DetectedLanguage primaryLanguage = new DetectedLanguage("English", "en", 1.0); + List expectedLanguageList = Arrays.asList(primaryLanguage); + + DetectLanguageResult detectLanguageResult = client.detectLanguage("This is a test English Text"); + validateDetectedLanguages(expectedLanguageList, detectLanguageResult.getDetectedLanguages()); + + credential.updateCredential("invalid key"); + + assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); + } + + String getEndpoint() { + return interceptorManager.isPlaybackMode() + ? "http://localhost:8080" + : Configuration.getGlobalConfiguration().get("AZURE_TEXT_ANALYTICS_ENDPOINT"); + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json new file mode 100644 index 000000000000..ccae23c8da50 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json @@ -0,0 +1,42 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "bbc9e27e-f673-4415-845d-f3d6a86b7158", + "Content-Type" : "application/json" + }, + "Response" : { + "Transfer-Encoding" : "chunked", + "x-envoy-upstream-service-time" : "4", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-content-type-options" : "nosniff", + "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", + "apim-request-id" : "252819b1-3463-47f9-8cdf-bbd1d13397ea", + "retry-after" : "0", + "StatusCode" : "200", + "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", + "Date" : "Tue, 21 Jan 2020 18:24:15 GMT", + "Content-Type" : "application/json; charset=utf-8" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "5d16df05-d11b-4af9-bea0-565947dbfe1a", + "Content-Type" : "application/json" + }, + "Response" : { + "retry-after" : "0", + "Content-Length" : "224", + "StatusCode" : "401", + "Body" : "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}", + "Date" : "Tue, 21 Jan 2020 18:24:16 GMT" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json new file mode 100644 index 000000000000..e4132cf24dfd --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json @@ -0,0 +1,42 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "6279dc33-5ac7-415f-8eef-c1927f05e1df", + "Content-Type" : "application/json" + }, + "Response" : { + "Transfer-Encoding" : "chunked", + "x-envoy-upstream-service-time" : "4", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-content-type-options" : "nosniff", + "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", + "apim-request-id" : "760de43c-6946-42ec-87aa-2cefca90f606", + "retry-after" : "0", + "StatusCode" : "200", + "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", + "Date" : "Wed, 22 Jan 2020 00:05:37 GMT", + "Content-Type" : "application/json; charset=utf-8" + }, + "Exception" : null + }, { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "961159e7-78aa-4966-a4aa-bb0cb1538266", + "Content-Type" : "application/json" + }, + "Response" : { + "retry-after" : "0", + "Content-Length" : "224", + "StatusCode" : "401", + "Body" : "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}", + "Date" : "Wed, 22 Jan 2020 00:05:37 GMT" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file From 9755bc7ea74ce6cecbe3539f07a0ae43294d616f Mon Sep 17 00:00:00 2001 From: shafang Date: Tue, 21 Jan 2020 17:02:11 -0800 Subject: [PATCH 02/11] one used variable can be refactored --- .../TextAnalyticsClientBuilderTest.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java index 6a28f21d0ef8..c1534b048816 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java @@ -3,7 +3,6 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.DetectLanguageResult; import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.core.exception.HttpResponseException; @@ -14,14 +13,13 @@ import reactor.test.StepVerifier; import java.util.Arrays; -import java.util.List; import java.util.Objects; import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; import static org.junit.jupiter.api.Assertions.assertThrows; public class TextAnalyticsClientBuilderTest extends TestBase { - static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; + private static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; @Test public void rotateSharedKeyCredentialAsyncClient() { @@ -48,10 +46,10 @@ public void rotateSharedKeyCredentialAsyncClient() { final TextAnalyticsAsyncClient client = clientBuilder.buildAsyncClient(); - DetectedLanguage primaryLanguage = new DetectedLanguage("English", "en", 1.0); - List expectedLanguageList = Arrays.asList(primaryLanguage); StepVerifier.create(client.detectLanguage("This is a test English Text")) - .assertNext(response -> validateDetectedLanguages(expectedLanguageList, response.getDetectedLanguages())) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) .verifyComplete(); credential.updateCredential("invalid key"); @@ -68,6 +66,7 @@ public void rotateSharedKeyCredentialSyncClient() { final String subscriptionKey = Configuration.getGlobalConfiguration() .get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); + final TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential(subscriptionKey); @@ -83,12 +82,8 @@ public void rotateSharedKeyCredentialSyncClient() { } final TextAnalyticsClient client = clientBuilder.buildClient(); - - DetectedLanguage primaryLanguage = new DetectedLanguage("English", "en", 1.0); - List expectedLanguageList = Arrays.asList(primaryLanguage); - - DetectLanguageResult detectLanguageResult = client.detectLanguage("This is a test English Text"); - validateDetectedLanguages(expectedLanguageList, detectLanguageResult.getDetectedLanguages()); + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + client.detectLanguage("This is a test English Text").getDetectedLanguages()); credential.updateCredential("invalid key"); From 812ccd3a5b5a320cc814b61d1b7a9eddffb2cb11 Mon Sep 17 00:00:00 2001 From: shafang Date: Tue, 21 Jan 2020 17:32:10 -0800 Subject: [PATCH 03/11] readme sample reformat --- .../azure-ai-textanalytics/README.md | 47 ++++++++++--------- .../azure/ai/textanalytics/ReadmeSamples.java | 8 ++-- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index b19c4ddfeae6..f40f8b162472 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -73,11 +73,11 @@ cognitive services. ``` Use the key as the credential parameter to authenticate the client: - + ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) - .endpoint(ENDPOINT) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); ``` @@ -100,10 +100,10 @@ cognitive services. AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET Use the returned token credential to authenticate the client: - + ```java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .endpoint(ENDPOINT) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .credential(new DefaultAzureCredentialBuilder().build()) .buildAsyncClient(); ``` @@ -114,11 +114,11 @@ analyze sentiment, recognize entities, detect language, and extract key phrases To create a client object, you will need the cognitive services or text analytics endpoint to your resource and a subscription key that allows you access: - + ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) - .endpoint(ENDPOINT) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); ``` @@ -186,23 +186,23 @@ The following sections provide several code snippets covering some of the most c Text analytics support both synchronous and asynchronous client creation by using `TextAnalyticsClientBuilder`, - + ``` java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) - .endpoint(ENDPOINT) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); ``` - + ``` java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(SUBSCRIPTION_KEY) - .endpoint(ENDPOINT) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); ``` ### Detect language - + ```java String inputText = "Bonjour tout le monde"; @@ -215,7 +215,7 @@ for (DetectedLanguage detectedLanguage : textAnalyticsClient.detectLanguage(inpu ``` ### Recognize entity - + ```java String text = "Satya Nadella is the CEO of Microsoft"; @@ -230,7 +230,7 @@ for (NamedEntity entity : textAnalyticsClient.recognizeEntities(text).getNamedEn ``` ### Recognize PII(Personally Identifiable Information) entity - + ```java String text = "My SSN is 555-55-5555"; @@ -245,7 +245,7 @@ for (NamedEntity entity : textAnalyticsClient.recognizePiiEntities(text).getName ``` ### Recognize linked entity - + ```java String text = "Old Faithful is a geyser at Yellowstone Park."; @@ -258,7 +258,7 @@ for (LinkedEntity linkedEntity : textAnalyticsClient.recognizeLinkedEntities(tex } ``` ### Extract key phrases - + ```java String text = "My cat might need to see a veterinarian."; @@ -268,7 +268,7 @@ for (String keyPhrase : textAnalyticsClient.extractKeyPhrases(text).getKeyPhrase ``` ### Analyze sentiment - + ```java String text = "The hotel was dark and unclean."; @@ -285,8 +285,13 @@ Text Analytics clients raise exceptions. For example, if you try to detect the l document IDs, `400` error is return that indicating bad request. In the following code snippet, the error is handled gracefully by catching the exception and display the additional information about the error. - + ```java +List inputs = Arrays.asList( + new DetectLanguageInput("1", "This is written in English.", "us"), + new DetectLanguageInput("2", "Este es un document escrito en Español.", "es") +); + try { textAnalyticsClient.detectBatchLanguages(inputs); } catch (HttpResponseException e) { diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java index fde96dd97152..f019f3dbaf81 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java @@ -25,8 +25,6 @@ * Class containing code snippets that will be injected to README.md. */ public class ReadmeSamples { - private static final String SUBSCRIPTION_KEY = null; - private static final String ENDPOINT = null; private TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder().buildClient(); /** @@ -45,7 +43,7 @@ public void configureHttpClient() { public void useSubscriptionKeySyncClient() { TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint(ENDPOINT) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildClient(); } @@ -55,7 +53,7 @@ public void useSubscriptionKeySyncClient() { public void useSubscriptionKeyAsyncClient() { TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint(ENDPOINT) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .buildAsyncClient(); } @@ -64,7 +62,7 @@ public void useSubscriptionKeyAsyncClient() { */ public void useAadAsyncClient() { TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .endpoint(ENDPOINT) + .endpoint("https://{servicename}.cognitiveservices.azure.com/") .credential(new DefaultAzureCredentialBuilder().build()) .buildAsyncClient(); } From 559066ce393a4d92ab09c53e2f0a6080ea4779ba Mon Sep 17 00:00:00 2001 From: shafang Date: Tue, 21 Jan 2020 21:08:27 -0800 Subject: [PATCH 04/11] reformat --- .../TextAnalyticsClientBuilder.java | 1 - .../TextAnalyticsClientBuilderTest.java | 22 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java index 853ca652c326..0a4e6c083d91 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java @@ -76,7 +76,6 @@ public final class TextAnalyticsClientBuilder { private static final String CONTENT_TYPE_HEADER_VALUE = "application/json"; private static final String ACCEPT_HEADER = "Accept"; private static final String TEXT_ANALYTICS_PROPERTIES = "azure-ai-textanalytics.properties"; - private static final String OCP_APIM_SUBSCRIPTION_KEY = "Ocp-Apim-Subscription-Key"; private static final String NAME = "name"; private static final String VERSION = "version"; private static final RetryPolicy DEFAULT_RETRY_POLICY = new RetryPolicy("retry-after-ms", ChronoUnit.MILLIS); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java index c1534b048816..cbce731f8fa4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java @@ -23,11 +23,10 @@ public class TextAnalyticsClientBuilderTest extends TestBase { @Test public void rotateSharedKeyCredentialAsyncClient() { + // Arrange final String endpoint = getEndpoint(); Objects.requireNonNull(endpoint, "`endpoint` expected to be set."); - - final String subscriptionKey = Configuration.getGlobalConfiguration() - .get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + final String subscriptionKey = getSubscriptionKey(); Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); final TextAnalyticsSubscriptionKeyCredential credential = @@ -46,25 +45,27 @@ public void rotateSharedKeyCredentialAsyncClient() { final TextAnalyticsAsyncClient client = clientBuilder.buildAsyncClient(); + // Action and Assert StepVerifier.create(client.detectLanguage("This is a test English Text")) .assertNext(response -> validateDetectedLanguages( Arrays.asList(new DetectedLanguage("English", "en", 1.0)), response.getDetectedLanguages())) .verifyComplete(); + // Update to invalid subscription key credential.updateCredential("invalid key"); + // Action and Assert StepVerifier.create(client.detectLanguage("This is a test English Text")) .verifyError(HttpResponseException.class); } @Test public void rotateSharedKeyCredentialSyncClient() { + // Arrange final String endpoint = getEndpoint(); Objects.requireNonNull(endpoint, "`endpoint` expected to be set."); - - final String subscriptionKey = Configuration.getGlobalConfiguration() - .get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + final String subscriptionKey = getSubscriptionKey(); Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); final TextAnalyticsSubscriptionKeyCredential credential = @@ -82,11 +83,15 @@ public void rotateSharedKeyCredentialSyncClient() { } final TextAnalyticsClient client = clientBuilder.buildClient(); + + // Action and Assert validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), client.detectLanguage("This is a test English Text").getDetectedLanguages()); + // Update to invalid subscription key credential.updateCredential("invalid key"); + // Action and Assert assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); } @@ -95,4 +100,9 @@ String getEndpoint() { ? "http://localhost:8080" : Configuration.getGlobalConfiguration().get("AZURE_TEXT_ANALYTICS_ENDPOINT"); } + + String getSubscriptionKey() { + return interceptorManager.isPlaybackMode() ? "subscriptionKeyInPlayback" + : Configuration.getGlobalConfiguration().get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + } } From eb3befd83b70df0fbbe513ba0b3c8a9af69f7293 Mon Sep 17 00:00:00 2001 From: shafang Date: Wed, 22 Jan 2020 14:46:48 -0800 Subject: [PATCH 05/11] subscription key cannot be null check --- .../models/TextAnalyticsSubscriptionKeyCredential.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java index a614ec7ed60b..bdc0e035ff9c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java @@ -3,6 +3,8 @@ package com.azure.ai.textanalytics.models; +import java.util.Objects; + /** * Subscription key credential that shared across cognitive services, or restrict to single service. */ @@ -10,11 +12,12 @@ public final class TextAnalyticsSubscriptionKeyCredential { private String subscriptionKey; /** - * Creates a {@code SharedKeyCredential} model that describes subscription key. + * Creates a {@link TextAnalyticsSubscriptionKeyCredential} model that describes subscription key. * * @param subscriptionKey the subscription key */ public TextAnalyticsSubscriptionKeyCredential(String subscriptionKey) { + Objects.requireNonNull(subscriptionKey, "`subscriptionKey` cannot be null."); this.subscriptionKey = subscriptionKey; } @@ -33,8 +36,8 @@ public String getSubscriptionKey() { * @param subscriptionKey the subscription key * @return the {@link TextAnalyticsSubscriptionKeyCredential} itself */ - public TextAnalyticsSubscriptionKeyCredential updateCredential(String subscriptionKey) { + public void updateCredential(String subscriptionKey) { + Objects.requireNonNull(subscriptionKey, "`subscriptionKey` can not be null."); this.subscriptionKey = subscriptionKey; - return this; } } From 2338cc50ca163421d6dcb9a6ffc257eb43748750 Mon Sep 17 00:00:00 2001 From: shafang Date: Sun, 26 Jan 2020 16:38:56 -0800 Subject: [PATCH 06/11] beside the it is still not thread-safe. Hava updaet all side docs --- .../azure-ai-textanalytics/README.md | 23 ++- .../SubscriptionKeyCredentialPolicy.java | 9 +- ...extAnalyticsSubscriptionKeyCredential.java | 24 +-- .../src/samples/README.md | 52 ++++-- .../ai/textanalytics/AnalyzeSentiment.java | 2 +- .../textanalytics/AnalyzeSentimentAsync.java | 2 +- .../ai/textanalytics/DetectLanguage.java | 2 +- .../ai/textanalytics/DetectLanguageAsync.java | 2 +- .../ai/textanalytics/ExtractKeyPhrases.java | 2 +- .../textanalytics/ExtractKeyPhrasesAsync.java | 2 +- .../azure/ai/textanalytics/ReadmeSamples.java | 19 ++- .../ai/textanalytics/RecognizeEntities.java | 2 +- .../textanalytics/RecognizeEntitiesAsync.java | 2 +- .../RecognizeLinkedEntities.java | 2 +- .../RecognizeLinkedEntitiesAsync.java | 2 +- .../azure/ai/textanalytics/RecognizePii.java | 2 +- .../ai/textanalytics/RecognizePiiAsync.java | 2 +- .../textanalytics/RotateSubscriptionKey.java | 42 +++++ .../RotateSubscriptionKeyAsync.java | 59 +++++++ ...alyticsAsyncClientJavaDocCodeSnippets.java | 19 ++- ...extAnalyticsClientJavaDocCodeSnippets.java | 4 +- .../batch/AnalyzeSentimentBatchDocuments.java | 2 +- .../AnalyzeSentimentBatchDocumentsAsync.java | 2 +- .../batch/DetectLanguageBatchDocuments.java | 2 +- .../DetectLanguageBatchDocumentsAsync.java | 2 +- .../ExtractKeyPhrasesBatchDocuments.java | 2 +- .../ExtractKeyPhrasesBatchDocumentsAsync.java | 2 +- .../RecognizeEntitiesBatchDocuments.java | 2 +- .../RecognizeEntitiesBatchDocumentsAsync.java | 2 +- ...RecognizeLinkedEntitiesBatchDocuments.java | 2 +- ...nizeLinkedEntitiesBatchDocumentsAsync.java | 2 +- .../batch/RecognizePiiBatchDocuments.java | 2 +- .../RecognizePiiBatchDocumentsAsync.java | 2 +- .../com/azure/ai/textanalytics/TestUtil.java | 57 +++++++ ...AnalyticsClientBuilderAsyncClientTest.java | 159 ++++++++++++++++++ ...tAnalyticsClientBuilderSyncClientTest.java | 143 ++++++++++++++++ .../TextAnalyticsClientBuilderTest.java | 108 ------------ 37 files changed, 595 insertions(+), 171 deletions(-) create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java delete mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index f40f8b162472..56ed10c75302 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -77,7 +77,7 @@ cognitive services. ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); ``` @@ -103,7 +103,7 @@ cognitive services. ```java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .credential(new DefaultAzureCredentialBuilder().build()) .buildAsyncClient(); ``` @@ -118,10 +118,23 @@ your resource and a subscription key that allows you access: ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); ``` +#### Rotate existing subscription key +The Azure Text Analytics client library provide a way to rotate the existing subscription key. + + +```java +TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{expired_subscription_key}"); +TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint("{endpoint}") + .buildClient(); + +credential.updateCredential("{new_subscription_key}"); +``` ## Key concepts ### Text Input @@ -190,14 +203,14 @@ Text analytics support both synchronous and asynchronous client creation by usin ``` java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); ``` ``` java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); ``` diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java index 781fc202f6c1..6d27275f6733 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java @@ -15,13 +15,14 @@ * header. */ public final class SubscriptionKeyCredentialPolicy implements HttpPipelinePolicy { + private static final String OCP_APIM_SUBSCRIPTION_KEY = "Ocp-Apim-Subscription-Key"; private final TextAnalyticsSubscriptionKeyCredential credential; /** - * Creates a {@link SubscriptionKeyCredentialPolicy} pipeline policy that adds the SharedKeyCredential into the - * request's `Ocp-Apim-Subscription-Key` header. + * Creates a {@link SubscriptionKeyCredentialPolicy} pipeline policy that adds the + * {@link TextAnalyticsSubscriptionKeyCredential} into the request's `Ocp-Apim-Subscription-Key` header. * - * @param credential the SharedKeyCredential credential used to create the policy. + * @param credential the {@link TextAnalyticsSubscriptionKeyCredential} credential used to create the policy. */ public SubscriptionKeyCredentialPolicy(TextAnalyticsSubscriptionKeyCredential credential) { this.credential = credential; @@ -29,7 +30,7 @@ public SubscriptionKeyCredentialPolicy(TextAnalyticsSubscriptionKeyCredential cr @Override public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { - context.getHttpRequest().setHeader("Ocp-Apim-Subscription-Key", credential.getSubscriptionKey()); + context.getHttpRequest().setHeader(OCP_APIM_SUBSCRIPTION_KEY, credential.getSubscriptionKey()); return next.process(); } } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java index bdc0e035ff9c..36c6b05e9c11 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java @@ -7,37 +7,39 @@ /** * Subscription key credential that shared across cognitive services, or restrict to single service. + * + *

Be able to rotate an existing subscription key

+ * {@codesnippet com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential} + * */ public final class TextAnalyticsSubscriptionKeyCredential { private String subscriptionKey; /** - * Creates a {@link TextAnalyticsSubscriptionKeyCredential} model that describes subscription key. + * Creates a {@link TextAnalyticsSubscriptionKeyCredential} model that describes subscription key for + * authentication. * - * @param subscriptionKey the subscription key + * @param subscriptionKey the subscription key for authentication */ public TextAnalyticsSubscriptionKeyCredential(String subscriptionKey) { - Objects.requireNonNull(subscriptionKey, "`subscriptionKey` cannot be null."); - this.subscriptionKey = subscriptionKey; + this.subscriptionKey = Objects.requireNonNull(subscriptionKey, "`subscriptionKey` cannot be null."); } /** - * Get the subscription key value. + * Get the subscription key. * - * @return the subscription key value + * @return the subscription key */ public String getSubscriptionKey() { return this.subscriptionKey; } /** - * Set the subscription key value. + * Set the subscription key. * - * @param subscriptionKey the subscription key - * @return the {@link TextAnalyticsSubscriptionKeyCredential} itself + * @param subscriptionKey the subscription key for authentication */ public void updateCredential(String subscriptionKey) { - Objects.requireNonNull(subscriptionKey, "`subscriptionKey` can not be null."); - this.subscriptionKey = subscriptionKey; + this.subscriptionKey = Objects.requireNonNull(subscriptionKey, "`subscriptionKey` cannot be null."); } } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/README.md b/sdk/textanalytics/azure-ai-textanalytics/src/samples/README.md index 06f143efa846..f7ff96c2dd45 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/README.md @@ -21,21 +21,34 @@ Getting started explained in detail [here][SDK_README_GETTING_STARTED]. ## Examples The following sections provide several code snippets covering some of the most common configuration service tasks, including: -- [Detect language in text][sample_hello_world] +- [Detect language in text][sample_detect_language] +- [Detect language in text with asynchronous client][async_sample_detect_language] - [Recognize entities in text][sample_entities] +- [Recognize entities in text with asynchronous client][async_sample_entities] - [Recognize personally identifiable information in text][sample_pii_entities] +- [Recognize personally identifiable information in text with asynchronous client][async_sample_pii_entities] - [Recognize linked entities in text][sample_linked_entities] +- [Recognize linked entities in text with asynchronous client][async_sample_linked_entities] - [Extract key phrases in text][sample_key_phrases] -- [Analyze sentiment in text.][sample_sentiment] -- [Async Detect language in text][async_sample_hello_world] +- [Extract key phrases in text with asynchronous client][async_sample_key_phrases] +- [Analyze sentiment in text][sample_sentiment] +- [Analyze sentiment in text with asynchronous client][async_sample_sentiment] +- [Rotate subscription key][sample_rotate_key] +- [Rotate subscription key with asynchronous client][async_sample_rotate_key] Batch Samples: -- [Detect language for a batch of documents][sample_language_batch] +- [Detect language for a batch of documents][sample_detect_language_batch] +- [Detect language for a batch of documents with asynchronous client][async_sample_detect_language_batch] - [Recognize entities in a batch of documents][sample_entities_batch] +- [Recognize entities in a batch of documents with asynchronous client][async_sample_entities_batch] - [Recognize personally identifiable information in a batch of documents][sample_pii_entities_batch] +- [Recognize personally identifiable information in a batch of documents with asynchronous client][async_sample_pii_entities_batch] - [Recognize linked entities in a batch of documents][sample_linked_entities_batch] +- [Recognize linked entities in a batch of documents with asynchronous client][async_sample_linked_entities_batch] - [Extract key phrases in a batch of documents][sample_key_phrases_batch] +- [Extract key phrases in a batch of documents with asynchronous client][async_sample_key_phrases_batch] - [Analyze sentiment in a batch of documents][sample_sentiment_batch] +- [Analyze sentiment in a batch of documents with asynchronous client][async_sample_sentiment_batch] ## Troubleshooting Troubleshooting steps can be found [here][SDK_README_TROUBLESHOOTING]. @@ -56,19 +69,32 @@ Guidelines](../../CONTRIBUTING.md) for more information. [SDK_README_DEPENDENCY]: ../../README.md#adding-the-package-to-your-product [SDK_README_NEXT_STEPS]: ../../README.md#next-steps -[async_sample_hello_world]: java/com/azure/ai/textanalytics/DetectLanguageAsync.java -[sample_hello_world]: java/com/azure/ai/textanalytics/DetectLanguage.java -[sample_entities]: java/com/azure/ai/textanalytics/RecognizeEntities.java -[sample_pii_entities]: java/com/azure/ai/textanalytics/RecognizePii.java -[sample_linked_entities]: java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java -[sample_key_phrases]: java/com/azure/ai/textanalytics/ExtractKeyPhrases.java -[sample_sentiment]: java/com/azure/ai/textanalytics/AnalyzeSentiment.java +[async_sample_detect_language]: java/com/azure/ai/textanalytics/DetectLanguageAsync.java +[async_sample_detect_language_batch]: java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java +[async_sample_entities]: java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java +[async_sample_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java +[async_sample_linked_entities]: java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java +[async_sample_linked_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java +[async_sample_key_phrases]: java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java +[async_sample_key_phrases_batch]: java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java +[async_sample_pii_entities]: java/com/azure/ai/textanalytics/RecognizePiiAsync.java +[async_sample_pii_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java +[async_sample_rotate_key]: java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java +[async_sample_sentiment]: java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java +[async_sample_sentiment_batch]: java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java -[sample_language_batch]: java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java +[sample_detect_language]: java/com/azure/ai/textanalytics/DetectLanguage.java +[sample_detect_language_batch]: java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java +[sample_entities]: java/com/azure/ai/textanalytics/RecognizeEntities.java [sample_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java -[sample_pii_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java +[sample_linked_entities]: java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java [sample_linked_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java +[sample_key_phrases]: java/com/azure/ai/textanalytics/ExtractKeyPhrases.java [sample_key_phrases_batch]: java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java +[sample_pii_entities]: java/com/azure/ai/textanalytics/RecognizePii.java +[sample_pii_entities_batch]: java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java +[sample_rotate_key]: java/com/azure/ai/textanalytics/RotateSubscriptionKey.java +[sample_sentiment]: java/com/azure/ai/textanalytics/AnalyzeSentiment.java [sample_sentiment_batch]: java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-java%2Fsdk%2Ftextanalytics%2Fazure-ai-textanalytics%2FREADME.png) diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java index 089ab9b9d000..ff8e55234cd7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java @@ -20,7 +20,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java index ce38bbfdd4c2..31d914280149 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java @@ -21,7 +21,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java index 70b3c61312fa..856d299528a3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java @@ -20,7 +20,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java index 9f742bcad694..4e9ac1a45f43 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java @@ -21,7 +21,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java index b75d2dc4aa86..afad9b374a88 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java @@ -18,7 +18,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java index 40ca9a4e80ab..a3d23469966a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java @@ -20,7 +20,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java index f019f3dbaf81..f82649cadb7f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java @@ -43,7 +43,7 @@ public void configureHttpClient() { public void useSubscriptionKeySyncClient() { TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); } @@ -53,7 +53,7 @@ public void useSubscriptionKeySyncClient() { public void useSubscriptionKeyAsyncClient() { TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); } @@ -62,7 +62,7 @@ public void useSubscriptionKeyAsyncClient() { */ public void useAadAsyncClient() { TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .credential(new DefaultAzureCredentialBuilder().build()) .buildAsyncClient(); } @@ -166,4 +166,17 @@ public void handlingException() { System.out.println(e.getMessage()); } } + + /** + * Code snippet for rotating subscription key of the client + */ + public void rotatingSubscriptionKey() { + TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{expired_subscription_key}"); + TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint("{endpoint}") + .buildClient(); + + credential.updateCredential("{new_subscription_key}"); + } } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java index 28b595a1f320..1f7fc23967d1 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java @@ -19,7 +19,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java index 36bdeca910c4..6392740fe71d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java @@ -21,7 +21,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java index f7ecd8f5f6d1..2b57a1b766e6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java @@ -19,7 +19,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java index 5137bdf8d131..2a3c3a91f96e 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java @@ -21,7 +21,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java index ba4010065766..d374718e666a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java @@ -19,7 +19,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java index 01d5613d112d..0939535a9950 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java @@ -22,7 +22,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The text that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java new file mode 100644 index 000000000000..a2565eb3ae55 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.core.exception.HttpResponseException; + +/** + * Sample demonstrates how to rotate the existing subscription key of text analytics client + */ +public class RotateSubscriptionKey { + + /** + * Main method to invoke this demo about how to rotate the existing subscription key of text analytics client. + * + * @param args Unused arguments to the program. + */ + public static void main(String[] args) { + TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{invalid_subscription_key}"); + TextAnalyticsClient client = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint("{endpoint}") + .buildClient(); + + // The text that need be analysed. + String text = "My cat might need to see a veterinarian."; + + try { + client.extractKeyPhrases(text); + } catch (HttpResponseException ex) { + System.out.println(ex.getMessage()); + } + + // Update the subscription key + credential.updateCredential("{valid_subscription_key}"); + + for (String keyPhrase : client.extractKeyPhrases(text).getKeyPhrases()) { + System.out.printf("Recognized phrases: %s.%n", keyPhrase); + } + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java new file mode 100644 index 000000000000..80d8db98eece --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; + +import java.util.concurrent.TimeUnit; + +/** + * Sample demonstrates how to rotate the existing subscription key of text analytics client + */ +public class RotateSubscriptionKeyAsync { + + /** + * Main method to invoke this demo about how to rotate the existing subscription key of text analytics client. + * + * @param args Unused arguments to the program. + */ + public static void main(String[] args) { + TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{invalid_subscription_key}"); + TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint("{endpoint}") + .buildAsyncClient(); + + // The text that need be analysed. + String text = "My cat might need to see a veterinarian."; + + client.extractKeyPhrases(text).subscribe( + result -> { + for (String keyPhrase : result.getKeyPhrases()) { + System.out.printf("Recognized phrases: %s.%n", keyPhrase); + } + }, + error -> System.err.println("There was an error extracting key phrases of the text." + error), + () -> System.out.println("Key phrases extracted.")); + + // Update the subscription key + credential.updateCredential("{valid_subscription_key}"); + + client.extractKeyPhrases(text).subscribe( + result -> { + for (String keyPhrase : result.getKeyPhrases()) { + System.out.printf("Recognized phrases: %s.%n", keyPhrase); + } + }, + error -> System.err.println("There was an error extracting key phrases of the text." + error), + () -> System.out.println("Key phrases extracted.")); + + // The .subscribe() creation and assignment is not a blocking call. For the purpose of this example, we sleep + // the thread so the program does not end before the send operation is complete. Using .block() instead of + // .subscribe() will turn this into a synchronous call. + try { + TimeUnit.SECONDS.sleep(5); + } catch (InterruptedException ignored) { + } + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java index 9ffa3e240f47..25d442a4a1df 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java @@ -38,12 +38,29 @@ public TextAnalyticsAsyncClient createTextAnalyticsAsyncClient() { // BEGIN: com.azure.ai.textanalytics.TextAnalyticsAsyncClient.instantiation TextAnalyticsAsyncClient textAnalyticsAsyncClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // END: com.azure.ai.textanalytics.TextAnalyticsAsyncClient.instantiation return textAnalyticsAsyncClient; } + /** + * Code snippet for updating the existing subscription key. + */ + public void rotateSubscriptionKey() { + // BEGIN: com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential + TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential("{subscription_key}"); + + TextAnalyticsAsyncClient textAnalyticsAsyncClient = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint("{endpoint}") + .buildAsyncClient(); + + credential.updateCredential("{new_subscription_key}"); + // END: com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential + } + // Languages /** * Code snippet for {@link TextAnalyticsAsyncClient#detectLanguage(String)} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java index 139de4212cf8..ad7bb5b855b0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java @@ -43,7 +43,7 @@ public void createTextAnalyticsClientWithPipeline() { TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .pipeline(pipeline) .buildClient(); // END: com.azure.ai.textanalytics.TextAnalyticsClient.pipeline.instantiation @@ -56,7 +56,7 @@ public void createTextAnalyticsClient() { // BEGIN: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // END: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java index 004889e606cd..5a1253ca1182 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java index 99b78d541083..5e0482166e86 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java index 2019ce63594a..19b5c9c6ab8a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java index 842fc4920f99..8d647ec19fc9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java index e242e18f8581..fedd60a87759 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java @@ -29,7 +29,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java index 863356b1295f..2de7bd9bb291 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java @@ -29,7 +29,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java index 14159158392c..5aedb1ff930c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java index 7a1909523dff..1c37f1dd1ca2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java index dc44829fa39a..dbdb1e479984 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java index f0f8fd62edf5..3b6f6be96fa3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java index 9d3dab4ff16b..4f7b38ae7f59 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java @@ -30,7 +30,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java index aab19c095b8d..3047f97b9a3f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java @@ -31,7 +31,7 @@ public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) - .endpoint("https://{servicename}.cognitiveservices.azure.com/") + .endpoint("{endpoint}") .buildAsyncClient(); // The texts that need be analysed. diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java new file mode 100644 index 000000000000..dd280aa2e149 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java @@ -0,0 +1,57 @@ +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; +import com.azure.core.test.TestBase; +import com.azure.core.util.Configuration; + +/** + * The test util class that could share test function for all other tests for synchronous or asynchronous client. + */ +public class TestUtil extends TestBase { + private static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; + static final String INVALID_KEY = "invalid key"; + + /** + * Create a client builder with endpoint and subscription key credential. + * + * @param endpoint the given endpoint + * @param credential the given {@link TextAnalyticsSubscriptionKeyCredential} credential + * @return {@link TextAnalyticsClientBuilder} + */ + TextAnalyticsClientBuilder createClientBuilder(String endpoint, TextAnalyticsSubscriptionKeyCredential credential) { + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint(endpoint); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + return clientBuilder; + } + + /** + * Get the endpoint based on what running mode is on. + * + * @return endpoint string + */ + String getEndpoint() { + return interceptorManager.isPlaybackMode() + ? "http://localhost:8080" + : Configuration.getGlobalConfiguration().get("AZURE_TEXT_ANALYTICS_ENDPOINT"); + } + + /** + * Get the string of subscription key value based on what running mode is on. + * + * @return the subscription key string + */ + String getSubscriptionKey() { + return interceptorManager.isPlaybackMode() ? "subscriptionKeyInPlayback" + : Configuration.getGlobalConfiguration().get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java new file mode 100644 index 000000000000..f250e2935929 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.DetectedLanguage; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; +import com.azure.core.http.policy.HttpLogDetailLevel; +import com.azure.core.http.policy.HttpLogOptions; +import com.azure.core.http.policy.RetryPolicy; +import com.azure.core.util.Configuration; +import org.junit.jupiter.api.Test; +import reactor.test.StepVerifier; + +import java.util.Arrays; + +import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * Client builder tests for the asynchronous client + */ +public class TextAnalyticsClientBuilderAsyncClientTest extends TestUtil { + + @Test + public void validKey() { + // Arrange + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildAsyncClient(); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } + + @Test + public void invalidKey() { + // Arrange + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildAsyncClient(); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .verifyError(HttpResponseException.class); + } + + @Test + public void updateToInvalidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); + + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); + + // Update to invalid key + credential.updateCredential(INVALID_KEY); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .verifyError(HttpResponseException.class); + } + + @Test + public void updateToValidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); + + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); + + // Update to valid key + credential.updateCredential(getSubscriptionKey()); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } + + @Test + public void missingEndpoint() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.buildAsyncClient(); + }); + } + + @Test + public void nullSubscriptionKey() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).subscriptionKey(null).buildAsyncClient(); + }); + } + + @Test + public void nullAADCredential() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).credential(null).buildAsyncClient(); + }); + } + + @Test + public void nullServiceVersion() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .retryPolicy(new RetryPolicy()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) + .serviceVersion(null); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + StepVerifier.create(clientBuilder.buildAsyncClient().detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } + + @Test + public void defaultPipeline() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .configuration(Configuration.getGlobalConfiguration()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + StepVerifier.create(clientBuilder.buildAsyncClient().detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java new file mode 100644 index 000000000000..b99b3b7b54c6 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.ai.textanalytics; + +import com.azure.ai.textanalytics.models.DetectedLanguage; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; +import com.azure.core.http.policy.HttpLogDetailLevel; +import com.azure.core.http.policy.HttpLogOptions; +import com.azure.core.http.policy.RetryPolicy; +import com.azure.core.util.Configuration; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * Client builder tests for the synchronous client + */ +public class TextAnalyticsClientBuilderSyncClientTest extends TestUtil { + + @Test + public void validKey() { + // Arrange + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildClient(); + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + client.detectLanguage("This is a test English Text").getDetectedLanguages()); + } + + @Test + public void invalidKey() { + // Arrange + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildClient(); + + // Action and Assert + assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); + } + + @Test + public void updateToInvalidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); + + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); + + // Update to invalid key + credential.updateCredential(INVALID_KEY); + + // Action and Assert + assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); + } + + @Test + public void updateToValidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); + + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); + + // Update to valid key + credential.updateCredential(getSubscriptionKey()); + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + client.detectLanguage("This is a test English Text").getDetectedLanguages()); + } + @Test + public void missingEndpoint() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.buildClient(); + }); + } + + @Test + public void nullSubscriptionKey() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).subscriptionKey(null).buildClient(); + }); + } + + @Test + public void nullAADCredential() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).credential(null).buildClient(); + }); + } + + @Test + public void nullServiceVersion() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .retryPolicy(new RetryPolicy()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) + .serviceVersion(null); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + clientBuilder.buildClient().detectLanguage("This is a test English Text").getDetectedLanguages()); + } + + @Test + public void defaultPipeline() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .configuration(Configuration.getGlobalConfiguration()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + clientBuilder.buildClient().detectLanguage("This is a test English Text").getDetectedLanguages()); + } +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java deleted file mode 100644 index cbce731f8fa4..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderTest.java +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.textanalytics; - -import com.azure.ai.textanalytics.models.DetectedLanguage; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; -import com.azure.core.exception.HttpResponseException; -import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; -import com.azure.core.test.TestBase; -import com.azure.core.util.Configuration; -import org.junit.jupiter.api.Test; -import reactor.test.StepVerifier; - -import java.util.Arrays; -import java.util.Objects; - -import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; -import static org.junit.jupiter.api.Assertions.assertThrows; - -public class TextAnalyticsClientBuilderTest extends TestBase { - private static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; - - @Test - public void rotateSharedKeyCredentialAsyncClient() { - // Arrange - final String endpoint = getEndpoint(); - Objects.requireNonNull(endpoint, "`endpoint` expected to be set."); - final String subscriptionKey = getSubscriptionKey(); - Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); - - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(subscriptionKey); - - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .subscriptionKey(credential) - .endpoint(endpoint); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - final TextAnalyticsAsyncClient client = clientBuilder.buildAsyncClient(); - - // Action and Assert - StepVerifier.create(client.detectLanguage("This is a test English Text")) - .assertNext(response -> validateDetectedLanguages( - Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - response.getDetectedLanguages())) - .verifyComplete(); - - // Update to invalid subscription key - credential.updateCredential("invalid key"); - - // Action and Assert - StepVerifier.create(client.detectLanguage("This is a test English Text")) - .verifyError(HttpResponseException.class); - } - - @Test - public void rotateSharedKeyCredentialSyncClient() { - // Arrange - final String endpoint = getEndpoint(); - Objects.requireNonNull(endpoint, "`endpoint` expected to be set."); - final String subscriptionKey = getSubscriptionKey(); - Objects.requireNonNull(subscriptionKey, "`AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY` expected to be set."); - - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(subscriptionKey); - - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .subscriptionKey(credential) - .endpoint(endpoint); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - final TextAnalyticsClient client = clientBuilder.buildClient(); - - // Action and Assert - validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - client.detectLanguage("This is a test English Text").getDetectedLanguages()); - - // Update to invalid subscription key - credential.updateCredential("invalid key"); - - // Action and Assert - assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); - } - - String getEndpoint() { - return interceptorManager.isPlaybackMode() - ? "http://localhost:8080" - : Configuration.getGlobalConfiguration().get("AZURE_TEXT_ANALYTICS_ENDPOINT"); - } - - String getSubscriptionKey() { - return interceptorManager.isPlaybackMode() ? "subscriptionKeyInPlayback" - : Configuration.getGlobalConfiguration().get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); - } -} From 1795fb1e9713eb1d2ae860a055e6aab42611cd7e Mon Sep 17 00:00:00 2001 From: shafang Date: Sun, 26 Jan 2020 17:14:13 -0800 Subject: [PATCH 07/11] add json files for test and minor checkstyle errors --- .../TextAnalyticsClientBuilder.java | 20 +++++---- .../com/azure/ai/textanalytics/TestUtil.java | 3 ++ ...tAnalyticsClientBuilderSyncClientTest.java | 1 + .../session-records/defaultPipeline.json | 26 ++++++++++++ .../resources/session-records/invalidKey.json | 20 +++++++++ .../session-records/missingEndpoint.json | 4 ++ .../session-records/nullAADCredential.json | 4 ++ .../session-records/nullServiceVersion.json | 26 ++++++++++++ .../session-records/nullSubscriptionKey.json | 4 ++ .../rotateSharedKeyCredentialAsyncClient.json | 42 ------------------- .../rotateSharedKeyCredentialSyncClient.json | 42 ------------------- .../session-records/updateToInvalidKey.json | 20 +++++++++ .../session-records/updateToValidKey.json | 26 ++++++++++++ .../resources/session-records/validKey.json | 26 ++++++++++++ 14 files changed, 171 insertions(+), 93 deletions(-) create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/missingEndpoint.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullAADCredential.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullSubscriptionKey.json delete mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json delete mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json create mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java index 0a4e6c083d91..4a6ff047f80b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java @@ -44,7 +44,8 @@ * *

* The client needs the service endpoint of the Azure Text Analytics to access the resource service. - * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) subscriptionKey(String)} or + * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) + * subscriptionKey(TextAnalyticsSubscriptionKeyCredential)} or * {@link #credential(TokenCredential) credential(TokenCredential)} give the builder access credential. *

* @@ -88,7 +89,7 @@ public final class TextAnalyticsClientBuilder { private final String clientVersion; private String endpoint; - private TextAnalyticsSubscriptionKeyCredential subscriptionKey; + private TextAnalyticsSubscriptionKeyCredential credential; private TokenCredential tokenCredential; private HttpClient httpClient; private HttpLogOptions httpLogOptions; @@ -171,8 +172,8 @@ public TextAnalyticsAsyncClient buildAsyncClient() { if (tokenCredential != null) { // User token based policy policies.add(new BearerTokenAuthenticationPolicy(tokenCredential, DEFAULT_SCOPE)); - } else if (subscriptionKey != null) { - policies.add(new SubscriptionKeyCredentialPolicy(subscriptionKey)); + } else if (credential != null) { + policies.add(new SubscriptionKeyCredentialPolicy(credential)); } else { // Throw exception that credential and tokenCredential cannot be null throw logger.logExceptionAsError( @@ -243,14 +244,15 @@ public TextAnalyticsClientBuilder endpoint(String endpoint) { /** * Sets the credential to use when authenticating HTTP requests for this TextAnalyticsClientBuilder. * - * @param subscriptionKey subscription key + * @param subscriptionKeyCredential subscription key credential * * @return The updated TextAnalyticsClientBuilder object. - * @throws NullPointerException If {@code subscriptionKey} is {@code null} + * @throws NullPointerException If {@code subscriptionKeyCredential} is {@code null} */ - public TextAnalyticsClientBuilder subscriptionKey(TextAnalyticsSubscriptionKeyCredential subscriptionKey) { - Objects.requireNonNull(subscriptionKey, "'subscriptionKey' cannot be null."); - this.subscriptionKey = subscriptionKey; + public TextAnalyticsClientBuilder subscriptionKey( + TextAnalyticsSubscriptionKeyCredential subscriptionKeyCredential) { + Objects.requireNonNull(subscriptionKeyCredential, "'subscriptionKeyCredential' cannot be null."); + this.credential = subscriptionKeyCredential; return this; } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java index dd280aa2e149..d497355d4b13 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java @@ -1,3 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java index b99b3b7b54c6..799d88353d43 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java @@ -74,6 +74,7 @@ public void updateToValidKey() { validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), client.detectLanguage("This is a test English Text").getDetectedLanguages()); } + @Test public void missingEndpoint() { assertThrows(NullPointerException.class, () -> { diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json new file mode 100644 index 000000000000..b2fa01bebd2b --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json @@ -0,0 +1,26 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "f69a5e04-8452-4625-84ab-39804a550bef", + "Content-Type" : "application/json" + }, + "Response" : { + "Transfer-Encoding" : "chunked", + "x-envoy-upstream-service-time" : "4", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-content-type-options" : "nosniff", + "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", + "apim-request-id" : "dff46a23-4b2a-4205-85e0-9739501b72ee", + "retry-after" : "0", + "StatusCode" : "200", + "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", + "Date" : "Mon, 27 Jan 2020 00:59:47 GMT", + "Content-Type" : "application/json; charset=utf-8" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json new file mode 100644 index 000000000000..a1439943fc95 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json @@ -0,0 +1,20 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "2857ac1c-91a4-4494-bb86-7eb0e26d9e1a", + "Content-Type" : "application/json" + }, + "Response" : { + "retry-after" : "0", + "Content-Length" : "224", + "StatusCode" : "401", + "Body" : "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}", + "Date" : "Mon, 27 Jan 2020 00:59:47 GMT" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/missingEndpoint.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/missingEndpoint.json new file mode 100644 index 000000000000..ba5f37f8f855 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/missingEndpoint.json @@ -0,0 +1,4 @@ +{ + "networkCallRecords" : [ ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullAADCredential.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullAADCredential.json new file mode 100644 index 000000000000..ba5f37f8f855 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullAADCredential.json @@ -0,0 +1,4 @@ +{ + "networkCallRecords" : [ ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json new file mode 100644 index 000000000000..b1cb6fb63c6a --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json @@ -0,0 +1,26 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "17547883-0c92-45dc-9e4c-c5bbd82512c4", + "Content-Type" : "application/json" + }, + "Response" : { + "Transfer-Encoding" : "chunked", + "x-envoy-upstream-service-time" : "12", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-content-type-options" : "nosniff", + "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", + "apim-request-id" : "04e76a72-266f-4df8-86c0-feb9681a6986", + "retry-after" : "0", + "StatusCode" : "200", + "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", + "Date" : "Mon, 27 Jan 2020 00:59:47 GMT", + "Content-Type" : "application/json; charset=utf-8" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullSubscriptionKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullSubscriptionKey.json new file mode 100644 index 000000000000..ba5f37f8f855 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullSubscriptionKey.json @@ -0,0 +1,4 @@ +{ + "networkCallRecords" : [ ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json deleted file mode 100644 index ccae23c8da50..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialAsyncClient.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "networkCallRecords" : [ { - "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", - "Headers" : { - "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", - "x-ms-client-request-id" : "bbc9e27e-f673-4415-845d-f3d6a86b7158", - "Content-Type" : "application/json" - }, - "Response" : { - "Transfer-Encoding" : "chunked", - "x-envoy-upstream-service-time" : "4", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "x-content-type-options" : "nosniff", - "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", - "apim-request-id" : "252819b1-3463-47f9-8cdf-bbd1d13397ea", - "retry-after" : "0", - "StatusCode" : "200", - "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", - "Date" : "Tue, 21 Jan 2020 18:24:15 GMT", - "Content-Type" : "application/json; charset=utf-8" - }, - "Exception" : null - }, { - "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", - "Headers" : { - "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", - "x-ms-client-request-id" : "5d16df05-d11b-4af9-bea0-565947dbfe1a", - "Content-Type" : "application/json" - }, - "Response" : { - "retry-after" : "0", - "Content-Length" : "224", - "StatusCode" : "401", - "Body" : "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}", - "Date" : "Tue, 21 Jan 2020 18:24:16 GMT" - }, - "Exception" : null - } ], - "variables" : [ ] -} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json deleted file mode 100644 index e4132cf24dfd..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/rotateSharedKeyCredentialSyncClient.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "networkCallRecords" : [ { - "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", - "Headers" : { - "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", - "x-ms-client-request-id" : "6279dc33-5ac7-415f-8eef-c1927f05e1df", - "Content-Type" : "application/json" - }, - "Response" : { - "Transfer-Encoding" : "chunked", - "x-envoy-upstream-service-time" : "4", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "x-content-type-options" : "nosniff", - "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", - "apim-request-id" : "760de43c-6946-42ec-87aa-2cefca90f606", - "retry-after" : "0", - "StatusCode" : "200", - "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", - "Date" : "Wed, 22 Jan 2020 00:05:37 GMT", - "Content-Type" : "application/json; charset=utf-8" - }, - "Exception" : null - }, { - "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", - "Headers" : { - "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", - "x-ms-client-request-id" : "961159e7-78aa-4966-a4aa-bb0cb1538266", - "Content-Type" : "application/json" - }, - "Response" : { - "retry-after" : "0", - "Content-Length" : "224", - "StatusCode" : "401", - "Body" : "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}", - "Date" : "Wed, 22 Jan 2020 00:05:37 GMT" - }, - "Exception" : null - } ], - "variables" : [ ] -} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json new file mode 100644 index 000000000000..9667d370e02a --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json @@ -0,0 +1,20 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "04c699d4-b729-4fd1-b7af-0463235ccfcb", + "Content-Type" : "application/json" + }, + "Response" : { + "retry-after" : "0", + "Content-Length" : "224", + "StatusCode" : "401", + "Body" : "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}", + "Date" : "Mon, 27 Jan 2020 00:59:47 GMT" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json new file mode 100644 index 000000000000..b30c04105142 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json @@ -0,0 +1,26 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "2ec87796-1601-41a0-b817-97d36d52a3ac", + "Content-Type" : "application/json" + }, + "Response" : { + "Transfer-Encoding" : "chunked", + "x-envoy-upstream-service-time" : "4", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-content-type-options" : "nosniff", + "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", + "apim-request-id" : "3cb40441-eeb2-4af5-884f-39ff4818ac55", + "retry-after" : "0", + "StatusCode" : "200", + "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", + "Date" : "Mon, 27 Jan 2020 00:59:47 GMT", + "Content-Type" : "application/json; charset=utf-8" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json new file mode 100644 index 000000000000..223c8c560784 --- /dev/null +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json @@ -0,0 +1,26 @@ +{ + "networkCallRecords" : [ { + "Method" : "POST", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Headers" : { + "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", + "x-ms-client-request-id" : "0851291e-a96c-43bb-afb3-8138cb103c79", + "Content-Type" : "application/json" + }, + "Response" : { + "Transfer-Encoding" : "chunked", + "x-envoy-upstream-service-time" : "4", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-content-type-options" : "nosniff", + "csp-billing-usage" : "CognitiveServices.TextAnalytics.BatchScoring=1", + "apim-request-id" : "9a03bffa-a493-4ddc-b098-e85f948dab22", + "retry-after" : "0", + "StatusCode" : "200", + "Body" : "{\"documents\":[{\"id\":\"0\",\"detectedLanguages\":[{\"name\":\"English\",\"iso6391Name\":\"en\",\"score\":1.0}]}],\"errors\":[],\"modelVersion\":\"2019-10-01\"}", + "Date" : "Mon, 27 Jan 2020 01:04:03 GMT", + "Content-Type" : "application/json; charset=utf-8" + }, + "Exception" : null + } ], + "variables" : [ ] +} \ No newline at end of file From 6f3ee3db3b09fc06168245eb08b5d0223f08b808 Mon Sep 17 00:00:00 2001 From: shafang Date: Mon, 27 Jan 2020 09:34:59 -0800 Subject: [PATCH 08/11] add volatile to subscription key to visisbility --- ...extAnalyticsSubscriptionKeyCredential.java | 2 +- .../com/azure/ai/textanalytics/TestUtil.java | 60 ------- .../TextAnalyticsAsyncClientTest.java | 167 ++++++++++++++++++ ...AnalyticsClientBuilderAsyncClientTest.java | 159 ----------------- ...tAnalyticsClientBuilderSyncClientTest.java | 144 --------------- .../TextAnalyticsClientTest.java | 152 ++++++++++++++++ .../TextAnalyticsClientTestBase.java | 36 ++++ 7 files changed, 356 insertions(+), 364 deletions(-) delete mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java delete mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java delete mode 100644 sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java index 36c6b05e9c11..d5586861ca3f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java @@ -13,7 +13,7 @@ * */ public final class TextAnalyticsSubscriptionKeyCredential { - private String subscriptionKey; + private volatile String subscriptionKey; /** * Creates a {@link TextAnalyticsSubscriptionKeyCredential} model that describes subscription key for diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java deleted file mode 100644 index d497355d4b13..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TestUtil.java +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.textanalytics; - -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; -import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; -import com.azure.core.test.TestBase; -import com.azure.core.util.Configuration; - -/** - * The test util class that could share test function for all other tests for synchronous or asynchronous client. - */ -public class TestUtil extends TestBase { - private static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; - static final String INVALID_KEY = "invalid key"; - - /** - * Create a client builder with endpoint and subscription key credential. - * - * @param endpoint the given endpoint - * @param credential the given {@link TextAnalyticsSubscriptionKeyCredential} credential - * @return {@link TextAnalyticsClientBuilder} - */ - TextAnalyticsClientBuilder createClientBuilder(String endpoint, TextAnalyticsSubscriptionKeyCredential credential) { - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .subscriptionKey(credential) - .endpoint(endpoint); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - return clientBuilder; - } - - /** - * Get the endpoint based on what running mode is on. - * - * @return endpoint string - */ - String getEndpoint() { - return interceptorManager.isPlaybackMode() - ? "http://localhost:8080" - : Configuration.getGlobalConfiguration().get("AZURE_TEXT_ANALYTICS_ENDPOINT"); - } - - /** - * Get the string of subscription key value based on what running mode is on. - * - * @return the subscription key string - */ - String getSubscriptionKey() { - return interceptorManager.isPlaybackMode() ? "subscriptionKeyInPlayback" - : Configuration.getGlobalConfiguration().get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); - } -} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java index 5870660a2902..eb1468e91c52 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java @@ -11,9 +11,15 @@ import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsError; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.ai.textanalytics.models.TextSentimentClass; import com.azure.core.exception.HttpResponseException; +import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; +import com.azure.core.http.policy.HttpLogDetailLevel; +import com.azure.core.http.policy.HttpLogOptions; +import com.azure.core.http.policy.RetryPolicy; +import com.azure.core.util.Configuration; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -31,6 +37,7 @@ import static com.azure.ai.textanalytics.TestUtils.getExpectedBatchPiiEntities; import static com.azure.ai.textanalytics.TestUtils.getExpectedBatchTextSentiment; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; public class TextAnalyticsAsyncClientTest extends TextAnalyticsClientTestBase { private TextAnalyticsAsyncClient client; @@ -475,4 +482,164 @@ public void analyseSentimentForBatchInputShowStatistics() { .assertNext(response -> validateSentiment(true, getExpectedBatchTextSentiment(), response.getValue())) .verifyComplete()); } + + /** + * Test client builder with valid subscription key + */ + @Test + public void validKey() { + // Arrange + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildAsyncClient(); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } + + /** + * Test client builder with invalid subscription key + */ + @Test + public void invalidKey() { + // Arrange + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildAsyncClient(); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .verifyError(HttpResponseException.class); + } + + /** + * Test client with valid subscription key but update to invalid key and make call to server. + */ + @Test + public void updateToInvalidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); + + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); + + // Update to invalid key + credential.updateCredential(INVALID_KEY); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .verifyError(HttpResponseException.class); + } + + /** + * Test client with invalid subscription key but update to valid key and make call to server. + */ + @Test + public void updateToValidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); + + final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); + + // Update to valid key + credential.updateCredential(getSubscriptionKey()); + + // Action and Assert + StepVerifier.create(client.detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } + + /** + * Test for missing endpoint + */ + @Test + public void missingEndpoint() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.buildAsyncClient(); + }); + } + + /** + * Test for null subscription key + */ + @Test + public void nullSubscriptionKey() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).subscriptionKey(null).buildAsyncClient(); + }); + } + + /** + * Test for null AAD credential + */ + @Test + public void nullAADCredential() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).credential(null).buildAsyncClient(); + }); + } + + /** + * Test for null service version, which would take take the default service version by default + */ + @Test + public void nullServiceVersion() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .retryPolicy(new RetryPolicy()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) + .serviceVersion(null); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + StepVerifier.create(clientBuilder.buildAsyncClient().detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } + + /** + * Test for default pipeline in client builder + */ + @Test + public void defaultPipeline() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .configuration(Configuration.getGlobalConfiguration()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + StepVerifier.create(clientBuilder.buildAsyncClient().detectLanguage("This is a test English Text")) + .assertNext(response -> validateDetectedLanguages( + Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + response.getDetectedLanguages())) + .verifyComplete(); + } } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java deleted file mode 100644 index f250e2935929..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderAsyncClientTest.java +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.textanalytics; - -import com.azure.ai.textanalytics.models.DetectedLanguage; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; -import com.azure.core.exception.HttpResponseException; -import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; -import com.azure.core.http.policy.HttpLogDetailLevel; -import com.azure.core.http.policy.HttpLogOptions; -import com.azure.core.http.policy.RetryPolicy; -import com.azure.core.util.Configuration; -import org.junit.jupiter.api.Test; -import reactor.test.StepVerifier; - -import java.util.Arrays; - -import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; -import static org.junit.jupiter.api.Assertions.assertThrows; - -/** - * Client builder tests for the asynchronous client - */ -public class TextAnalyticsClientBuilderAsyncClientTest extends TestUtil { - - @Test - public void validKey() { - // Arrange - final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildAsyncClient(); - - // Action and Assert - StepVerifier.create(client.detectLanguage("This is a test English Text")) - .assertNext(response -> validateDetectedLanguages( - Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - response.getDetectedLanguages())) - .verifyComplete(); - } - - @Test - public void invalidKey() { - // Arrange - final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildAsyncClient(); - - // Action and Assert - StepVerifier.create(client.detectLanguage("This is a test English Text")) - .verifyError(HttpResponseException.class); - } - - @Test - public void updateToInvalidKey() { - // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); - - final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); - - // Update to invalid key - credential.updateCredential(INVALID_KEY); - - // Action and Assert - StepVerifier.create(client.detectLanguage("This is a test English Text")) - .verifyError(HttpResponseException.class); - } - - @Test - public void updateToValidKey() { - // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); - - final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); - - // Update to valid key - credential.updateCredential(getSubscriptionKey()); - - // Action and Assert - StepVerifier.create(client.detectLanguage("This is a test English Text")) - .assertNext(response -> validateDetectedLanguages( - Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - response.getDetectedLanguages())) - .verifyComplete(); - } - - @Test - public void missingEndpoint() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.buildAsyncClient(); - }); - } - - @Test - public void nullSubscriptionKey() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).subscriptionKey(null).buildAsyncClient(); - }); - } - - @Test - public void nullAADCredential() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).credential(null).buildAsyncClient(); - }); - } - - @Test - public void nullServiceVersion() { - // Arrange - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) - .retryPolicy(new RetryPolicy()) - .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) - .serviceVersion(null); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - // Action and Assert - StepVerifier.create(clientBuilder.buildAsyncClient().detectLanguage("This is a test English Text")) - .assertNext(response -> validateDetectedLanguages( - Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - response.getDetectedLanguages())) - .verifyComplete(); - } - - @Test - public void defaultPipeline() { - // Arrange - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) - .configuration(Configuration.getGlobalConfiguration()) - .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - // Action and Assert - StepVerifier.create(clientBuilder.buildAsyncClient().detectLanguage("This is a test English Text")) - .assertNext(response -> validateDetectedLanguages( - Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - response.getDetectedLanguages())) - .verifyComplete(); - } -} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java deleted file mode 100644 index 799d88353d43..000000000000 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilderSyncClientTest.java +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.textanalytics; - -import com.azure.ai.textanalytics.models.DetectedLanguage; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; -import com.azure.core.exception.HttpResponseException; -import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; -import com.azure.core.http.policy.HttpLogDetailLevel; -import com.azure.core.http.policy.HttpLogOptions; -import com.azure.core.http.policy.RetryPolicy; -import com.azure.core.util.Configuration; -import org.junit.jupiter.api.Test; - -import java.util.Arrays; - -import static com.azure.ai.textanalytics.TextAnalyticsClientTestBase.validateDetectedLanguages; -import static org.junit.jupiter.api.Assertions.assertThrows; - -/** - * Client builder tests for the synchronous client - */ -public class TextAnalyticsClientBuilderSyncClientTest extends TestUtil { - - @Test - public void validKey() { - // Arrange - final TextAnalyticsClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildClient(); - - // Action and Assert - validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - client.detectLanguage("This is a test English Text").getDetectedLanguages()); - } - - @Test - public void invalidKey() { - // Arrange - final TextAnalyticsClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildClient(); - - // Action and Assert - assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); - } - - @Test - public void updateToInvalidKey() { - // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); - - final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); - - // Update to invalid key - credential.updateCredential(INVALID_KEY); - - // Action and Assert - assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); - } - - @Test - public void updateToValidKey() { - // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); - - final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); - - // Update to valid key - credential.updateCredential(getSubscriptionKey()); - - // Action and Assert - validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - client.detectLanguage("This is a test English Text").getDetectedLanguages()); - } - - @Test - public void missingEndpoint() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.buildClient(); - }); - } - - @Test - public void nullSubscriptionKey() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).subscriptionKey(null).buildClient(); - }); - } - - @Test - public void nullAADCredential() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).credential(null).buildClient(); - }); - } - - @Test - public void nullServiceVersion() { - // Arrange - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) - .retryPolicy(new RetryPolicy()) - .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) - .serviceVersion(null); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - // Action and Assert - validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - clientBuilder.buildClient().detectLanguage("This is a test English Text").getDetectedLanguages()); - } - - @Test - public void defaultPipeline() { - // Arrange - final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() - .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) - .configuration(Configuration.getGlobalConfiguration()) - .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); - - if (interceptorManager.isPlaybackMode()) { - clientBuilder.httpClient(interceptorManager.getPlaybackClient()); - } else { - clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) - .addPolicy(interceptorManager.getRecordPolicy()); - } - - // Action and Assert - validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), - clientBuilder.buildClient().detectLanguage("This is a test English Text").getDetectedLanguages()); - } -} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java index ce92afce7d67..843382fa6a39 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java @@ -13,9 +13,15 @@ import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsError; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.ai.textanalytics.models.TextSentimentClass; import com.azure.core.exception.HttpResponseException; +import com.azure.core.http.netty.NettyAsyncHttpClientBuilder; +import com.azure.core.http.policy.HttpLogDetailLevel; +import com.azure.core.http.policy.HttpLogOptions; +import com.azure.core.http.policy.RetryPolicy; +import com.azure.core.util.Configuration; import com.azure.core.util.Context; import org.junit.jupiter.api.Test; @@ -408,4 +414,150 @@ public void analyseSentimentForBatchInputShowStatistics() { validateSentiment(true, getExpectedBatchTextSentiment(), client.analyzeBatchSentimentWithResponse(inputs, options, Context.NONE).getValue())); } + + /** + * Test client builder with valid subscription key + */ + @Test + public void validKey() { + // Arrange + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildClient(); + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + client.detectLanguage("This is a test English Text").getDetectedLanguages()); + } + + /** + * Test client builder with invalid subscription key + */ + @Test + public void invalidKey() { + // Arrange + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildClient(); + + // Action and Assert + assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); + } + + /** + * Test client with valid subscription key but update to invalid key and make call to server. + */ + @Test + public void updateToInvalidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); + + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); + + // Update to invalid key + credential.updateCredential(INVALID_KEY); + + // Action and Assert + assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); + } + + /** + * Test client with invalid subscription key but update to valid key and make call to server. + */ + @Test + public void updateToValidKey() { + // Arrange + final TextAnalyticsSubscriptionKeyCredential credential = + new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); + + final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); + + // Update to valid key + credential.updateCredential(getSubscriptionKey()); + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + client.detectLanguage("This is a test English Text").getDetectedLanguages()); + } + + /** + * Test for missing endpoint + */ + @Test + public void missingEndpoint() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.buildClient(); + }); + } + + /** + * Test for null subscription key + */ + @Test + public void nullSubscriptionKey() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).subscriptionKey(null).buildClient(); + }); + } + + /** + * Test for null AAD credential + */ + @Test + public void nullAADCredential() { + assertThrows(NullPointerException.class, () -> { + final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); + builder.endpoint(getEndpoint()).credential(null).buildClient(); + }); + } + + /** + * Test for null service version, which would take take the default service version by default + */ + @Test + public void nullServiceVersion() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .retryPolicy(new RetryPolicy()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) + .serviceVersion(null); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + clientBuilder.buildClient().detectLanguage("This is a test English Text").getDetectedLanguages()); + } + + /** + * Test for default pipeline in client builder + */ + @Test + public void defaultPipeline() { + // Arrange + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .endpoint(getEndpoint()) + .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .configuration(Configuration.getGlobalConfiguration()) + .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + // Action and Assert + validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), + clientBuilder.buildClient().detectLanguage("This is a test English Text").getDetectedLanguages()); + } } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java index 914f66f914b3..4a9e7f9ca715 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java @@ -18,6 +18,7 @@ import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsError; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; +import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextDocumentStatistics; @@ -665,4 +666,39 @@ private static void validatePrimaryLanguage(DetectedLanguage expectedLanguage, D assertEquals(expectedLanguage.getName(), actualLanguage.getName()); assertNotNull(actualLanguage.getScore()); } + + private static final String AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY = "AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY"; + static final String INVALID_KEY = "invalid key"; + + /** + * Create a client builder with endpoint and subscription key credential. + * + * @param endpoint the given endpoint + * @param credential the given {@link TextAnalyticsSubscriptionKeyCredential} credential + * @return {@link TextAnalyticsClientBuilder} + */ + TextAnalyticsClientBuilder createClientBuilder(String endpoint, TextAnalyticsSubscriptionKeyCredential credential) { + final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() + .subscriptionKey(credential) + .endpoint(endpoint); + + if (interceptorManager.isPlaybackMode()) { + clientBuilder.httpClient(interceptorManager.getPlaybackClient()); + } else { + clientBuilder.httpClient(new NettyAsyncHttpClientBuilder().wiretap(true).build()) + .addPolicy(interceptorManager.getRecordPolicy()); + } + + return clientBuilder; + } + + /** + * Get the string of subscription key value based on what running mode is on. + * + * @return the subscription key string + */ + String getSubscriptionKey() { + return interceptorManager.isPlaybackMode() ? "subscriptionKeyInPlayback" + : Configuration.getGlobalConfiguration().get(AZURE_TEXT_ANALYTICS_SUBSCRIPTION_KEY); + } } From f408f1c1bd010893aaed6639831a38098f5146cd Mon Sep 17 00:00:00 2001 From: shafang Date: Mon, 27 Jan 2020 12:19:23 -0800 Subject: [PATCH 09/11] update json files and take caure endpoint last character --- .../ai/textanalytics/TextAnalyticsClientBuilder.java | 8 +++++++- .../test/resources/session-records/defaultPipeline.json | 4 ++-- .../src/test/resources/session-records/invalidKey.json | 4 ++-- .../resources/session-records/nullServiceVersion.json | 4 ++-- .../resources/session-records/updateToInvalidKey.json | 4 ++-- .../test/resources/session-records/updateToValidKey.json | 4 ++-- .../src/test/resources/session-records/validKey.json | 4 ++-- 7 files changed, 19 insertions(+), 13 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java index 4a6ff047f80b..9e97abb49f98 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java @@ -237,7 +237,13 @@ public TextAnalyticsClientBuilder endpoint(String endpoint) { } catch (MalformedURLException ex) { throw logger.logExceptionAsWarning(new IllegalArgumentException("'endpoint' must be a valid URL", ex)); } - this.endpoint = endpoint; + + if (endpoint.endsWith("/")) { + this.endpoint = endpoint.substring(0, endpoint.length() - 1); + } else { + this.endpoint = endpoint; + } + return this; } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json index b2fa01bebd2b..63f5409fbd84 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/defaultPipeline.json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", "Headers" : { "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", "x-ms-client-request-id" : "f69a5e04-8452-4625-84ab-39804a550bef", @@ -23,4 +23,4 @@ "Exception" : null } ], "variables" : [ ] -} \ No newline at end of file +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json index a1439943fc95..7ecedab25756 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/invalidKey.json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", "Headers" : { "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", "x-ms-client-request-id" : "2857ac1c-91a4-4494-bb86-7eb0e26d9e1a", @@ -17,4 +17,4 @@ "Exception" : null } ], "variables" : [ ] -} \ No newline at end of file +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json index b1cb6fb63c6a..73587a8e9028 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/nullServiceVersion.json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", "Headers" : { "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", "x-ms-client-request-id" : "17547883-0c92-45dc-9e4c-c5bbd82512c4", @@ -23,4 +23,4 @@ "Exception" : null } ], "variables" : [ ] -} \ No newline at end of file +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json index 9667d370e02a..f768a8efd741 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToInvalidKey.json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", "Headers" : { "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", "x-ms-client-request-id" : "04c699d4-b729-4fd1-b7af-0463235ccfcb", @@ -17,4 +17,4 @@ "Exception" : null } ], "variables" : [ ] -} \ No newline at end of file +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json index b30c04105142..0a2bf6142763 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/updateToValidKey.json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", "Headers" : { "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", "x-ms-client-request-id" : "2ec87796-1601-41a0-b817-97d36d52a3ac", @@ -23,4 +23,4 @@ "Exception" : null } ], "variables" : [ ] -} \ No newline at end of file +} diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json index 223c8c560784..ef0d656497ed 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/resources/session-records/validKey.json @@ -1,7 +1,7 @@ { "networkCallRecords" : [ { "Method" : "POST", - "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com//text/analytics/v3.0-preview.1/languages", + "Uri" : "https://javatextanalyticstestresources.cognitiveservices.azure.com/text/analytics/v3.0-preview.1/languages", "Headers" : { "User-Agent" : "azsdk-java-azure-ai-textanalytics/1.0.0-beta.1 (11.0.4; Windows 10 10.0)", "x-ms-client-request-id" : "0851291e-a96c-43bb-afb3-8138cb103c79", @@ -23,4 +23,4 @@ "Exception" : null } ], "variables" : [ ] -} \ No newline at end of file +} From af5710db8d9e617de900c50861b8874f9d180e07 Mon Sep 17 00:00:00 2001 From: shafang Date: Mon, 27 Jan 2020 20:37:34 -0800 Subject: [PATCH 10/11] workding and delete some dup tests --- .../azure-ai-textanalytics/README.md | 2 +- .../azure/ai/textanalytics/ReadmeSamples.java | 2 +- .../TextAnalyticsAsyncClientTest.java | 22 ------------------- .../TextAnalyticsClientTest.java | 4 ++-- 4 files changed, 4 insertions(+), 26 deletions(-) diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index 56ed10c75302..21cb3491069b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -127,7 +127,7 @@ The Azure Text Analytics client library provide a way to rotate the existing sub ```java -TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{expired_subscription_key}"); +TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{subscription_key}"); TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint("{endpoint}") diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java index f82649cadb7f..e3ce0331714d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java @@ -171,7 +171,7 @@ public void handlingException() { * Code snippet for rotating subscription key of the client */ public void rotatingSubscriptionKey() { - TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{expired_subscription_key}"); + TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{subscription_key}"); TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint("{endpoint}") diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java index eb1468e91c52..f19b925b859a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java @@ -566,28 +566,6 @@ public void missingEndpoint() { }); } - /** - * Test for null subscription key - */ - @Test - public void nullSubscriptionKey() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).subscriptionKey(null).buildAsyncClient(); - }); - } - - /** - * Test for null AAD credential - */ - @Test - public void nullAADCredential() { - assertThrows(NullPointerException.class, () -> { - final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).credential(null).buildAsyncClient(); - }); - } - /** * Test for null service version, which would take take the default service version by default */ diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java index 843382fa6a39..f9bdf0e30118 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java @@ -497,7 +497,7 @@ public void missingEndpoint() { public void nullSubscriptionKey() { assertThrows(NullPointerException.class, () -> { final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).subscriptionKey(null).buildClient(); + builder.endpoint(getEndpoint()).subscriptionKey(null); }); } @@ -508,7 +508,7 @@ public void nullSubscriptionKey() { public void nullAADCredential() { assertThrows(NullPointerException.class, () -> { final TextAnalyticsClientBuilder builder = new TextAnalyticsClientBuilder(); - builder.endpoint(getEndpoint()).credential(null).buildClient(); + builder.endpoint(getEndpoint()).credential(null); }); } From 06013da7acc0c0752579ed7e11a40d7d78d5435e Mon Sep 17 00:00:00 2001 From: shafang Date: Tue, 28 Jan 2020 11:59:21 -0800 Subject: [PATCH 11/11] renanem to TextAnalyticsApiKeyCredential --- .../azure-ai-textanalytics/README.md | 10 +++++----- .../TextAnalyticsClientBuilder.java | 14 +++++++------- .../SubscriptionKeyCredentialPolicy.java | 12 ++++++------ ...java => TextAnalyticsApiKeyCredential.java} | 8 ++++---- .../ai/textanalytics/AnalyzeSentiment.java | 4 ++-- .../textanalytics/AnalyzeSentimentAsync.java | 4 ++-- .../azure/ai/textanalytics/DetectLanguage.java | 4 ++-- .../ai/textanalytics/DetectLanguageAsync.java | 4 ++-- .../ai/textanalytics/ExtractKeyPhrases.java | 4 ++-- .../textanalytics/ExtractKeyPhrasesAsync.java | 4 ++-- .../azure/ai/textanalytics/ReadmeSamples.java | 8 ++++---- .../ai/textanalytics/RecognizeEntities.java | 4 ++-- .../textanalytics/RecognizeEntitiesAsync.java | 4 ++-- .../textanalytics/RecognizeLinkedEntities.java | 4 ++-- .../RecognizeLinkedEntitiesAsync.java | 4 ++-- .../azure/ai/textanalytics/RecognizePii.java | 4 ++-- .../ai/textanalytics/RecognizePiiAsync.java | 4 ++-- .../textanalytics/RotateSubscriptionKey.java | 4 ++-- .../RotateSubscriptionKeyAsync.java | 4 ++-- ...nalyticsAsyncClientJavaDocCodeSnippets.java | 12 ++++++------ ...TextAnalyticsClientJavaDocCodeSnippets.java | 6 +++--- .../batch/AnalyzeSentimentBatchDocuments.java | 4 ++-- .../AnalyzeSentimentBatchDocumentsAsync.java | 4 ++-- .../batch/DetectLanguageBatchDocuments.java | 4 ++-- .../DetectLanguageBatchDocumentsAsync.java | 4 ++-- .../batch/ExtractKeyPhrasesBatchDocuments.java | 4 ++-- .../ExtractKeyPhrasesBatchDocumentsAsync.java | 4 ++-- .../batch/RecognizeEntitiesBatchDocuments.java | 4 ++-- .../RecognizeEntitiesBatchDocumentsAsync.java | 4 ++-- .../RecognizeLinkedEntitiesBatchDocuments.java | 4 ++-- ...gnizeLinkedEntitiesBatchDocumentsAsync.java | 4 ++-- .../batch/RecognizePiiBatchDocuments.java | 4 ++-- .../batch/RecognizePiiBatchDocumentsAsync.java | 4 ++-- .../TextAnalyticsAsyncClientTest.java | 18 +++++++++--------- .../textanalytics/TextAnalyticsClientTest.java | 18 +++++++++--------- .../TextAnalyticsClientTestBase.java | 6 +++--- 36 files changed, 108 insertions(+), 108 deletions(-) rename sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/{TextAnalyticsSubscriptionKeyCredential.java => TextAnalyticsApiKeyCredential.java} (81%) diff --git a/sdk/textanalytics/azure-ai-textanalytics/README.md b/sdk/textanalytics/azure-ai-textanalytics/README.md index 56ed10c75302..7efddbb369c9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/README.md +++ b/sdk/textanalytics/azure-ai-textanalytics/README.md @@ -76,7 +76,7 @@ cognitive services. ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); ``` @@ -117,7 +117,7 @@ your resource and a subscription key that allows you access: ```java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); ``` @@ -127,7 +127,7 @@ The Azure Text Analytics client library provide a way to rotate the existing sub ```java -TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{expired_subscription_key}"); +TextAnalyticsApiKeyCredential credential = new TextAnalyticsApiKeyCredential("{expired_subscription_key}"); TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint("{endpoint}") @@ -202,14 +202,14 @@ Text analytics support both synchronous and asynchronous client creation by usin ``` java TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); ``` ``` java TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); ``` diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java index 9e97abb49f98..511e16ab0dd8 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/TextAnalyticsClientBuilder.java @@ -6,7 +6,7 @@ import com.azure.ai.textanalytics.implementation.SubscriptionKeyCredentialPolicy; import com.azure.ai.textanalytics.implementation.TextAnalyticsClientImpl; import com.azure.ai.textanalytics.implementation.TextAnalyticsClientImplBuilder; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextAnalyticsClientOptions; import com.azure.core.annotation.ServiceClientBuilder; import com.azure.core.credential.TokenCredential; @@ -44,8 +44,8 @@ * *

* The client needs the service endpoint of the Azure Text Analytics to access the resource service. - * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) - * subscriptionKey(TextAnalyticsSubscriptionKeyCredential)} or + * {@link #subscriptionKey(TextAnalyticsApiKeyCredential) + * subscriptionKey(TextAnalyticsApiKeyCredential)} or * {@link #credential(TokenCredential) credential(TokenCredential)} give the builder access credential. *

* @@ -89,7 +89,7 @@ public final class TextAnalyticsClientBuilder { private final String clientVersion; private String endpoint; - private TextAnalyticsSubscriptionKeyCredential credential; + private TextAnalyticsApiKeyCredential credential; private TokenCredential tokenCredential; private HttpClient httpClient; private HttpLogOptions httpLogOptions; @@ -128,7 +128,7 @@ public TextAnalyticsClientBuilder() { * * @return A TextAnalyticsClient with the options set from the builder. * @throws NullPointerException if {@link #endpoint(String) endpoint} or - * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) subscriptionKey} has not been set. + * {@link #subscriptionKey(TextAnalyticsApiKeyCredential) subscriptionKey} has not been set. * @throws IllegalArgumentException if {@link #endpoint(String) endpoint} cannot be parsed into a valid URL. */ public TextAnalyticsClient buildClient() { @@ -148,7 +148,7 @@ public TextAnalyticsClient buildClient() { * * @return A TextAnalyticsAsyncClient with the options set from the builder. * @throws NullPointerException if {@link #endpoint(String) endpoint} or - * {@link #subscriptionKey(TextAnalyticsSubscriptionKeyCredential) subscriptionKey} has not been set. + * {@link #subscriptionKey(TextAnalyticsApiKeyCredential) subscriptionKey} has not been set. * @throws IllegalArgumentException if {@link #endpoint(String) endpoint} cannot be parsed into a valid URL. */ public TextAnalyticsAsyncClient buildAsyncClient() { @@ -256,7 +256,7 @@ public TextAnalyticsClientBuilder endpoint(String endpoint) { * @throws NullPointerException If {@code subscriptionKeyCredential} is {@code null} */ public TextAnalyticsClientBuilder subscriptionKey( - TextAnalyticsSubscriptionKeyCredential subscriptionKeyCredential) { + TextAnalyticsApiKeyCredential subscriptionKeyCredential) { Objects.requireNonNull(subscriptionKeyCredential, "'subscriptionKeyCredential' cannot be null."); this.credential = subscriptionKeyCredential; return this; diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java index 6d27275f6733..57622871780d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/implementation/SubscriptionKeyCredentialPolicy.java @@ -7,24 +7,24 @@ import com.azure.core.http.HttpPipelineNextPolicy; import com.azure.core.http.HttpResponse; import com.azure.core.http.policy.HttpPipelinePolicy; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import reactor.core.publisher.Mono; /** - * Policy that adds the {@link TextAnalyticsSubscriptionKeyCredential} into the request's `Ocp-Apim-Subscription-Key` + * Policy that adds the {@link TextAnalyticsApiKeyCredential} into the request's `Ocp-Apim-Subscription-Key` * header. */ public final class SubscriptionKeyCredentialPolicy implements HttpPipelinePolicy { private static final String OCP_APIM_SUBSCRIPTION_KEY = "Ocp-Apim-Subscription-Key"; - private final TextAnalyticsSubscriptionKeyCredential credential; + private final TextAnalyticsApiKeyCredential credential; /** * Creates a {@link SubscriptionKeyCredentialPolicy} pipeline policy that adds the - * {@link TextAnalyticsSubscriptionKeyCredential} into the request's `Ocp-Apim-Subscription-Key` header. + * {@link TextAnalyticsApiKeyCredential} into the request's `Ocp-Apim-Subscription-Key` header. * - * @param credential the {@link TextAnalyticsSubscriptionKeyCredential} credential used to create the policy. + * @param credential the {@link TextAnalyticsApiKeyCredential} credential used to create the policy. */ - public SubscriptionKeyCredentialPolicy(TextAnalyticsSubscriptionKeyCredential credential) { + public SubscriptionKeyCredentialPolicy(TextAnalyticsApiKeyCredential credential) { this.credential = credential; } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsApiKeyCredential.java similarity index 81% rename from sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java rename to sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsApiKeyCredential.java index d5586861ca3f..732ba68b8388 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsSubscriptionKeyCredential.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/main/java/com/azure/ai/textanalytics/models/TextAnalyticsApiKeyCredential.java @@ -9,19 +9,19 @@ * Subscription key credential that shared across cognitive services, or restrict to single service. * *

Be able to rotate an existing subscription key

- * {@codesnippet com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential} + * {@codesnippet com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential} * */ -public final class TextAnalyticsSubscriptionKeyCredential { +public final class TextAnalyticsApiKeyCredential { private volatile String subscriptionKey; /** - * Creates a {@link TextAnalyticsSubscriptionKeyCredential} model that describes subscription key for + * Creates a {@link TextAnalyticsApiKeyCredential} model that describes subscription key for * authentication. * * @param subscriptionKey the subscription key for authentication */ - public TextAnalyticsSubscriptionKeyCredential(String subscriptionKey) { + public TextAnalyticsApiKeyCredential(String subscriptionKey) { this.subscriptionKey = Objects.requireNonNull(subscriptionKey, "`subscriptionKey` cannot be null."); } diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java index ff8e55234cd7..41afb635083b 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentiment.java @@ -3,7 +3,7 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.ai.textanalytics.models.AnalyzeSentimentResult; @@ -19,7 +19,7 @@ public class AnalyzeSentiment { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java index 31d914280149..84f42c53edfb 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/AnalyzeSentimentAsync.java @@ -3,7 +3,7 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import java.util.concurrent.TimeUnit; @@ -20,7 +20,7 @@ public class AnalyzeSentimentAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java index 856d299528a3..71da0b4fb847 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguage.java @@ -5,7 +5,7 @@ import com.azure.ai.textanalytics.models.DetectLanguageResult; import com.azure.ai.textanalytics.models.DetectedLanguage; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; /** * Sample demonstrates how to detect the language of an input text. @@ -19,7 +19,7 @@ public class DetectLanguage { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java index 4e9ac1a45f43..dae75fa4b940 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/DetectLanguageAsync.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.DetectedLanguage; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import java.util.concurrent.TimeUnit; @@ -20,7 +20,7 @@ public class DetectLanguageAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java index afad9b374a88..d49bccf492a6 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrases.java @@ -3,7 +3,7 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; /** * Sample demonstrates how to extract the key phrases of an input text. @@ -17,7 +17,7 @@ public class ExtractKeyPhrases { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java index a3d23469966a..29dac5584293 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ExtractKeyPhrasesAsync.java @@ -3,7 +3,7 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import java.util.concurrent.TimeUnit; @@ -19,7 +19,7 @@ public class ExtractKeyPhrasesAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java index f82649cadb7f..0e71621bdde4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/ReadmeSamples.java @@ -7,7 +7,7 @@ import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.LinkedEntity; import com.azure.ai.textanalytics.models.NamedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.core.exception.HttpResponseException; import com.azure.core.http.HttpClient; @@ -42,7 +42,7 @@ public void configureHttpClient() { */ public void useSubscriptionKeySyncClient() { TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); } @@ -52,7 +52,7 @@ public void useSubscriptionKeySyncClient() { */ public void useSubscriptionKeyAsyncClient() { TextAnalyticsAsyncClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); } @@ -171,7 +171,7 @@ public void handlingException() { * Code snippet for rotating subscription key of the client */ public void rotatingSubscriptionKey() { - TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{expired_subscription_key}"); + TextAnalyticsApiKeyCredential credential = new TextAnalyticsApiKeyCredential("{expired_subscription_key}"); TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint("{endpoint}") diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java index 1f7fc23967d1..8092c16c70ed 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntities.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; /** * Sample demonstrates how to recognize the entities of an input text. @@ -18,7 +18,7 @@ public class RecognizeEntities { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java index 6392740fe71d..1ab6f19bef32 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeEntitiesAsync.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import java.util.concurrent.TimeUnit; @@ -20,7 +20,7 @@ public class RecognizeEntitiesAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java index 2b57a1b766e6..55b72f9d80de 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntities.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.LinkedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; /** * Sample demonstrates how to recognize the linked entities of an input text. @@ -18,7 +18,7 @@ public class RecognizeLinkedEntities { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java index 2a3c3a91f96e..5eb0a21b39ae 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizeLinkedEntitiesAsync.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.LinkedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import java.util.concurrent.TimeUnit; @@ -20,7 +20,7 @@ public class RecognizeLinkedEntitiesAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java index d374718e666a..dc9dd4c2ce2f 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePii.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; /** * Sample demonstrates how to recognize the PII(Personally Identifiable Information) entities of an input text. @@ -18,7 +18,7 @@ public class RecognizePii { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java index 0939535a9950..1dfa32ee22c5 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RecognizePiiAsync.java @@ -4,7 +4,7 @@ package com.azure.ai.textanalytics; import com.azure.ai.textanalytics.models.NamedEntity; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import java.util.concurrent.TimeUnit; @@ -21,7 +21,7 @@ public class RecognizePiiAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java index a2565eb3ae55..8b04eed6536a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKey.java @@ -3,7 +3,7 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.core.exception.HttpResponseException; /** @@ -17,7 +17,7 @@ public class RotateSubscriptionKey { * @param args Unused arguments to the program. */ public static void main(String[] args) { - TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{invalid_subscription_key}"); + TextAnalyticsApiKeyCredential credential = new TextAnalyticsApiKeyCredential("{invalid_subscription_key}"); TextAnalyticsClient client = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint("{endpoint}") diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java index 80d8db98eece..4a0ab07e8246 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/RotateSubscriptionKeyAsync.java @@ -3,7 +3,7 @@ package com.azure.ai.textanalytics; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import java.util.concurrent.TimeUnit; @@ -18,7 +18,7 @@ public class RotateSubscriptionKeyAsync { * @param args Unused arguments to the program. */ public static void main(String[] args) { - TextAnalyticsSubscriptionKeyCredential credential = new TextAnalyticsSubscriptionKeyCredential("{invalid_subscription_key}"); + TextAnalyticsApiKeyCredential credential = new TextAnalyticsApiKeyCredential("{invalid_subscription_key}"); TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint("{endpoint}") diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java index 25d442a4a1df..cf7a158a5195 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientJavaDocCodeSnippets.java @@ -15,7 +15,7 @@ import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -37,7 +37,7 @@ public class TextAnalyticsAsyncClientJavaDocCodeSnippets { public TextAnalyticsAsyncClient createTextAnalyticsAsyncClient() { // BEGIN: com.azure.ai.textanalytics.TextAnalyticsAsyncClient.instantiation TextAnalyticsAsyncClient textAnalyticsAsyncClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); // END: com.azure.ai.textanalytics.TextAnalyticsAsyncClient.instantiation @@ -48,9 +48,9 @@ public TextAnalyticsAsyncClient createTextAnalyticsAsyncClient() { * Code snippet for updating the existing subscription key. */ public void rotateSubscriptionKey() { - // BEGIN: com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential - TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential("{subscription_key}"); + // BEGIN: com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential + TextAnalyticsApiKeyCredential credential = + new TextAnalyticsApiKeyCredential("{subscription_key}"); TextAnalyticsAsyncClient textAnalyticsAsyncClient = new TextAnalyticsClientBuilder() .subscriptionKey(credential) @@ -58,7 +58,7 @@ public void rotateSubscriptionKey() { .buildAsyncClient(); credential.updateCredential("{new_subscription_key}"); - // END: com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential + // END: com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential } // Languages diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java index ad7bb5b855b0..98182ffcf4da 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/TextAnalyticsClientJavaDocCodeSnippets.java @@ -15,7 +15,7 @@ import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -42,7 +42,7 @@ public void createTextAnalyticsClientWithPipeline() { .build(); TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .pipeline(pipeline) .buildClient(); @@ -55,7 +55,7 @@ public void createTextAnalyticsClientWithPipeline() { public void createTextAnalyticsClient() { // BEGIN: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation TextAnalyticsClient textAnalyticsClient = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); // END: com.azure.ai.textanalytics.TextAnalyticsClient.instantiation diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java index 5a1253ca1182..b906da6c9a88 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocuments.java @@ -7,7 +7,7 @@ import com.azure.ai.textanalytics.TextAnalyticsClientBuilder; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -29,7 +29,7 @@ public class AnalyzeSentimentBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java index 5e0482166e86..e7b38e0f11c0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/AnalyzeSentimentBatchDocumentsAsync.java @@ -8,7 +8,7 @@ import com.azure.ai.textanalytics.models.AnalyzeSentimentResult; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextSentiment; @@ -29,7 +29,7 @@ public class AnalyzeSentimentBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java index 19b5c9c6ab8a..0d5055133dd3 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocuments.java @@ -10,7 +10,7 @@ import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.core.util.Context; @@ -29,7 +29,7 @@ public class DetectLanguageBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java index 8d647ec19fc9..3881f376e3d0 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/DetectLanguageBatchDocumentsAsync.java @@ -10,7 +10,7 @@ import com.azure.ai.textanalytics.models.DetectedLanguage; import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import java.util.Arrays; @@ -29,7 +29,7 @@ public class DetectLanguageBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java index fedd60a87759..f3f06017169a 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocuments.java @@ -8,7 +8,7 @@ import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.ExtractKeyPhraseResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -28,7 +28,7 @@ public class ExtractKeyPhrasesBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java index 2de7bd9bb291..4de715dfaba4 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/ExtractKeyPhrasesBatchDocumentsAsync.java @@ -8,7 +8,7 @@ import com.azure.ai.textanalytics.models.DocumentResultCollection; import com.azure.ai.textanalytics.models.ExtractKeyPhraseResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -28,7 +28,7 @@ public class ExtractKeyPhrasesBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java index 5aedb1ff930c..a774630d7564 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocuments.java @@ -9,7 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -29,7 +29,7 @@ public class RecognizeEntitiesBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java index 1c37f1dd1ca2..fb3afa58a4a9 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeEntitiesBatchDocumentsAsync.java @@ -9,7 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -29,7 +29,7 @@ public class RecognizeEntitiesBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java index dbdb1e479984..a3435fa709e7 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocuments.java @@ -9,7 +9,7 @@ import com.azure.ai.textanalytics.models.LinkedEntity; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -29,7 +29,7 @@ public class RecognizeLinkedEntitiesBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java index 3b6f6be96fa3..390e2cbd0197 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizeLinkedEntitiesBatchDocumentsAsync.java @@ -9,7 +9,7 @@ import com.azure.ai.textanalytics.models.LinkedEntity; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -29,7 +29,7 @@ public class RecognizeLinkedEntitiesBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java index 4f7b38ae7f59..4ad287594b68 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocuments.java @@ -9,7 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.core.util.Context; @@ -29,7 +29,7 @@ public class RecognizePiiBatchDocuments { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java index 3047f97b9a3f..17dc93346c86 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/samples/java/com/azure/ai/textanalytics/batch/RecognizePiiBatchDocumentsAsync.java @@ -9,7 +9,7 @@ import com.azure.ai.textanalytics.models.NamedEntity; import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; @@ -30,7 +30,7 @@ public class RecognizePiiBatchDocumentsAsync { public static void main(String[] args) { // Instantiate a client that will be used to call the service. TextAnalyticsAsyncClient client = new TextAnalyticsClientBuilder() - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential("{subscription_key}")) + .subscriptionKey(new TextAnalyticsApiKeyCredential("{subscription_key}")) .endpoint("{endpoint}") .buildAsyncClient(); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java index eb1468e91c52..e0aaf7df2b0c 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsAsyncClientTest.java @@ -11,7 +11,7 @@ import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsError; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.ai.textanalytics.models.TextSentimentClass; import com.azure.core.exception.HttpResponseException; @@ -490,7 +490,7 @@ public void analyseSentimentForBatchInputShowStatistics() { public void validKey() { // Arrange final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildAsyncClient(); + new TextAnalyticsApiKeyCredential(getSubscriptionKey())).buildAsyncClient(); // Action and Assert StepVerifier.create(client.detectLanguage("This is a test English Text")) @@ -507,7 +507,7 @@ public void validKey() { public void invalidKey() { // Arrange final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildAsyncClient(); + new TextAnalyticsApiKeyCredential(INVALID_KEY)).buildAsyncClient(); // Action and Assert StepVerifier.create(client.detectLanguage("This is a test English Text")) @@ -520,8 +520,8 @@ public void invalidKey() { @Test public void updateToInvalidKey() { // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); + final TextAnalyticsApiKeyCredential credential = + new TextAnalyticsApiKeyCredential(getSubscriptionKey()); final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); @@ -539,8 +539,8 @@ public void updateToInvalidKey() { @Test public void updateToValidKey() { // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); + final TextAnalyticsApiKeyCredential credential = + new TextAnalyticsApiKeyCredential(INVALID_KEY); final TextAnalyticsAsyncClient client = createClientBuilder(getEndpoint(), credential).buildAsyncClient(); @@ -596,7 +596,7 @@ public void nullServiceVersion() { // Arrange final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .subscriptionKey(new TextAnalyticsApiKeyCredential(getSubscriptionKey())) .retryPolicy(new RetryPolicy()) .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) .serviceVersion(null); @@ -624,7 +624,7 @@ public void defaultPipeline() { // Arrange final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .subscriptionKey(new TextAnalyticsApiKeyCredential(getSubscriptionKey())) .configuration(Configuration.getGlobalConfiguration()) .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java index 843382fa6a39..4ef626f6f87d 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTest.java @@ -13,7 +13,7 @@ import com.azure.ai.textanalytics.models.RecognizeEntitiesResult; import com.azure.ai.textanalytics.models.RecognizeLinkedEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsError; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextSentiment; import com.azure.ai.textanalytics.models.TextSentimentClass; import com.azure.core.exception.HttpResponseException; @@ -422,7 +422,7 @@ public void analyseSentimentForBatchInputShowStatistics() { public void validKey() { // Arrange final TextAnalyticsClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())).buildClient(); + new TextAnalyticsApiKeyCredential(getSubscriptionKey())).buildClient(); // Action and Assert validateDetectedLanguages(Arrays.asList(new DetectedLanguage("English", "en", 1.0)), @@ -436,7 +436,7 @@ public void validKey() { public void invalidKey() { // Arrange final TextAnalyticsClient client = createClientBuilder(getEndpoint(), - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY)).buildClient(); + new TextAnalyticsApiKeyCredential(INVALID_KEY)).buildClient(); // Action and Assert assertThrows(HttpResponseException.class, () -> client.detectLanguage("This is a test English Text")); @@ -448,8 +448,8 @@ public void invalidKey() { @Test public void updateToInvalidKey() { // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey()); + final TextAnalyticsApiKeyCredential credential = + new TextAnalyticsApiKeyCredential(getSubscriptionKey()); final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); @@ -466,8 +466,8 @@ public void updateToInvalidKey() { @Test public void updateToValidKey() { // Arrange - final TextAnalyticsSubscriptionKeyCredential credential = - new TextAnalyticsSubscriptionKeyCredential(INVALID_KEY); + final TextAnalyticsApiKeyCredential credential = + new TextAnalyticsApiKeyCredential(INVALID_KEY); final TextAnalyticsClient client = createClientBuilder(getEndpoint(), credential).buildClient(); @@ -520,7 +520,7 @@ public void nullServiceVersion() { // Arrange final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .subscriptionKey(new TextAnalyticsApiKeyCredential(getSubscriptionKey())) .retryPolicy(new RetryPolicy()) .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)) .serviceVersion(null); @@ -545,7 +545,7 @@ public void defaultPipeline() { // Arrange final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() .endpoint(getEndpoint()) - .subscriptionKey(new TextAnalyticsSubscriptionKeyCredential(getSubscriptionKey())) + .subscriptionKey(new TextAnalyticsApiKeyCredential(getSubscriptionKey())) .configuration(Configuration.getGlobalConfiguration()) .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)); diff --git a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java index 4a9e7f9ca715..50864ddaf4f2 100644 --- a/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java +++ b/sdk/textanalytics/azure-ai-textanalytics/src/test/java/com/azure/ai/textanalytics/TextAnalyticsClientTestBase.java @@ -18,7 +18,7 @@ import com.azure.ai.textanalytics.models.RecognizePiiEntitiesResult; import com.azure.ai.textanalytics.models.TextAnalyticsError; import com.azure.ai.textanalytics.models.TextAnalyticsRequestOptions; -import com.azure.ai.textanalytics.models.TextAnalyticsSubscriptionKeyCredential; +import com.azure.ai.textanalytics.models.TextAnalyticsApiKeyCredential; import com.azure.ai.textanalytics.models.TextDocumentBatchStatistics; import com.azure.ai.textanalytics.models.TextDocumentInput; import com.azure.ai.textanalytics.models.TextDocumentStatistics; @@ -674,10 +674,10 @@ private static void validatePrimaryLanguage(DetectedLanguage expectedLanguage, D * Create a client builder with endpoint and subscription key credential. * * @param endpoint the given endpoint - * @param credential the given {@link TextAnalyticsSubscriptionKeyCredential} credential + * @param credential the given {@link TextAnalyticsApiKeyCredential} credential * @return {@link TextAnalyticsClientBuilder} */ - TextAnalyticsClientBuilder createClientBuilder(String endpoint, TextAnalyticsSubscriptionKeyCredential credential) { + TextAnalyticsClientBuilder createClientBuilder(String endpoint, TextAnalyticsApiKeyCredential credential) { final TextAnalyticsClientBuilder clientBuilder = new TextAnalyticsClientBuilder() .subscriptionKey(credential) .endpoint(endpoint);