1*a24ffb47SSadaf Ebrahimidescription = 'OpenCensus Examples' 2*a24ffb47SSadaf Ebrahimi 3*a24ffb47SSadaf Ebrahimibuildscript { 4*a24ffb47SSadaf Ebrahimi repositories { 5*a24ffb47SSadaf Ebrahimi mavenCentral() 6*a24ffb47SSadaf Ebrahimi mavenLocal() 7*a24ffb47SSadaf Ebrahimi maven { 8*a24ffb47SSadaf Ebrahimi url "https://plugins.gradle.org/m2/" 9*a24ffb47SSadaf Ebrahimi } 10*a24ffb47SSadaf Ebrahimi } 11*a24ffb47SSadaf Ebrahimi dependencies { 12*a24ffb47SSadaf Ebrahimi classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.8' 13*a24ffb47SSadaf Ebrahimi classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0' 14*a24ffb47SSadaf Ebrahimi classpath "gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.8" 15*a24ffb47SSadaf Ebrahimi } 16*a24ffb47SSadaf Ebrahimi} 17*a24ffb47SSadaf Ebrahimi 18*a24ffb47SSadaf Ebrahimiapply plugin: "checkstyle" 19*a24ffb47SSadaf Ebrahimiapply plugin: 'com.google.protobuf' 20*a24ffb47SSadaf Ebrahimiapply plugin: 'com.github.sherter.google-java-format' 21*a24ffb47SSadaf Ebrahimiapply plugin: 'idea' 22*a24ffb47SSadaf Ebrahimiapply plugin: 'java' 23*a24ffb47SSadaf Ebrahimi 24*a24ffb47SSadaf Ebrahimi// Display the version report using: ./gradlew dependencyUpdates 25*a24ffb47SSadaf Ebrahimi// Also see https://github.com/ben-manes/gradle-versions-plugin. 26*a24ffb47SSadaf Ebrahimiapply plugin: 'com.github.ben-manes.versions' 27*a24ffb47SSadaf Ebrahimi 28*a24ffb47SSadaf Ebrahimirepositories { 29*a24ffb47SSadaf Ebrahimi mavenCentral() 30*a24ffb47SSadaf Ebrahimi mavenLocal() 31*a24ffb47SSadaf Ebrahimi} 32*a24ffb47SSadaf Ebrahimi 33*a24ffb47SSadaf Ebrahimigroup = "io.opencensus" 34*a24ffb47SSadaf Ebrahimiversion = "0.32.0-SNAPSHOT" // CURRENT_OPENCENSUS_VERSION 35*a24ffb47SSadaf Ebrahimi 36*a24ffb47SSadaf Ebrahimidef opencensusVersion = "0.30.0" // LATEST_OPENCENSUS_RELEASE_VERSION 37*a24ffb47SSadaf Ebrahimidef grpcVersion = "1.32.2" // CURRENT_GRPC_VERSION 38*a24ffb47SSadaf Ebrahimidef prometheusVersion = "0.6.0" 39*a24ffb47SSadaf Ebrahimidef jettyVersion = "9.4.17.v20190418" 40*a24ffb47SSadaf Ebrahimidef tcnativeVersion = "2.0.20.Final" 41*a24ffb47SSadaf Ebrahimi 42*a24ffb47SSadaf Ebrahimitasks.withType(JavaCompile) { 43*a24ffb47SSadaf Ebrahimi sourceCompatibility = '1.8' 44*a24ffb47SSadaf Ebrahimi targetCompatibility = '1.8' 45*a24ffb47SSadaf Ebrahimi} 46*a24ffb47SSadaf Ebrahimi 47*a24ffb47SSadaf Ebrahimidependencies { 48*a24ffb47SSadaf Ebrahimi compile "com.google.api.grpc:proto-google-common-protos:1.12.0", 49*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-api:${opencensusVersion}", 50*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-contrib-zpages:${opencensusVersion}", 51*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-contrib-grpc-metrics:${opencensusVersion}", 52*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-contrib-http-util:${opencensusVersion}", 53*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-contrib-http-servlet:${opencensusVersion}", 54*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-contrib-http-jetty-client:${opencensusVersion}", 55*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-metrics-ocagent:${opencensusVersion}", 56*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-stats-prometheus:${opencensusVersion}", 57*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-stats-stackdriver:${opencensusVersion}", 58*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-trace-jaeger:${opencensusVersion}", 59*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-trace-stackdriver:${opencensusVersion}", 60*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-trace-logging:${opencensusVersion}", 61*a24ffb47SSadaf Ebrahimi "io.opencensus:opencensus-exporter-trace-ocagent:${opencensusVersion}", 62*a24ffb47SSadaf Ebrahimi "io.grpc:grpc-protobuf:${grpcVersion}", 63*a24ffb47SSadaf Ebrahimi "io.grpc:grpc-stub:${grpcVersion}", 64*a24ffb47SSadaf Ebrahimi "io.grpc:grpc-netty-shaded:${grpcVersion}", 65*a24ffb47SSadaf Ebrahimi "io.grpc:grpc-census:${grpcVersion}", 66*a24ffb47SSadaf Ebrahimi "io.prometheus:simpleclient_httpserver:${prometheusVersion}", 67*a24ffb47SSadaf Ebrahimi "javax.servlet:javax.servlet-api:3.1.0", 68*a24ffb47SSadaf Ebrahimi "org.eclipse.jetty:jetty-server:${jettyVersion}", 69*a24ffb47SSadaf Ebrahimi "org.eclipse.jetty:jetty-client:${jettyVersion}", 70*a24ffb47SSadaf Ebrahimi "org.eclipse.jetty:jetty-servlet:${jettyVersion}", 71*a24ffb47SSadaf Ebrahimi "org.slf4j:slf4j-log4j12:1.7.25" 72*a24ffb47SSadaf Ebrahimi 73*a24ffb47SSadaf Ebrahimi runtime "io.opencensus:opencensus-impl:${opencensusVersion}", 74*a24ffb47SSadaf Ebrahimi "io.netty:netty-tcnative-boringssl-static:${tcnativeVersion}" 75*a24ffb47SSadaf Ebrahimi} 76*a24ffb47SSadaf Ebrahimi 77*a24ffb47SSadaf EbrahimigoogleJavaFormat { 78*a24ffb47SSadaf Ebrahimi toolVersion '1.7' 79*a24ffb47SSadaf Ebrahimi source = 'src/main' 80*a24ffb47SSadaf Ebrahimi include '**/*.java' 81*a24ffb47SSadaf Ebrahimi} 82*a24ffb47SSadaf Ebrahimi 83*a24ffb47SSadaf EbrahimiverifyGoogleJavaFormat { 84*a24ffb47SSadaf Ebrahimi source = 'src/main' 85*a24ffb47SSadaf Ebrahimi include '**/*.java' 86*a24ffb47SSadaf Ebrahimi} 87*a24ffb47SSadaf Ebrahimi 88*a24ffb47SSadaf Ebrahimiprotobuf { 89*a24ffb47SSadaf Ebrahimi protoc { 90*a24ffb47SSadaf Ebrahimi artifact = 'com.google.protobuf:protoc:3.6.1' 91*a24ffb47SSadaf Ebrahimi } 92*a24ffb47SSadaf Ebrahimi plugins { 93*a24ffb47SSadaf Ebrahimi grpc { 94*a24ffb47SSadaf Ebrahimi artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" 95*a24ffb47SSadaf Ebrahimi } 96*a24ffb47SSadaf Ebrahimi } 97*a24ffb47SSadaf Ebrahimi generateProtoTasks { 98*a24ffb47SSadaf Ebrahimi all()*.plugins { 99*a24ffb47SSadaf Ebrahimi grpc {} 100*a24ffb47SSadaf Ebrahimi } 101*a24ffb47SSadaf Ebrahimi ofSourceSet('main') 102*a24ffb47SSadaf Ebrahimi } 103*a24ffb47SSadaf Ebrahimi} 104*a24ffb47SSadaf Ebrahimi 105*a24ffb47SSadaf Ebrahimi// Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code. 106*a24ffb47SSadaf EbrahimisourceSets { 107*a24ffb47SSadaf Ebrahimi main { 108*a24ffb47SSadaf Ebrahimi java { 109*a24ffb47SSadaf Ebrahimi srcDir 'src' 110*a24ffb47SSadaf Ebrahimi srcDirs 'build/generated/source/proto/main/grpc' 111*a24ffb47SSadaf Ebrahimi srcDirs 'build/generated/source/proto/main/java' 112*a24ffb47SSadaf Ebrahimi } 113*a24ffb47SSadaf Ebrahimi } 114*a24ffb47SSadaf Ebrahimi} 115*a24ffb47SSadaf Ebrahimi 116*a24ffb47SSadaf Ebrahimicheckstyle { 117*a24ffb47SSadaf Ebrahimi configFile = file("$rootDir/../buildscripts/checkstyle.xml") 118*a24ffb47SSadaf Ebrahimi toolVersion = "8.12" 119*a24ffb47SSadaf Ebrahimi ignoreFailures = false 120*a24ffb47SSadaf Ebrahimi configProperties["rootDir"] = "$rootDir/.." 121*a24ffb47SSadaf Ebrahimi} 122*a24ffb47SSadaf Ebrahimi 123*a24ffb47SSadaf Ebrahimi// Disable checkstyle if no java8. 124*a24ffb47SSadaf EbrahimicheckstyleMain.source = 'src/main' 125*a24ffb47SSadaf EbrahimicheckstyleTest.source = 'src/main' 126*a24ffb47SSadaf Ebrahimi 127*a24ffb47SSadaf Ebrahimi// Provide convenience executables for trying out the examples. 128*a24ffb47SSadaf Ebrahimiapply plugin: 'application' 129*a24ffb47SSadaf Ebrahimi 130*a24ffb47SSadaf EbrahimistartScripts.enabled = false 131*a24ffb47SSadaf Ebrahimi 132*a24ffb47SSadaf Ebrahimitask tagContextExample(type: CreateStartScripts) { 133*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.tags.TagContextExample' 134*a24ffb47SSadaf Ebrahimi applicationName = 'TagContextExample' 135*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 136*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 137*a24ffb47SSadaf Ebrahimi} 138*a24ffb47SSadaf Ebrahimi 139*a24ffb47SSadaf Ebrahimitask multiSpansTracing(type: CreateStartScripts) { 140*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.trace.MultiSpansTracing' 141*a24ffb47SSadaf Ebrahimi applicationName = 'MultiSpansTracing' 142*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 143*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 144*a24ffb47SSadaf Ebrahimi} 145*a24ffb47SSadaf Ebrahimi 146*a24ffb47SSadaf Ebrahimitask multiSpansScopedTracing(type: CreateStartScripts) { 147*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.trace.MultiSpansScopedTracing' 148*a24ffb47SSadaf Ebrahimi applicationName = 'MultiSpansScopedTracing' 149*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 150*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 151*a24ffb47SSadaf Ebrahimi} 152*a24ffb47SSadaf Ebrahimi 153*a24ffb47SSadaf Ebrahimitask multiSpansContextTracing(type: CreateStartScripts) { 154*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.trace.MultiSpansContextTracing' 155*a24ffb47SSadaf Ebrahimi applicationName = 'MultiSpansContextTracing' 156*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 157*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 158*a24ffb47SSadaf Ebrahimi} 159*a24ffb47SSadaf Ebrahimi 160*a24ffb47SSadaf Ebrahimitask zPagesTester(type: CreateStartScripts) { 161*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.zpages.ZPagesTester' 162*a24ffb47SSadaf Ebrahimi applicationName = 'ZPagesTester' 163*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 164*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 165*a24ffb47SSadaf Ebrahimi} 166*a24ffb47SSadaf Ebrahimi 167*a24ffb47SSadaf Ebrahimitask quickStart(type: CreateStartScripts) { 168*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.helloworld.QuickStart' 169*a24ffb47SSadaf Ebrahimi applicationName = 'QuickStart' 170*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 171*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 172*a24ffb47SSadaf Ebrahimi} 173*a24ffb47SSadaf Ebrahimi 174*a24ffb47SSadaf Ebrahimitask helloWorldServer(type: CreateStartScripts) { 175*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.grpc.helloworld.HelloWorldServer' 176*a24ffb47SSadaf Ebrahimi applicationName = 'HelloWorldServer' 177*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 178*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 179*a24ffb47SSadaf Ebrahimi} 180*a24ffb47SSadaf Ebrahimi 181*a24ffb47SSadaf Ebrahimitask helloWorldClient(type: CreateStartScripts) { 182*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.grpc.helloworld.HelloWorldClient' 183*a24ffb47SSadaf Ebrahimi applicationName = 'HelloWorldClient' 184*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 185*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 186*a24ffb47SSadaf Ebrahimi} 187*a24ffb47SSadaf Ebrahimi 188*a24ffb47SSadaf Ebrahimitask repl(type: CreateStartScripts) { 189*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.quickstart.Repl' 190*a24ffb47SSadaf Ebrahimi applicationName = 'Repl' 191*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 192*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 193*a24ffb47SSadaf Ebrahimi} 194*a24ffb47SSadaf Ebrahimi 195*a24ffb47SSadaf Ebrahimitask stackdriverStatsQuickstart(type: CreateStartScripts) { 196*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.stats.StackdriverQuickstart' 197*a24ffb47SSadaf Ebrahimi applicationName = 'StackdriverQuickstart' 198*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 199*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 200*a24ffb47SSadaf Ebrahimi} 201*a24ffb47SSadaf Ebrahimi 202*a24ffb47SSadaf Ebrahimitask derivedDoubleGaugeQuickstart(type: CreateStartScripts) { 203*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.gauges.DerivedDoubleGaugeQuickstart' 204*a24ffb47SSadaf Ebrahimi applicationName = 'DerivedDoubleGaugeQuickstart' 205*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 206*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 207*a24ffb47SSadaf Ebrahimi} 208*a24ffb47SSadaf Ebrahimi 209*a24ffb47SSadaf Ebrahimitask derivedLongGaugeQuickstart(type: CreateStartScripts) { 210*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.gauges.DerivedLongGaugeQuickstart' 211*a24ffb47SSadaf Ebrahimi applicationName = 'DerivedLongGaugeQuickstart' 212*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 213*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 214*a24ffb47SSadaf Ebrahimi} 215*a24ffb47SSadaf Ebrahimi 216*a24ffb47SSadaf Ebrahimitask doubleGaugeQuickstart(type: CreateStartScripts) { 217*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.gauges.DoubleGaugeQuickstart' 218*a24ffb47SSadaf Ebrahimi applicationName = 'DoubleGaugeQuickstart' 219*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 220*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 221*a24ffb47SSadaf Ebrahimi} 222*a24ffb47SSadaf Ebrahimi 223*a24ffb47SSadaf Ebrahimitask longGaugeQuickstart(type: CreateStartScripts) { 224*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.gauges.LongGaugeQuickstart' 225*a24ffb47SSadaf Ebrahimi applicationName = 'LongGaugeQuickstart' 226*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 227*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 228*a24ffb47SSadaf Ebrahimi} 229*a24ffb47SSadaf Ebrahimi 230*a24ffb47SSadaf Ebrahimitask httpJettyServer(type: CreateStartScripts) { 231*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.http.jetty.server.HelloWorldServer' 232*a24ffb47SSadaf Ebrahimi applicationName = 'HttpJettyServer' 233*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 234*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 235*a24ffb47SSadaf Ebrahimi} 236*a24ffb47SSadaf Ebrahimi 237*a24ffb47SSadaf Ebrahimitask httpJettyClient(type: CreateStartScripts) { 238*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.http.jetty.client.HelloWorldClient' 239*a24ffb47SSadaf Ebrahimi applicationName = 'HttpJettyClient' 240*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 241*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 242*a24ffb47SSadaf Ebrahimi} 243*a24ffb47SSadaf Ebrahimi 244*a24ffb47SSadaf Ebrahimitask ocAgentExportersQuickStart(type: CreateStartScripts) { 245*a24ffb47SSadaf Ebrahimi mainClassName = 'io.opencensus.examples.ocagent.OcAgentExportersQuickStart' 246*a24ffb47SSadaf Ebrahimi applicationName = 'OcAgentExportersQuickStart' 247*a24ffb47SSadaf Ebrahimi outputDir = new File(project.buildDir, 'tmp') 248*a24ffb47SSadaf Ebrahimi classpath = jar.outputs.files + project.configurations.runtime 249*a24ffb47SSadaf Ebrahimi} 250*a24ffb47SSadaf Ebrahimi 251*a24ffb47SSadaf Ebrahimi 252*a24ffb47SSadaf EbrahimiapplicationDistribution.into('bin') { 253*a24ffb47SSadaf Ebrahimi from(multiSpansTracing) 254*a24ffb47SSadaf Ebrahimi from(multiSpansScopedTracing) 255*a24ffb47SSadaf Ebrahimi from(multiSpansContextTracing) 256*a24ffb47SSadaf Ebrahimi from(tagContextExample) 257*a24ffb47SSadaf Ebrahimi from(zPagesTester) 258*a24ffb47SSadaf Ebrahimi from(quickStart) 259*a24ffb47SSadaf Ebrahimi from(helloWorldServer) 260*a24ffb47SSadaf Ebrahimi from(helloWorldClient) 261*a24ffb47SSadaf Ebrahimi from(repl) 262*a24ffb47SSadaf Ebrahimi from(stackdriverStatsQuickstart) 263*a24ffb47SSadaf Ebrahimi from(derivedDoubleGaugeQuickstart) 264*a24ffb47SSadaf Ebrahimi from(derivedLongGaugeQuickstart) 265*a24ffb47SSadaf Ebrahimi from(doubleGaugeQuickstart) 266*a24ffb47SSadaf Ebrahimi from(longGaugeQuickstart) 267*a24ffb47SSadaf Ebrahimi from(httpJettyServer) 268*a24ffb47SSadaf Ebrahimi from(httpJettyClient) 269*a24ffb47SSadaf Ebrahimi from(ocAgentExportersQuickStart) 270*a24ffb47SSadaf Ebrahimi fileMode = 0755 271*a24ffb47SSadaf Ebrahimi} 272