description = 'OpenCensus Examples' buildscript { repositories { mavenCentral() mavenLocal() maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3' } } apply plugin: 'idea' apply plugin: 'java' apply plugin: 'com.google.protobuf' repositories { mavenCentral() mavenLocal() } group = "io.opencensus" version = "0.17.0-SNAPSHOT" // CURRENT_OPENCENSUS_VERSION def opencensusVersion = "0.16.1" // LATEST_OPENCENSUS_RELEASE_VERSION def grpcVersion = "1.13.1" // CURRENT_GRPC_VERSION def prometheusVersion = "0.3.0" tasks.withType(JavaCompile) { sourceCompatibility = '1.8' targetCompatibility = '1.8' } dependencies { compile "com.google.api.grpc:proto-google-common-protos:1.11.0", "io.opencensus:opencensus-api:${opencensusVersion}", "io.opencensus:opencensus-contrib-zpages:${opencensusVersion}", "io.opencensus:opencensus-contrib-grpc-metrics:${opencensusVersion}", "io.opencensus:opencensus-exporter-stats-prometheus:${opencensusVersion}", "io.opencensus:opencensus-exporter-stats-stackdriver:${opencensusVersion}", "io.opencensus:opencensus-exporter-trace-stackdriver:${opencensusVersion}", "io.opencensus:opencensus-exporter-trace-logging:${opencensusVersion}", "io.grpc:grpc-protobuf:${grpcVersion}", "io.grpc:grpc-stub:${grpcVersion}", "io.grpc:grpc-netty:${grpcVersion}", "io.prometheus:simpleclient_httpserver:${prometheusVersion}" runtime "io.opencensus:opencensus-impl:${opencensusVersion}", "io.netty:netty-tcnative-boringssl-static:2.0.8.Final" } protobuf { protoc { artifact = 'com.google.protobuf:protoc:3.5.1-1' } plugins { grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" } } generateProtoTasks { all()*.plugins { grpc {} } ofSourceSet('main') } } // Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code. sourceSets { main { java { srcDir 'src' srcDirs 'build/generated/source/proto/main/grpc' srcDirs 'build/generated/source/proto/main/java' } } } // Provide convenience executables for trying out the examples. apply plugin: 'application' startScripts.enabled = false task tagContextExample(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.tags.TagContextExample' applicationName = 'TagContextExample' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task multiSpansTracing(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.trace.MultiSpansTracing' applicationName = 'MultiSpansTracing' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task multiSpansScopedTracing(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.trace.MultiSpansScopedTracing' applicationName = 'MultiSpansScopedTracing' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task multiSpansContextTracing(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.trace.MultiSpansContextTracing' applicationName = 'MultiSpansContextTracing' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task zPagesTester(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.zpages.ZPagesTester' applicationName = 'ZPagesTester' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task quickStart(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.helloworld.QuickStart' applicationName = 'QuickStart' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task helloWorldServer(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.grpc.helloworld.HelloWorldServer' applicationName = 'HelloWorldServer' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } task helloWorldClient(type: CreateStartScripts) { mainClassName = 'io.opencensus.examples.grpc.helloworld.HelloWorldClient' applicationName = 'HelloWorldClient' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } applicationDistribution.into('bin') { from(multiSpansTracing) from(multiSpansScopedTracing) from(multiSpansContextTracing) from(tagContextExample) from(zPagesTester) from(quickStart) from(helloWorldServer) from(helloWorldClient) fileMode = 0755 }