diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..08d07fa0e --- /dev/null +++ b/build.gradle @@ -0,0 +1,168 @@ +description = 'OpenTelemetry Proto' + +apply plugin: 'idea' +apply plugin: 'java' +apply plugin: 'com.google.protobuf' +apply plugin: 'maven' +apply plugin: "signing" + +group = "io.opentelemetry" +version = "0.1.0-SNAPSHOT" // CURRENT_OPENTELEMETRY_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') + } +} + +// 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.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 "OpenTelemetry" + packaging 'jar' + description project.description + url 'https://github.com/open-telemetry/opentelemetry-proto' + + scm { + connection 'scm:svn:https://github.com/open-telemetry/opentelemetry-proto' + developerConnection 'scm:git:git@github.com/open-telemetry/opentelemetry-proto' + url 'https://github.com/open-telemetry/opentelemetry-proto' + } + + licenses { + license { + name 'The Apache License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id 'io.opentelemetry' + name 'OpenTelemetry Contributors' + email 'opentelemetry-community@lists.cncf.io' + url 'opentelemetry.io' + // https://issues.gradle.org/browse/GRADLE-2719 + organization = 'OpenTelemetry Authors' + organizationUrl 'https://www.opentelemetry.io' + } + } + } + } + } + } diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000..40838d554 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = "opentelemetry-proto" + diff --git a/src/opentelemetry/proto/agent/metrics/v1/metrics_service.proto b/src/opentelemetry/proto/agent/metrics/v1/metrics_service.proto index f6c3f362a..21442528d 100644 --- a/src/opentelemetry/proto/agent/metrics/v1/metrics_service.proto +++ b/src/opentelemetry/proto/agent/metrics/v1/metrics_service.proto @@ -16,9 +16,9 @@ syntax = "proto3"; package opentelemetry.proto.agent.metrics.v1; -import "agent/common/v1/common.proto"; -import "metrics/v1/metrics.proto"; -import "resource/v1/resource.proto"; +import "opentelemetry/proto/agent/common/v1/common.proto"; +import "opentelemetry/proto/metrics/v1/metrics.proto"; +import "opentelemetry/proto/resource/v1/resource.proto"; option java_multiple_files = true; option java_package = "io.opentelemetry.proto.agent.metrics.v1"; diff --git a/src/opentelemetry/proto/agent/trace/v1/trace_service.proto b/src/opentelemetry/proto/agent/trace/v1/trace_service.proto index 75d77a0ff..012359323 100644 --- a/src/opentelemetry/proto/agent/trace/v1/trace_service.proto +++ b/src/opentelemetry/proto/agent/trace/v1/trace_service.proto @@ -19,10 +19,10 @@ syntax = "proto3"; package opentelemetry.proto.agent.trace.v1; -import "agent/common/v1/common.proto"; -import "resource/v1/resource.proto"; -import "trace/v1/trace.proto"; -import "trace/v1/trace_config.proto"; +import "opentelemetry/proto/agent/common/v1/common.proto"; +import "opentelemetry/proto/resource/v1/resource.proto"; +import "opentelemetry/proto/trace/v1/trace.proto"; +import "opentelemetry/proto/trace/v1/trace_config.proto"; option java_multiple_files = true; option java_package = "io.opentelemetry.proto.agent.trace.v1"; diff --git a/src/opentelemetry/proto/metrics/v1/metrics.proto b/src/opentelemetry/proto/metrics/v1/metrics.proto index 1580a9b26..451d4c527 100644 --- a/src/opentelemetry/proto/metrics/v1/metrics.proto +++ b/src/opentelemetry/proto/metrics/v1/metrics.proto @@ -18,7 +18,7 @@ package opentelemetry.proto.metrics.v1; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "resource/v1/resource.proto"; +import "opentelemetry/proto/resource/v1/resource.proto"; option java_multiple_files = true; option java_package = "io.opentelemetry.proto.metrics.v1"; diff --git a/src/opentelemetry/proto/trace/v1/trace.proto b/src/opentelemetry/proto/trace/v1/trace.proto index 3a586dad3..924f26ffc 100644 --- a/src/opentelemetry/proto/trace/v1/trace.proto +++ b/src/opentelemetry/proto/trace/v1/trace.proto @@ -18,7 +18,7 @@ package opentelemetry.proto.trace.v1; import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; -import "resource/v1/resource.proto"; +import "opentelemetry/proto/resource/v1/resource.proto"; option java_multiple_files = true; option java_package = "io.opentelemetry.proto.trace.v1";