Ejemplo n.º 1
0
def test_fix_grpc_license():
    with tempfile.TemporaryDirectory() as tempdir:
        temppath = Path(tempdir).resolve()
        os.mkdir(temppath / "src")
        shutil.copyfile("tests/testdata/src/foo/FooGrpc.java",
                        temppath / "src/FooGrpc.java")

        java.fix_grpc_headers(temppath)
        assert_matches_golden("tests/testdata/FooGrpcGolden.java",
                              temppath / "src/FooGrpc.java")
Ejemplo n.º 2
0
def build_grpc(target):
  """Build a grpc build target and copy all generate source files."""
  output = bazel_build(
    target=target,
    cwd=googleapis,
  )

  src_output = Path(tempfile.mkdtemp())
  for proto_jar in output.glob("*grpc-src.jar"):
    logger.debug(f"unzipping: {os.path.basename(proto_jar)}")
    shell.run(["unzip", "-o", proto_jar, "-d", src_output / "src"])

  java.fix_grpc_headers(src_output, "")
  s.copy(src_output / "src/com", "grpc-google-iam-v1/src/main/java/com")
Ejemplo n.º 3
0
def generate_admin_api(gapic):
    library = gapic.java_library(
        service='bigtable-admin',
        version='v2',
        bazel_target=
        f'//google/bigtable/admin/v2:google-cloud-bigtable-admin-v2-java',
        proto_path=f'google/bigtable/admin/v2',
    )

    library = library / 'google-cloud-bigtable-admin-v2-java'

    # Excludes are relative to source `gapic-google-cloud-bigtable-v2/src`
    excludes = [
        "main/java/com/google/cloud/bigtable/admin/v2/package-info.java",
    ]

    # Paths are relative to the destination, which is the current working directory
    internal_only = [
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminCallableFactory.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminCallableFactory.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminSettings.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminClient.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClient.java',
    ]

    package_name = f'com.google.cloud.bigtable.admin.v2'
    java.fix_proto_headers(library /
                           f'proto-google-cloud-bigtable-admin-v2-java')
    java.fix_grpc_headers(
        library / f'grpc-google-cloud-bigtable-admin-v2-java', package_name)

    s.copy(library / f'gapic-google-cloud-bigtable-admin-v2-java/src',
           'google-cloud-bigtable/src',
           excludes=excludes)
    s.copy(library / f'grpc-google-cloud-bigtable-admin-v2-java/src',
           f'grpc-google-cloud-bigtable-admin-v2/src')
    s.copy(library / f'proto-google-cloud-bigtable-admin-v2-java/src',
           f'proto-google-cloud-bigtable-admin-v2/src')

    make_internal_only(internal_only)

    java.format_code(f'./grpc-google-cloud-bigtable-admin-v2/src')
    java.format_code(f'./proto-google-cloud-bigtable-admin-v2/src')
Ejemplo n.º 4
0
def generate_data_api(gapic):
    library = gapic.java_library(
        service='bigtable',
        version='v2',
        proto_path=f'google/bigtable/v2',
        bazel_target=f'//google/bigtable/v2:google-cloud-bigtable-v2-java',
    )

    library = library / 'google-cloud-bigtable-v2-java'

    # Excludes are relative to source `gapic-google-cloud-bigtable-v2/src`
    excludes = [
        "build.gradle",
        "pom.xml",
        "README.md",
        "src/main/java/com/google/cloud/bigtable/data/v2/package-info.java",
        "src/main/java/com/google/cloud/bigtable/data/v2/BaseBigtableDataClient.java",
        "src/main/java/com/google/cloud/bigtable/data/v2/BaseBigtableDataSettings.java",
        "src/test/java/com/google/cloud/bigtable/data/v2/BaseBigtableDataClientTest.java",
        "src/test/java/com/google/cloud/bigtable/data/v2/MockBigtable.java",
        "src/test/java/com/google/cloud/bigtable/data/v2/MockBigtableImpl.java",
    ]

    # Paths are relative to the destination, which is the current working directory
    internal_only = [
        "google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStub.java",
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java',
        "google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java",
        "google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableCallableFactory.java",
    ]

    package_name = f'com.google.bigtable.v2'
    java.fix_proto_headers(library / f'proto-google-cloud-bigtable-v2-java')
    java.fix_grpc_headers(library / f'grpc-google-cloud-bigtable-v2-java',
                          package_name)

    s.copy(library / f'gapic-google-cloud-bigtable-v2-java',
           'google-cloud-bigtable/',
           excludes=excludes)
    s.copy(library / f'grpc-google-cloud-bigtable-v2-java/src',
           f'grpc-google-cloud-bigtable-v2/src')
    s.copy(library / f'proto-google-cloud-bigtable-v2-java/src',
           f'proto-google-cloud-bigtable-v2/src')

    make_internal_only(internal_only)

    java.format_code(f'./grpc-google-cloud-bigtable-v2/src')
    java.format_code(f'./proto-google-cloud-bigtable-v2/src')
