1description = 'OpenCensus Examples' 2 3buildscript { 4 repositories { 5 mavenCentral() 6 mavenLocal() 7 maven { 8 url "https://plugins.gradle.org/m2/" 9 } 10 } 11 dependencies { 12 classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3' 13 } 14} 15 16apply plugin: 'idea' 17apply plugin: 'java' 18apply plugin: 'com.google.protobuf' 19 20repositories { 21 mavenCentral() 22 mavenLocal() 23} 24 25group = "io.opencensus" 26version = "0.17.0-SNAPSHOT" // CURRENT_OPENCENSUS_VERSION 27 28def opencensusVersion = "0.16.1" // LATEST_OPENCENSUS_RELEASE_VERSION 29def grpcVersion = "1.13.1" // CURRENT_GRPC_VERSION 30def prometheusVersion = "0.3.0" 31 32tasks.withType(JavaCompile) { 33 sourceCompatibility = '1.8' 34 targetCompatibility = '1.8' 35} 36 37dependencies { 38 compile "com.google.api.grpc:proto-google-common-protos:1.11.0", 39 "io.opencensus:opencensus-api:${opencensusVersion}", 40 "io.opencensus:opencensus-contrib-zpages:${opencensusVersion}", 41 "io.opencensus:opencensus-contrib-grpc-metrics:${opencensusVersion}", 42 "io.opencensus:opencensus-exporter-stats-prometheus:${opencensusVersion}", 43 "io.opencensus:opencensus-exporter-stats-stackdriver:${opencensusVersion}", 44 "io.opencensus:opencensus-exporter-trace-stackdriver:${opencensusVersion}", 45 "io.opencensus:opencensus-exporter-trace-logging:${opencensusVersion}", 46 "io.grpc:grpc-protobuf:${grpcVersion}", 47 "io.grpc:grpc-stub:${grpcVersion}", 48 "io.grpc:grpc-netty:${grpcVersion}", 49 "io.prometheus:simpleclient_httpserver:${prometheusVersion}" 50 51 runtime "io.opencensus:opencensus-impl:${opencensusVersion}", 52 "io.netty:netty-tcnative-boringssl-static:2.0.8.Final" 53} 54 55protobuf { 56 protoc { 57 artifact = 'com.google.protobuf:protoc:3.5.1-1' 58 } 59 plugins { 60 grpc { 61 artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" 62 } 63 } 64 generateProtoTasks { 65 all()*.plugins { 66 grpc {} 67 } 68 ofSourceSet('main') 69 } 70} 71 72// Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code. 73sourceSets { 74 main { 75 java { 76 srcDir 'src' 77 srcDirs 'build/generated/source/proto/main/grpc' 78 srcDirs 'build/generated/source/proto/main/java' 79 } 80 } 81} 82 83// Provide convenience executables for trying out the examples. 84apply plugin: 'application' 85 86startScripts.enabled = false 87 88task tagContextExample(type: CreateStartScripts) { 89 mainClassName = 'io.opencensus.examples.tags.TagContextExample' 90 applicationName = 'TagContextExample' 91 outputDir = new File(project.buildDir, 'tmp') 92 classpath = jar.outputs.files + project.configurations.runtime 93} 94 95task multiSpansTracing(type: CreateStartScripts) { 96 mainClassName = 'io.opencensus.examples.trace.MultiSpansTracing' 97 applicationName = 'MultiSpansTracing' 98 outputDir = new File(project.buildDir, 'tmp') 99 classpath = jar.outputs.files + project.configurations.runtime 100} 101 102task multiSpansScopedTracing(type: CreateStartScripts) { 103 mainClassName = 'io.opencensus.examples.trace.MultiSpansScopedTracing' 104 applicationName = 'MultiSpansScopedTracing' 105 outputDir = new File(project.buildDir, 'tmp') 106 classpath = jar.outputs.files + project.configurations.runtime 107} 108 109task multiSpansContextTracing(type: CreateStartScripts) { 110 mainClassName = 'io.opencensus.examples.trace.MultiSpansContextTracing' 111 applicationName = 'MultiSpansContextTracing' 112 outputDir = new File(project.buildDir, 'tmp') 113 classpath = jar.outputs.files + project.configurations.runtime 114} 115 116task zPagesTester(type: CreateStartScripts) { 117 mainClassName = 'io.opencensus.examples.zpages.ZPagesTester' 118 applicationName = 'ZPagesTester' 119 outputDir = new File(project.buildDir, 'tmp') 120 classpath = jar.outputs.files + project.configurations.runtime 121} 122 123task quickStart(type: CreateStartScripts) { 124 mainClassName = 'io.opencensus.examples.helloworld.QuickStart' 125 applicationName = 'QuickStart' 126 outputDir = new File(project.buildDir, 'tmp') 127 classpath = jar.outputs.files + project.configurations.runtime 128} 129 130task helloWorldServer(type: CreateStartScripts) { 131 mainClassName = 'io.opencensus.examples.grpc.helloworld.HelloWorldServer' 132 applicationName = 'HelloWorldServer' 133 outputDir = new File(project.buildDir, 'tmp') 134 classpath = jar.outputs.files + project.configurations.runtime 135} 136 137task helloWorldClient(type: CreateStartScripts) { 138 mainClassName = 'io.opencensus.examples.grpc.helloworld.HelloWorldClient' 139 applicationName = 'HelloWorldClient' 140 outputDir = new File(project.buildDir, 'tmp') 141 classpath = jar.outputs.files + project.configurations.runtime 142} 143 144applicationDistribution.into('bin') { 145 from(multiSpansTracing) 146 from(multiSpansScopedTracing) 147 from(multiSpansContextTracing) 148 from(tagContextExample) 149 from(zPagesTester) 150 from(quickStart) 151 from(helloWorldServer) 152 from(helloWorldClient) 153 fileMode = 0755 154} 155