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