From aa75406874f85516efe98ae4c6688db421110b7e Mon Sep 17 00:00:00 2001 From: Sijun Liu Date: Thu, 20 Jan 2022 21:46:48 +0000 Subject: [PATCH 1/4] sample --- google-cloud-language/pom.xml | 2 + .../google/cloud/language/v1/SampleTest.java | 74 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java diff --git a/google-cloud-language/pom.xml b/google-cloud-language/pom.xml index da555089..bfaaf096 100644 --- a/google-cloud-language/pom.xml +++ b/google-cloud-language/pom.xml @@ -57,10 +57,12 @@ com.google.api gax + 2.9.1-SNAPSHOT com.google.api gax-grpc + 2.9.1-SNAPSHOT com.google.api diff --git a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java new file mode 100644 index 00000000..6b601ea8 --- /dev/null +++ b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java @@ -0,0 +1,74 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.language.v1; + +import com.google.cloud.language.v1.Document.Type; +import com.google.cloud.language.v1.stub.LanguageServiceStubSettings; +import java.util.Map; + +import org.junit.Test; + +public class SampleTest { + + // Create a client by providing API key to stubsettings. + public LanguageServiceClient createClientWithApiKey(String apiKey) throws Exception { + LanguageServiceStubSettings settings = LanguageServiceStubSettings + .newBuilder().setApiKey(apiKey).build(); + LanguageServiceClient client = LanguageServiceClient.create(settings.createStub()); + return client; + } + + // Create a client without API key. The API key can be provided via GOOGLE_API_KEY env var. + public LanguageServiceClient createClient() throws Exception { + LanguageServiceClient client = LanguageServiceClient.create(); + return client; + } + + @Test + public void analyzeSentimentTest() throws Exception { + // There are two ways to pass an API key to client. + // (1) via stubsettings, call "createClientWithApiKey(String apiKey)" method. + // (2) via GOOGLE_API_KEY env var, call "createClient()" method. + LanguageServiceClient client = createClient(); + + // set the GCS Content URI path to the file to be analyzed + Document doc = + Document.newBuilder().setContent("123\n456").setType(Type.PLAIN_TEXT).build(); + AnalyzeEntitiesRequest request = + AnalyzeEntitiesRequest.newBuilder() + .setDocument(doc) + .setEncodingType(EncodingType.UTF16) + .build(); + + AnalyzeEntitiesResponse response = client.analyzeEntities(request); + + // Print the response + for (Entity entity : response.getEntitiesList()) { + System.out.printf("Entity: %s\n", entity.getName()); + System.out.printf("Salience: %.3f\n", entity.getSalience()); + System.out.println("Metadata: "); + for (Map.Entry entry : entity.getMetadataMap().entrySet()) { + System.out.printf("%s : %s", entry.getKey(), entry.getValue()); + } + for (EntityMention mention : entity.getMentionsList()) { + System.out.printf("Begin offset: %d\n", mention.getText().getBeginOffset()); + System.out.printf("Content: %s\n", mention.getText().getContent()); + System.out.printf("Type: %s\n\n", mention.getType()); + } + } + } +} From f9417875de720b843a4947c695f3782acc75a8b2 Mon Sep 17 00:00:00 2001 From: Sijun Liu Date: Fri, 18 Nov 2022 15:02:10 -0800 Subject: [PATCH 2/4] update sample --- google-cloud-language/pom.xml | 4 ++-- .../java/com/google/cloud/language/v1/SampleTest.java | 11 +---------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/google-cloud-language/pom.xml b/google-cloud-language/pom.xml index bfaaf096..d7dc7ff7 100644 --- a/google-cloud-language/pom.xml +++ b/google-cloud-language/pom.xml @@ -57,12 +57,12 @@ com.google.api gax - 2.9.1-SNAPSHOT + 2.19.5 com.google.api gax-grpc - 2.9.1-SNAPSHOT + 2.19.5 com.google.api diff --git a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java index 6b601ea8..2f8cc123 100644 --- a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java +++ b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java @@ -32,18 +32,9 @@ public LanguageServiceClient createClientWithApiKey(String apiKey) throws Except return client; } - // Create a client without API key. The API key can be provided via GOOGLE_API_KEY env var. - public LanguageServiceClient createClient() throws Exception { - LanguageServiceClient client = LanguageServiceClient.create(); - return client; - } - @Test public void analyzeSentimentTest() throws Exception { - // There are two ways to pass an API key to client. - // (1) via stubsettings, call "createClientWithApiKey(String apiKey)" method. - // (2) via GOOGLE_API_KEY env var, call "createClient()" method. - LanguageServiceClient client = createClient(); + LanguageServiceClient client = createClientWithApiKey(""); // set the GCS Content URI path to the file to be analyzed Document doc = From cbda903af83ed40211db735149f821a2c0ea2b1f Mon Sep 17 00:00:00 2001 From: Sijun Liu Date: Wed, 23 Nov 2022 15:04:22 -0800 Subject: [PATCH 3/4] update code --- .../test/java/com/google/cloud/language/v1/SampleTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java index 2f8cc123..d7845f6c 100644 --- a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java +++ b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java @@ -17,7 +17,7 @@ package com.google.cloud.language.v1; import com.google.cloud.language.v1.Document.Type; -import com.google.cloud.language.v1.stub.LanguageServiceStubSettings; +import com.google.cloud.language.v1.LanguageServiceSettings; import java.util.Map; import org.junit.Test; @@ -26,9 +26,9 @@ public class SampleTest { // Create a client by providing API key to stubsettings. public LanguageServiceClient createClientWithApiKey(String apiKey) throws Exception { - LanguageServiceStubSettings settings = LanguageServiceStubSettings + LanguageServiceSettings settings = LanguageServiceSettings .newBuilder().setApiKey(apiKey).build(); - LanguageServiceClient client = LanguageServiceClient.create(settings.createStub()); + LanguageServiceClient client = LanguageServiceClient.create(settings); return client; } From 2650e63d931175ef9cdfda7fca494143fc829323 Mon Sep 17 00:00:00 2001 From: Sijun Liu Date: Sun, 4 Dec 2022 16:01:47 -0800 Subject: [PATCH 4/4] add workaround --- .../google/cloud/language/v1/SampleTest.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java index d7845f6c..88a6b805 100644 --- a/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java +++ b/google-cloud-language/src/test/java/com/google/cloud/language/v1/SampleTest.java @@ -17,7 +17,14 @@ package com.google.cloud.language.v1; import com.google.cloud.language.v1.Document.Type; +import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.rpc.FixedHeaderProvider; +import com.google.api.gax.rpc.HeaderProvider; +import com.google.api.gax.rpc.TransportChannelProvider; import com.google.cloud.language.v1.LanguageServiceSettings; + +import java.util.HashMap; import java.util.Map; import org.junit.Test; @@ -25,16 +32,33 @@ public class SampleTest { // Create a client by providing API key to stubsettings. - public LanguageServiceClient createClientWithApiKey(String apiKey) throws Exception { - LanguageServiceSettings settings = LanguageServiceSettings - .newBuilder().setApiKey(apiKey).build(); + // public LanguageServiceClient createClientWithApiKey(String apiKey) throws Exception { + // LanguageServiceSettings settings = LanguageServiceSettings + // .newBuilder().setApiKey(apiKey).build(); + // LanguageServiceClient client = LanguageServiceClient.create(settings); + // return client; + // } + + public LanguageServiceClient createClientWithApiKey2(String apiKey) throws Exception { + // Manually set the api key header + Map header = new HashMap() { {put("x-goog-api-key", apiKey);}}; + FixedHeaderProvider headerProvider = FixedHeaderProvider.create(header); + + // Use empty credential, otherwise it will raise ADC not set error + FixedCredentialsProvider credentialProvider = FixedCredentialsProvider.create(null); + + // Create the client + TransportChannelProvider transportChannelProvider = InstantiatingGrpcChannelProvider.newBuilder().setHeaderProvider(headerProvider).build(); + LanguageServiceSettings settings = LanguageServiceSettings.newBuilder().setTransportChannelProvider(transportChannelProvider).setCredentialsProvider(credentialProvider).build(); LanguageServiceClient client = LanguageServiceClient.create(settings); return client; } @Test public void analyzeSentimentTest() throws Exception { - LanguageServiceClient client = createClientWithApiKey(""); + // LanguageServiceClient client = createClientWithApiKey(""); + LanguageServiceClient client = createClientWithApiKey2(""); + // set the GCS Content URI path to the file to be analyzed Document doc =