Ejemplo n.º 5
0
gapic = gcp.GAPICGenerator()

service = 'automl'
versions = ['v1beta1', 'v1']
config_pattern = '/google/cloud/automl/artman_automl_{version}.yaml'

for version in versions:
    library = gapic.java_library(
        service=service,
        version=version,
        config_path=config_pattern.format(version=version),
        artman_output_name='')

    package_name = f'com.google.cloud.{service}.{version}'
    java.fix_proto_headers(library / f'proto-google-cloud-{service}-{version}')
    java.fix_grpc_headers(library / f'grpc-google-cloud-{service}-{version}',
                          package_name)

    s.copy(library / f'gapic-google-cloud-{service}-{version}/src',
           f'google-cloud-{service}/src')
    s.copy(library / f'grpc-google-cloud-{service}-{version}/src',
           f'grpc-google-cloud-{service}-{version}/src')
    s.copy(library / f'proto-google-cloud-{service}-{version}/src',
           f'proto-google-cloud-{service}-{version}/src')

    java.format_code(f'google-cloud-{service}/src')
    java.format_code(f'grpc-google-cloud-{service}-{version}/src')
    java.format_code(f'proto-google-cloud-{service}-{version}/src')

common_templates = gcp.CommonTemplates()
templates = common_templates.java_library()
s.copy(templates, excludes=[
Ejemplo n.º 6
0
ERROR_GROUP_OVERLOAD_PREVIOUS_METHOD = r'(\s+public ErrorGroupServiceStub getStub\(\) {\n\s+return stub;\n\s+})'

for version in versions:
    library = gapic.java_library(
        service=service,
        version=version,
        proto_path=f'google/devtools/clouderrorreporting/{version}',
        bazel_target=
        f'//google/devtools/clouderrorreporting/{version}:google-cloud-{service}-{version}-java',
    )

    library = library / f"google-cloud-{service}-{version}-java"

    java.fix_proto_headers(library /
                           f'proto-google-cloud-{service}-{version}-java')
    java.fix_grpc_headers(
        library / f'grpc-google-cloud-{service}-{version}-java', "")

    s.replace(
        library /
        f'gapic-google-cloud-{service}-{version}-java/src/**/ErrorGroupServiceClient.java',
        ERROR_GROUP_OVERLOAD_PREVIOUS_METHOD,
        "\g<1>\n\n" + ERROR_GROUP_OVERLOAD)
    s.replace(
        library /
        f'gapic-google-cloud-{service}-{version}-java/src/**/ErrorGroupServiceClient.java',
        "import com.google.devtools.clouderrorreporting.v1beta1.ErrorGroupName;",
        "import com.google.devtools.clouderrorreporting.v1beta1.ErrorGroupName;\nimport com.google.devtools.clouderrorreporting.v1beta1.GroupName;"
    )

    s.copy(library / f'gapic-google-cloud-{service}-{version}-java/src',
           f'google-cloud-errorreporting/src')
Ejemplo n.º 7
0
AUTOSYNTH_MULTIPLE_COMMITS = True

gapic = gcp.GAPICBazel()

library = gapic.java_library(
    service='spanner',
    version='v1',
    proto_path=f'google/spanner/v1',
    bazel_target=f'//google/spanner/v1:google-cloud-spanner-v1-java',
)

library = library / f"google-cloud-spanner-v1-java"

java.fix_proto_headers(library / 'proto-google-cloud-spanner-v1-java')
java.fix_grpc_headers(library / 'grpc-google-cloud-spanner-v1-java',
                      'com.google.spanner.v1')
s.copy(library / 'gapic-google-cloud-spanner-v1-java/src',
       'google-cloud-spanner/src')
s.copy(library / 'grpc-google-cloud-spanner-v1-java/src',
       'grpc-google-cloud-spanner-v1/src')
s.copy(library / 'proto-google-cloud-spanner-v1-java/src',
       'proto-google-cloud-spanner-v1/src')

library = gapic.java_library(
    service='admin-database',
    version='v1',
    proto_path=f'google/spanner/admin/database/v1',
    bazel_target=
    f'//google/spanner/admin/database/v1:google-cloud-admin-database-v1-java',
)
Ejemplo n.º 8
0
# 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.

from pathlib import Path
import glob
from synthtool.languages import java

root = Path(".").resolve()

# Until the generator generates license headers on generated proto
# classes, add the license headers in
for path in glob.glob("proto-google-*"):
    java.fix_proto_headers(root / path)

# Until the generator generates license headers on generated grpc
# classes, add the license headers in
for path in glob.glob("grpc-google-*"):
    java.fix_grpc_headers(root / path, "unused")
Ejemplo n.º 9
0
def generate_admin_api(gapic):
    library = gapic.java_library(
        service='bigtable-admin',
        version='v2',
        bazel_target=
        f'//google/bigtable/admin/v2:google-cloud-bigtable-admin-v2-java',
        proto_path=f'google/bigtable/admin/v2',
    )

    library = library / 'google-cloud-bigtable-admin-v2-java'

    # Excludes are relative to source `gapic-google-cloud-bigtable-v2/src`
    excludes = [
        "main/java/com/google/cloud/bigtable/admin/v2/package-info.java",
    ]

    # Paths are relative to the destination, which is the current working directory
    internal_only = [
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminCallableFactory.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminCallableFactory.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminSettings.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStub.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminClient.java',
        'google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClient.java',
    ]

    package_name = f'com.google.cloud.bigtable.admin.v2'
    java.fix_proto_headers(library /
                           f'proto-google-cloud-bigtable-admin-v2-java')
    java.fix_grpc_headers(
        library / f'grpc-google-cloud-bigtable-admin-v2-java', package_name)

    s.copy(library / f'gapic-google-cloud-bigtable-admin-v2-java/src',
           'google-cloud-bigtable/src',
           excludes=excludes)
    s.copy(library / f'grpc-google-cloud-bigtable-admin-v2-java/src',
           f'grpc-google-cloud-bigtable-admin-v2/src')
    s.copy(library / f'proto-google-cloud-bigtable-admin-v2-java/src',
           f'proto-google-cloud-bigtable-admin-v2/src')

    #todo: fix in synthtool removing comments with method
    java.remove_method(
        f'./grpc-google-cloud-bigtable-admin-v2/src/main/java/com/google/bigtable/admin/v2/BigtableInstanceAdminGrpc.java',
        "public UnaryCallSettings<Instance, Instance> updateInstanceSettings()"
    )

    java.remove_method(
        f'./google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java',
        "/** Returns the builder for the settings used for calls to updateInstance. */"
    )
    java.remove_method(
        f'./google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java',
        "public UnaryCallSettings.Builder<Instance, Instance> updateInstanceSettings()"
    )

    java.remove_method(
        f'./google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java',
        "/** Returns the object with the settings used for calls to updateInstance. */"
    )
    java.remove_method(
        f'./google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java',
        "public UnaryCallSettings<Instance, Instance> updateInstanceSettings()"
    )

    make_internal_only(internal_only)

    java.format_code(f'./grpc-google-cloud-bigtable-admin-v2/src')
    java.format_code(f'./proto-google-cloud-bigtable-admin-v2/src')
Ejemplo n.º 10
0
gapic = gcp.GAPICGenerator()

service = 'dialogflow'
versions = ['v2', 'v2beta1']
config_pattern = '/google/cloud/dialogflow/{version}/artman_dialogflow_{version}.yaml'

library = gapic.java_library(
    service=service,
    version='v2',
    config_path='/google/cloud/dialogflow/v2/artman_dialogflow_v2.yaml',
    artman_output_name='')

package_name = f'com.google.cloud.{service}.v2'
java.fix_proto_headers(library / f'proto-google-cloud-{service}-v2')
java.fix_grpc_headers(library / f'grpc-google-cloud-{service}-v2', package_name)

s.copy(library / f'gapic-google-cloud-{service}-v2/src', f'google-cloud-{service}/src')
s.copy(library / f'grpc-google-cloud-{service}-v2/src', f'grpc-google-cloud-{service}-v2/src')
s.copy(library / f'proto-google-cloud-{service}-v2/src', f'proto-google-cloud-{service}-v2/src')

library = gapic.java_library(
    service=service,
    version='v2beta1',
    config_path='/google/cloud/dialogflow/v2beta1/artman_dialogflow_v2beta1_java.yaml',
    artman_output_name='')

package_name = f'com.google.cloud.{service}.v2beta1'
java.fix_proto_headers(library / f'proto-google-cloud-{service}-v2beta1')
java.fix_grpc_headers(library / f'grpc-google-cloud-{service}-v2beta1', package_name)
Ejemplo n.º 11
0
proto_targets = [
    "api", "cloud/audit", "geo/type", "logging/type", "longrunning", "rpc",
    "rpc/context", "type"
]
for path in proto_targets:
    target = path.replace("/", "-")
    target = f"google-{target}-java"
    library = gapic.java_library(
        service=target,
        version="unused",
        proto_path=f"google/{path}:",  #google-iam-{version}-logging-java',
        bazel_target=f"//google/{path}:{target}",
    )

    library = library / target
    java.fix_proto_headers(library / f"proto-{target}")
    s.copy(library / f"proto-{target}" / "src",
           "proto-google-common-protos/src",
           required=True)

    java.fix_grpc_headers(library / f"grpc-{target}", package_name=None)
    s.copy(library / f"grpc-{target}" / "src", "grpc-google-common-protos/src")

java.format_code("proto-google-common-protos/src")
java.format_code("grpc-google-common-protos/src")

java.common_templates(excludes=[
    'README.md',
    'samples/*',
])