Skip to content

Commit

Permalink
Bump wire-compiler from 4.3.0 to 4.4.2 (#4856)
Browse files Browse the repository at this point in the history
* Bump wire-compiler from 4.3.0 to 4.4.2

Bumps [wire-compiler](https://github.com/square/wire) from 4.3.0 to 4.4.2.
- [Release notes](https://github.com/square/wire/releases)
- [Changelog](https://github.com/square/wire/blob/master/CHANGELOG.md)
- [Commits](square/wire@4.3.0...4.4.2)

---
updated-dependencies:
- dependency-name: com.squareup.wire:wire-compiler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix ProtoFieldsWireHandler

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jack Berg <jberg@newrelic.com>
  • Loading branch information
dependabot[bot] and jack-berg committed Oct 18, 2022
1 parent fd4b666 commit 88779d3
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 48 deletions.
4 changes: 2 additions & 2 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ dependencies {
// Needed for japicmp but not automatically brought in for some reason.
implementation("com.google.guava:guava:31.1-jre")
implementation("com.squareup:javapoet:1.13.0")
implementation("com.squareup.wire:wire-compiler:4.3.0")
implementation("com.squareup.wire:wire-gradle-plugin:4.3.0")
implementation("com.squareup.wire:wire-compiler:4.4.2")
implementation("com.squareup.wire:wire-gradle-plugin:4.4.2")
implementation("gradle.plugin.com.google.protobuf:protobuf-gradle-plugin:0.8.18")
implementation("gradle.plugin.io.morethan.jmhreport:gradle-jmh-report:0.9.0")
implementation("me.champeau.gradle:japicmp-gradle-plugin:0.4.1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.squareup.javapoet.TypeName
import com.squareup.javapoet.TypeSpec
import com.squareup.wire.WireCompiler
import com.squareup.wire.WireLogger
import com.squareup.wire.schema.CustomHandlerBeta
import com.squareup.wire.schema.EnumType
import com.squareup.wire.schema.Extend
import com.squareup.wire.schema.Field
Expand All @@ -16,6 +15,7 @@ import com.squareup.wire.schema.ProfileLoader
import com.squareup.wire.schema.ProtoFile
import com.squareup.wire.schema.ProtoType
import com.squareup.wire.schema.Schema
import com.squareup.wire.schema.SchemaHandler
import com.squareup.wire.schema.Service
import com.squareup.wire.schema.Target
import com.squareup.wire.schema.Type
Expand All @@ -33,51 +33,57 @@ import javax.lang.model.element.Modifier.STATIC
// generated protoc code.
//
// Inspired by https://github.com/square/wire/blob/5fac94f86879fdd7e412cddbeb51e09a708b2b64/wire-library/wire-compiler/src/main/java/com/squareup/wire/schema/Target.kt#L152
class ProtoFieldsWireHandler : CustomHandlerBeta {
override fun newHandler(
schema: Schema,
fs: FileSystem,
outDirectory: String,
logger: WireLogger,
profileLoader: ProfileLoader
): Target.SchemaHandler {
val modulePath = outDirectory.toPath()
fs.createDirectories(modulePath)
val javaGenerator = JavaGenerator.get(schema)

return object : Target.SchemaHandler {
override fun handle(extend: Extend, field: Field): Path? = null
override fun handle(service: Service): List<Path> = emptyList()
override fun handle(type: Type): Path? {
val typeSpec = javaGenerator.generateType(type, false)
val javaTypeName = javaGenerator.generatedTypeName(type)

if (typeSpec == null) {
return null
}
class ProtoFieldsWireHandler : SchemaHandler() {

val javaFile = JavaFile.builder(javaTypeName.packageName(), typeSpec)
.addFileComment("\$L", WireCompiler.CODE_GENERATED_BY_WIRE)
.addFileComment("\nSource: \$L in \$L", type.type, type.location.withPathOnly())
.build()
val generatedFilePath = modulePath / javaFile.packageName / "${javaFile.typeSpec.name}.java"

val filePath = modulePath /
javaFile.packageName.replace(".", "/") /
"${javaTypeName.simpleName()}.java"

try {
fs.createDirectories(filePath.parent!!)
fs.write(filePath) {
writeUtf8(javaFile.toString())
}
} catch (e: IOException) {
throw IOException("Error emitting ${javaFile.packageName}.${javaFile.typeSpec.name} " +
"to $outDirectory", e)
}
return generatedFilePath
private var schema: Schema?= null
private var javaGenerator: JavaGenerator?= null

override fun handle(schema: Schema, context: Context) {
if (this.schema != null && this.schema != schema) {
throw IllegalStateException("Cannot use same handler with multiple schemas")
}
if (this.schema == null) {
this.schema = schema
this.javaGenerator = JavaGenerator.get(schema)
}
super.handle(schema, context)
}

override fun handle(service: Service, context: Context): List<Path> = emptyList()

override fun handle(extend: Extend, field: Field, context: Context): Path? = null

override fun handle(type: Type, context: Context): Path? {
val fs = context.fileSystem
val outDirectory = context.outDirectory

val typeSpec = javaGenerator!!.generateType(type, false)
val javaTypeName = javaGenerator!!.generatedTypeName(type)

if (typeSpec == null) {
return null
}

val javaFile = JavaFile.builder(javaTypeName.packageName(), typeSpec)
.addFileComment("\$L", WireCompiler.CODE_GENERATED_BY_WIRE)
.addFileComment("\nSource: \$L in \$L", type.type, type.location.withPathOnly())
.build()
val generatedFilePath = outDirectory / javaFile.packageName / "${javaFile.typeSpec.name}.java"

val filePath = outDirectory /
javaFile.packageName.replace(".", "/") /
"${javaTypeName.simpleName()}.java"

try {
fs.createDirectories(filePath.parent!!)
fs.write(filePath) {
writeUtf8(javaFile.toString())
}
} catch (e: IOException) {
throw IOException("Error emitting ${javaFile.packageName}.${javaFile.typeSpec.name} " +
"to $outDirectory", e)
}
return generatedFilePath
}

private class JavaGenerator(private val schema: Schema, private val typeToJavaName: Map<ProtoType, TypeName>) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package io.opentelemetry.gradle

import com.squareup.wire.schema.SchemaHandler

class ProtoFieldsWireHandlerFactory : SchemaHandler.Factory{
override fun create(): SchemaHandler {
return ProtoFieldsWireHandler()
}
}
2 changes: 1 addition & 1 deletion exporters/jaeger/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ dependencies {

wire {
custom {
customHandlerClass = "io.opentelemetry.gradle.ProtoFieldsWireHandler"
schemaHandlerFactoryClass = "io.opentelemetry.gradle.ProtoFieldsWireHandlerFactory"
}
}

Expand Down
2 changes: 1 addition & 1 deletion exporters/otlp/common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ wire {
)

custom {
customHandlerClass = "io.opentelemetry.gradle.ProtoFieldsWireHandler"
schemaHandlerFactoryClass = "io.opentelemetry.gradle.ProtoFieldsWireHandlerFactory"
}
}

Expand Down
2 changes: 1 addition & 1 deletion sdk-extensions/jaeger-remote-sampler/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ tasks {

wire {
custom {
customHandlerClass = "io.opentelemetry.gradle.ProtoFieldsWireHandler"
schemaHandlerFactoryClass = "io.opentelemetry.gradle.ProtoFieldsWireHandlerFactory"
}
}

Expand Down

0 comments on commit 88779d3

Please sign in to comment.