data-plane-api 0.1.1

Envoy xDS protobuf and gRPC definitions
Documentation
description = 'Opencensus Proto'

apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'com.google.protobuf'
apply plugin: 'maven'
apply plugin: "signing"

group = "io.opencensus"
version = "0.5.0-SNAPSHOT" // CURRENT_OPENCENSUS_PROTO_VERSION

sourceCompatibility = 1.6
targetCompatibility = 1.6

repositories {
    maven { url "https://plugins.gradle.org/m2/" }
}

jar.manifest {
    attributes('Implementation-Title': name,
            'Implementation-Version': version,
            'Built-By': System.getProperty('user.name'),
            'Built-JDK': System.getProperty('java.version'),
            'Source-Compatibility': sourceCompatibility,
            'Target-Compatibility': targetCompatibility)
}

def protobufVersion = '3.7.0'
def protocVersion = '3.7.0'
def grpcVersion = "1.19.0" // CURRENT_GRPC_VERSION
def javaxAnnotationVersion = '1.3.2'

buildscript {
    repositories {
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.8"
    }
}

sourceSets {
    main {
        proto {
            srcDir 'src'
        }
    }
}

dependencies {
    compile "com.google.protobuf:protobuf-java:${protobufVersion}",
            "io.grpc:grpc-protobuf:${grpcVersion}",
            "io.grpc:grpc-stub:${grpcVersion}"

    compileOnly "javax.annotation:javax.annotation-api:${javaxAnnotationVersion}"
}

protobuf {
    protoc {
        // The artifact spec for the Protobuf Compiler
        artifact = "com.google.protobuf:protoc:${protocVersion}"
    }
    plugins {
        grpc {
            artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
        }
    }
    generateProtoTasks {
        all()*.plugins {
            grpc {}
        }
        ofSourceSet('main')
    }

    generatedFilesBaseDir = "$projectDir/gen_gradle/src"
}

// Disable all java warnings for proto generated files build
compileJava {
    options.compilerArgs += ["-Xlint:none"]
    options.encoding = "UTF-8"
}

clean {
    delete protobuf.generatedFilesBaseDir
}

// IntelliJ complains that the generated classes are not found, ask IntelliJ to include the
// generated Java directories as source folders.
idea {
    module {
        sourceDirs += file("${protobuf.generatedFilesBaseDir}/main/java");
        sourceDirs += file("${protobuf.generatedFilesBaseDir}/main/grpc");
        // If you have additional sourceSets and/or codegen plugins, add all of them
    }
}

signing {
    required false
    sign configurations.archives
}

javadoc.source = "$projectDir/gen_gradle/src"

javadoc.options {
    encoding = 'UTF-8'
    links 'https://docs.oracle.com/javase/8/docs/api/'
}

task javadocJar(type: Jar) {
    classifier = 'javadoc'
    from javadoc
}

task sourcesJar(type: Jar) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

artifacts {
    archives javadocJar, sourcesJar
}

uploadArchives {
        repositories {
            mavenDeployer {
                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

                def configureAuth = {
                    if (rootProject.hasProperty('ossrhUsername') && rootProject.hasProperty('ossrhPassword')) {
                        authentication(userName:rootProject.ossrhUsername, password: rootProject.ossrhPassword)
                    }
                }

                repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/", configureAuth)

                snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/", configureAuth)

                pom.project {
                    name "OpenCensus"
                    packaging 'jar'
                    description project.description
                    url 'https://github.com/census-instrumentation/opencensus-proto'

                    scm {
                        connection 'scm:svn:https://github.com/census-instrumentation/opencensus-proto'
                        developerConnection 'scm:git:git@github.com/census-instrumentation/opencensus-proto'
                        url 'https://github.com/census-instrumentation/opencensus-proto'
                    }

                    licenses {
                        license {
                            name 'The Apache License, Version 2.0'
                            url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }

                    developers {
                        developer {
                            id 'io.opencensus'
                            name 'OpenCensus Contributors'
                            email 'census-developers@googlegroups.com'
                            url 'opencensus.io'
                            // https://issues.gradle.org/browse/GRADLE-2719
                            organization = 'OpenCensus Authors'
                            organizationUrl 'https://www.opencensus.io'
                        }
                    }
                }
            }
        }
    }