include_defs('//bucklets/grpc.bucklet')

fetch_grpc_plugin(version = '1.3.1')

# Repackaging of gRPC 1.3.* to solve the OSGI split package issue.
# If bumping the gRPC version, please write a new rule.

def grpc_core_repkg_131():
    repkg_deps = [
        '//lib:COMPILE',
        '//lib:google-instrumentation-0.3.0',
        '//lib:google-errorprone-2.0.19'
    ]
    remote_file(
        name = "grpc-src-zip-131",
        url = "https://github.com/grpc/grpc-java/archive/v1.3.1.zip",
        sha1 = "03dc21440fdfa920aa0e905da17df35b0d6c9a44",
    )
    srcs = []
    for pkg in ['core', 'context']:
        name = 'grpc-' + pkg + '-130'
        genrule(
            name = name,
            bash = 'jar xf $(location :grpc-src-zip-131) grpc-java-1.3.1/' + pkg + '/src/main/java '
            + '&& cd grpc-java-1.3.1/' + pkg + '/src/main/java '
            + '&& jar -cf $OUT *',
            out = pkg + '.src.zip',
        )
        srcs.append(':' + name)
    osgi_jar(
        name = 'grpc-core-repkg-1.3.1',
        srcs = srcs,
        deps = repkg_deps,
        package_name_root = 'io.grpc',
        import_packages = '!javax.annotation,!com.google.errorprone.annotations,*',
        export_packages = '*',
        do_javadocs = False,
        do_checkstyle = False,
    )

grpc_core_repkg_131()
