Skip to content

Commit

Permalink
fix: Fix bazel for discogapic (#3152)
Browse files Browse the repository at this point in the history
Also increase flattening threashold to 5, because discogapic now has a method with more parameters. Without flattening for that method being present in the generated gapic yaml the discogapic client generation fails. It should be safe because nobody is generating gapic yaml anymore except for the discogapic case (i.e. now proto annotations are used instead of generated gapi yaml).
  • Loading branch information
vam-google committed Mar 28, 2020
1 parent 1bc968a commit 6c3518f
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 7 deletions.
11 changes: 10 additions & 1 deletion gapic.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def _gapic_srcjar_impl(ctx):
_set_args(attr.src, "--descriptor_set=", arguments, inputs)
_set_args(attr.gapic_yaml, "--gapic_yaml=", arguments, inputs)
_set_args(attr.package, "--package=", arguments)
_set_args(attr.language, "--language=", arguments, required = True)
_set_args(attr.language, "--language=", arguments)
_set_args(attr.service_yaml, "--service_yaml=", arguments, inputs)
_set_args(attr.package_yaml2, "--package_yaml2=", arguments, inputs)
_set_args(attr.grpc_service_config, "--grpc_service_config=", arguments, inputs)
Expand Down Expand Up @@ -323,6 +323,15 @@ def path_ignoring_repository(f):
return f.path[f.path.find(f.owner.workspace_root) + len(f.owner.workspace_root) + 1:]
return f.short_path

def discogapic_config(name, src, **kwargs):
gapic_srcjar(
name = name,
src = src,
artifact_type = "DISCOGAPIC_CONFIG",
output_suffix = ".yaml",
**kwargs
)

#
# Private helper functions
#
Expand Down
10 changes: 4 additions & 6 deletions java/java_gapic.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ def java_gapic_srcjar(
name,
src,
gapic_yaml,
service_yaml,
artifact_type,
package,
package = None,
service_yaml = None,
grpc_service_config = None,
**kwargs):
raw_srcjar_name = "%s_raw" % name
Expand Down Expand Up @@ -202,7 +202,6 @@ def java_discogapic_library(
name,
src,
gapic_yaml,
service_yaml,
deps = [],
test_deps = [],
**kwargs):
Expand All @@ -212,8 +211,7 @@ def java_discogapic_library(
name = srcjar_name,
src = src,
gapic_yaml = gapic_yaml,
service_yaml = service_yaml,
artifact_type = "GAPIC_CODE",
artifact_type = "DISCOGAPIC_CODE",
**kwargs
)

Expand All @@ -229,6 +227,7 @@ def java_discogapic_library(
"@com_google_auth_google_auth_library_credentials//jar",
"@com_google_auth_google_auth_library_oauth2_http//jar",
"@com_google_http_client_google_http_client//jar",
"@com_google_code_gson_gson//jar",
]

native.java_library(
Expand All @@ -243,7 +242,6 @@ def java_discogapic_library(
"@com_google_http_client_google_http_client_jackson2//jar",
"@com_fasterxml_jackson_core_jackson_core//jar",
"@com_google_api_gax_java//gax:gax_testlib",
"@com_google_code_gson_gson//jar",
"@junit_junit//jar",
]

Expand Down
36 changes: 36 additions & 0 deletions java/java_gapic_pkg.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,42 @@ def java_gapic_assembly_gradle_pkg(
deps = proto_target_dep + grpc_target_dep + client_target_dep,
)

def java_discogapic_assembly_gradle_pkg(
name,
deps,
assembly_name = None,
**kwargs):
package_dir = name
if assembly_name:
package_dir = "google-cloud-%s-%s" % (assembly_name, name)
client_target = "gapic-%s" % package_dir
client_target_dep = []

client_deps = []
client_test_deps = []

processed_deps = {} #there is no proper Set in Starlark
for dep in deps:
if dep.endswith("_java_gapic"):
put_dep_in_a_bucket(dep, client_deps, processed_deps)
put_dep_in_a_bucket("%s_test" % dep, client_test_deps, processed_deps)

if client_deps:
_java_gapic_gradle_pkg(
name = client_target,
template_label = Label("//rules_gapic/java:resources/gradle/client_disco.gradle.tmpl"),
deps = client_deps,
test_deps = client_test_deps,
**kwargs
)
client_target_dep = ["%s" % client_target]

_java_gapic_assembly_gradle_pkg(
name = name,
assembly_name = package_dir,
deps = client_target_dep,
)

def _java_gapic_gradle_pkg(
name,
template_label,
Expand Down
60 changes: 60 additions & 0 deletions java/resources/gradle/client_disco.gradle.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
buildscript {
repositories {
mavenCentral()
}
}

apply plugin: 'java'

description = 'GAPIC library for {{name}}'
group = 'com.google.cloud'
version = '0.0.0-SNAPSHOT'
sourceCompatibility = 1.7
targetCompatibility = 1.7

repositories {
mavenCentral()
mavenLocal()
}

compileJava.options.encoding = 'UTF-8'
javadoc.options.encoding = 'UTF-8'

dependencies {
compile 'com.google.api:gax:{{version.gax}}'
testCompile 'com.google.api:gax:{{version.gax}}:testlib'
compile 'com.google.api:gax-httpjson:{{version.gax_httpjson}}'
testCompile 'com.google.api:gax-httpjson:{{version.gax_httpjson}}:testlib'
testCompile '{{maven.junit_junit}}'
{{extra_deps}}
}

task smokeTest(type: Test) {
filter {
includeTestsMatching "*SmokeTest"
setFailOnNoMatchingTests false
}
}

test {
exclude "**/*SmokeTest*"
}

sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}

clean {
delete 'all-jars'
}

task allJars(type: Copy) {
dependsOn test, jar
into 'all-jars'
// Replace with `from configurations.testRuntime, jar` to include test dependencies
from configurations.runtime, jar
}

0 comments on commit 6c3518f

Please sign in to comment.