Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
Expand All @@ -70,6 +71,7 @@ public static String composeClassHeaderMethodSampleCode(
TypeNode clientType,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
// Use the first pure unary RPC method's sample code as showcase, if no such method exists, use
// the first method in the service's methods list.
Method method =
Expand Down Expand Up @@ -232,6 +234,7 @@ public static String composeRpcMethodHeaderSampleCode(
List<MethodArgument> arguments,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
VariableExpr clientVarExpr =
VariableExpr.withVariable(
Variable.builder()
Expand Down Expand Up @@ -278,6 +281,7 @@ public static String composeRpcDefaultMethodHeaderSampleCode(
TypeNode clientType,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
VariableExpr clientVarExpr =
VariableExpr.withVariable(
Variable.builder()
Expand Down Expand Up @@ -336,6 +340,7 @@ public static String composeLroCallableMethodHeaderSampleCode(
TypeNode clientType,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
VariableExpr clientVarExpr =
VariableExpr.withVariable(
Variable.builder()
Expand Down Expand Up @@ -448,6 +453,7 @@ public static String composePagedCallableMethodHeaderSampleCode(
TypeNode clientType,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
VariableExpr clientVarExpr =
VariableExpr.withVariable(
Variable.builder()
Expand Down Expand Up @@ -567,6 +573,7 @@ public static String composeRegularCallableMethodHeaderSampleCode(
TypeNode clientType,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
VariableExpr clientVarExpr =
VariableExpr.withVariable(
Variable.builder()
Expand Down Expand Up @@ -616,6 +623,7 @@ public static String composeStreamCallableMethodHeaderSampleCode(
TypeNode clientType,
Map<String, ResourceName> resourceNames,
Map<String, Message> messageTypes) {
resourceNames = sortAlphabetically(resourceNames);
VariableExpr clientVarExpr =
VariableExpr.withVariable(
Variable.builder()
Expand Down Expand Up @@ -1349,4 +1357,16 @@ private static boolean isProtoEmptyType(TypeNode type) {
return type.reference().pakkage().equals("com.google.protobuf")
&& type.reference().name().equals("Empty");
}

/**
* Returns the same "resource type name" to "resource name" key-value map as given, but sorted in
* alphabetical order. This prevents resource name flip-flopping between executions on the various
* machines used for client library publication.
*/
private static TreeMap<String, ResourceName> sortAlphabetically(
Map<String, ResourceName> unsorted) {
// This simple wrapper is not redundant because it hides implementation details from the
// callers.
return new TreeMap<>(unsorted);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
* BatchGetAssetsHistoryRequest request =
* BatchGetAssetsHistoryRequest.newBuilder()
* .setParent(ProjectName.of("[PROJECT]").toString())
* .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
* .addAllAssetNames(new ArrayList<String>())
* .setContentType(ContentType.forNumber(0))
* .setReadTimeWindow(TimeWindow.newBuilder().build())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2147,7 +2147,7 @@ public final CryptoKeyVersion updateCryptoKeyVersion(UpdateCryptoKeyVersionReque
* <pre>{@code
* try (KeyManagementServiceClient keyManagementServiceClient =
* KeyManagementServiceClient.create()) {
* ResourceName name = KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]");
* ResourceName name = CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]");
* ByteString plaintext = ByteString.EMPTY;
* EncryptResponse response = keyManagementServiceClient.encrypt(name, plaintext);
* }
Expand Down Expand Up @@ -2187,7 +2187,8 @@ public final EncryptResponse encrypt(ResourceName name, ByteString plaintext) {
* <pre>{@code
* try (KeyManagementServiceClient keyManagementServiceClient =
* KeyManagementServiceClient.create()) {
* String name = KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString();
* String name =
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]").toString();
* ByteString plaintext = ByteString.EMPTY;
* EncryptResponse response = keyManagementServiceClient.encrypt(name, plaintext);
* }
Expand Down Expand Up @@ -2226,7 +2227,9 @@ public final EncryptResponse encrypt(String name, ByteString plaintext) {
* KeyManagementServiceClient.create()) {
* EncryptRequest request =
* EncryptRequest.newBuilder()
* .setName(KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString())
* .setName(
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
* .toString())
* .setPlaintext(ByteString.EMPTY)
* .setAdditionalAuthenticatedData(ByteString.EMPTY)
* .setPlaintextCrc32C(Int64Value.newBuilder().build())
Expand Down Expand Up @@ -2257,7 +2260,9 @@ public final EncryptResponse encrypt(EncryptRequest request) {
* KeyManagementServiceClient.create()) {
* EncryptRequest request =
* EncryptRequest.newBuilder()
* .setName(KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString())
* .setName(
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
* .toString())
* .setPlaintext(ByteString.EMPTY)
* .setAdditionalAuthenticatedData(ByteString.EMPTY)
* .setPlaintextCrc32C(Int64Value.newBuilder().build())
Expand Down Expand Up @@ -3153,7 +3158,9 @@ public final CryptoKeyVersion restoreCryptoKeyVersion(RestoreCryptoKeyVersionReq
* KeyManagementServiceClient.create()) {
* GetIamPolicyRequest request =
* GetIamPolicyRequest.newBuilder()
* .setResource(KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString())
* .setResource(
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
* .toString())
* .setOptions(GetPolicyOptions.newBuilder().build())
* .build();
* Policy response = keyManagementServiceClient.getIamPolicy(request);
Expand All @@ -3179,7 +3186,9 @@ public final Policy getIamPolicy(GetIamPolicyRequest request) {
* KeyManagementServiceClient.create()) {
* GetIamPolicyRequest request =
* GetIamPolicyRequest.newBuilder()
* .setResource(KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString())
* .setResource(
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
* .toString())
* .setOptions(GetPolicyOptions.newBuilder().build())
* .build();
* ApiFuture<Policy> future =
Expand Down Expand Up @@ -3342,7 +3351,9 @@ public final UnaryCallable<GetLocationRequest, Location> getLocationCallable() {
* KeyManagementServiceClient.create()) {
* TestIamPermissionsRequest request =
* TestIamPermissionsRequest.newBuilder()
* .setResource(KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString())
* .setResource(
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
* .toString())
* .addAllPermissions(new ArrayList<String>())
* .build();
* TestIamPermissionsResponse response = keyManagementServiceClient.testIamPermissions(request);
Expand All @@ -3368,7 +3379,9 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq
* KeyManagementServiceClient.create()) {
* TestIamPermissionsRequest request =
* TestIamPermissionsRequest.newBuilder()
* .setResource(KeyRingName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]").toString())
* .setResource(
* CryptoKeyName.of("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
* .toString())
* .addAllPermissions(new ArrayList<String>())
* .build();
* ApiFuture<TestIamPermissionsResponse> future =
Expand Down