replace protoc with Wire
This commit is contained in:
parent
387b6bbcb4
commit
62d33ddacd
@ -1,12 +1,7 @@
|
|||||||
import com.google.protobuf.gradle.proto
|
|
||||||
import com.google.protobuf.gradle.protobuf
|
|
||||||
import com.google.protobuf.gradle.protoc
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
java
|
|
||||||
kotlin("jvm")
|
kotlin("jvm")
|
||||||
id("ru.mipt.npm.kscience")
|
id("ru.mipt.npm.kscience")
|
||||||
id("com.google.protobuf") version "0.8.14"
|
id("com.squareup.wire") version "3.5.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
kscience{
|
kscience{
|
||||||
@ -18,42 +13,9 @@ val dataforgeVersion: String by rootProject.extra
|
|||||||
dependencies {
|
dependencies {
|
||||||
api(project(":numass-data-model"))
|
api(project(":numass-data-model"))
|
||||||
api("hep.dataforge:dataforge-workspace:$dataforgeVersion")
|
api("hep.dataforge:dataforge-workspace:$dataforgeVersion")
|
||||||
implementation("com.google.protobuf:protobuf-java:3.14.0")
|
|
||||||
implementation("javax.annotation:javax.annotation-api:1.3.1")
|
implementation("javax.annotation:javax.annotation-api:1.3.1")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
wire{
|
||||||
dependsOn(":numass-data-proto:generateProto")
|
kotlin{}
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
create("proto") {
|
|
||||||
proto {
|
|
||||||
srcDir("src/main/proto")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
create("gen"){
|
|
||||||
java{
|
|
||||||
srcDir("gen/main/java")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//kotlin{
|
|
||||||
// sourceSets{
|
|
||||||
// main{
|
|
||||||
// de
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
protobuf {
|
|
||||||
// Configure the protoc executable
|
|
||||||
protoc {
|
|
||||||
// Download from repositories
|
|
||||||
artifact = "com.google.protobuf:protoc:3.14.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
generatedFilesBaseDir = "$projectDir/gen"
|
|
||||||
}
|
}
|
||||||
|
@ -37,22 +37,21 @@ import java.util.zip.Inflater
|
|||||||
*/
|
*/
|
||||||
public class ProtoNumassPoint(
|
public class ProtoNumassPoint(
|
||||||
override val meta: Meta,
|
override val meta: Meta,
|
||||||
private val protoBuilder: () -> NumassProto.Point,
|
private val protoBuilder: () -> Point,
|
||||||
) : NumassPoint {
|
) : NumassPoint {
|
||||||
|
|
||||||
private val proto: NumassProto.Point get() = protoBuilder()
|
private val proto: Point get() = protoBuilder()
|
||||||
|
|
||||||
override val blocks: List<NumassBlock>
|
override val blocks: List<NumassBlock>
|
||||||
get() = proto.channelsList
|
get() = proto.channels.flatMap { channel ->
|
||||||
.flatMap { channel ->
|
channel.blocks
|
||||||
channel.blocksList
|
|
||||||
.map { block -> ProtoBlock(channel.id.toInt(), block, this) }
|
.map { block -> ProtoBlock(channel.id.toInt(), block, this) }
|
||||||
.sortedBy { it.startTime }
|
.sortedBy { it.startTime }
|
||||||
}
|
}
|
||||||
|
|
||||||
override val channels: Map<Int, NumassBlock>
|
override val channels: Map<Int, NumassBlock>
|
||||||
get() = proto.channelsList.groupBy { it.id.toInt() }.mapValues { entry ->
|
get() = proto.channels.groupBy { it.id.toInt() }.mapValues { entry ->
|
||||||
MetaBlock(entry.value.flatMap { it.blocksList }.map { ProtoBlock(entry.key, it, this) })
|
MetaBlock(entry.value.flatMap { it.blocks }.map { ProtoBlock(entry.key, it, this) })
|
||||||
}
|
}
|
||||||
|
|
||||||
override val voltage: Double get() = meta["external_meta.HV1_value"].double ?: super.voltage
|
override val voltage: Double get() = meta["external_meta.HV1_value"].double ?: super.voltage
|
||||||
@ -105,7 +104,7 @@ public class ProtoNumassPoint(
|
|||||||
|
|
||||||
public fun fromEnvelope(envelope: Envelope): ProtoNumassPoint? {
|
public fun fromEnvelope(envelope: Envelope): ProtoNumassPoint? {
|
||||||
val proto = envelope.useData {
|
val proto = envelope.useData {
|
||||||
NumassProto.Point.parseFrom(it)
|
Point.ADAPTER.decode(it)
|
||||||
}
|
}
|
||||||
return proto?.let { ProtoNumassPoint(envelope.meta) { it } }
|
return proto?.let { ProtoNumassPoint(envelope.meta) { it } }
|
||||||
}
|
}
|
||||||
@ -115,7 +114,7 @@ public class ProtoNumassPoint(
|
|||||||
|
|
||||||
public class ProtoBlock(
|
public class ProtoBlock(
|
||||||
override val channel: Int,
|
override val channel: Int,
|
||||||
private val block: NumassProto.Point.Channel.Block,
|
private val block: Point.Channel.Block,
|
||||||
public val parent: NumassPoint? = null,
|
public val parent: NumassPoint? = null,
|
||||||
) : NumassBlock {
|
) : NumassBlock {
|
||||||
|
|
||||||
@ -136,14 +135,20 @@ public class ProtoBlock(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override val events: Flow<NumassEvent>
|
override val events: Flow<NumassEvent>
|
||||||
get() = if (block.hasEvents()) {
|
get() = if (block.events != null) {
|
||||||
val events = block.events
|
val events = block.events
|
||||||
if (events.timesCount != events.amplitudesCount) {
|
val amplitudes = events.amplitudes
|
||||||
|
val times = events.times
|
||||||
|
|
||||||
|
if (times.size != amplitudes.size) {
|
||||||
LoggerFactory.getLogger(javaClass)
|
LoggerFactory.getLogger(javaClass)
|
||||||
.error("The block is broken. Number of times is ${events.timesCount} and number of amplitudes is ${events.amplitudesCount}")
|
.error("The block is broken. Number of times is ${times.size} and number of amplitudes is ${amplitudes.size}")
|
||||||
}
|
}
|
||||||
(0..events.timesCount).asFlow()
|
|
||||||
.map { i -> NumassEvent(events.getAmplitudes(i).toShort(), events.getTimes(i), this) }
|
amplitudes.zip(times) { amp, time ->
|
||||||
|
NumassEvent(amp.toShort(), time, this)
|
||||||
|
}.asFlow()
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
emptyFlow<NumassEvent>()
|
emptyFlow<NumassEvent>()
|
||||||
}
|
}
|
||||||
@ -151,10 +156,10 @@ public class ProtoBlock(
|
|||||||
|
|
||||||
override val frames: Flow<NumassFrame>
|
override val frames: Flow<NumassFrame>
|
||||||
get() {
|
get() {
|
||||||
val tickSize = Duration.ofNanos(block.binSize)
|
val tickSize = Duration.ofNanos(block.bin_size)
|
||||||
return block.framesList.asFlow().map { frame ->
|
return block.frames.asFlow().map { frame ->
|
||||||
val time = startTime.plusNanos(frame.time)
|
val time = startTime.plusNanos(frame.time)
|
||||||
val frameData = frame.data.asReadOnlyByteBuffer()
|
val frameData = frame.data_.asByteBuffer()
|
||||||
NumassFrame(time, tickSize, frameData.asShortBuffer())
|
NumassFrame(time, tickSize, frameData.asShortBuffer())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,8 @@ class TestNumassDirectory {
|
|||||||
assertEquals("2018-04-13T22:01:46", testSet.meta["end_time"].string)
|
assertEquals("2018-04-13T22:01:46", testSet.meta["end_time"].string)
|
||||||
assertEquals(ListValue.EMPTY, testSet.meta["comments"].value)
|
assertEquals(ListValue.EMPTY, testSet.meta["comments"].value)
|
||||||
assertEquals(31, testSet.points.size)
|
assertEquals(31, testSet.points.size)
|
||||||
assertEquals("2018-04-13T21:56:09", testSet.points.find { it.index == 22 }?.meta["end_time"].string)
|
val point22 = testSet.points.find { it.index == 22 }!!
|
||||||
|
point22.blocks
|
||||||
|
assertEquals("2018-04-13T21:56:09", point22.meta["end_time"].string)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
|
||||||
jcenter()
|
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
|
mavenCentral()
|
||||||
|
jcenter()
|
||||||
maven("https://dl.bintray.com/kotlin/kotlin-eap")
|
maven("https://dl.bintray.com/kotlin/kotlin-eap")
|
||||||
maven("https://dl.bintray.com/kotlin/kotlin-dev")
|
maven("https://dl.bintray.com/kotlin/kotlin-dev")
|
||||||
maven("https://dl.bintray.com/mipt-npm/dataforge")
|
maven("https://dl.bintray.com/mipt-npm/dataforge")
|
||||||
@ -10,8 +10,8 @@ pluginManagement {
|
|||||||
maven("https://dl.bintray.com/mipt-npm/dev")
|
maven("https://dl.bintray.com/mipt-npm/dev")
|
||||||
}
|
}
|
||||||
|
|
||||||
val toolsVersion = "0.7.1"
|
val toolsVersion = "0.7.3-1.4.30-RC"
|
||||||
val kotlinVersion = "1.4.21"
|
val kotlinVersion = "1.4.30-RC"
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("ru.mipt.npm.project") version toolsVersion
|
id("ru.mipt.npm.project") version toolsVersion
|
||||||
@ -22,6 +22,16 @@ pluginManagement {
|
|||||||
kotlin("jvm") version kotlinVersion
|
kotlin("jvm") version kotlinVersion
|
||||||
kotlin("js") version kotlinVersion
|
kotlin("js") version kotlinVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resolutionStrategy {
|
||||||
|
eachPlugin {
|
||||||
|
if (requested.id.id == "com.squareup.wire") {
|
||||||
|
// For some reason, Gradle does a lookup on the wrong coordinates:
|
||||||
|
// 'com.squareup.wire:com.squareup.wire.gradle.plugin' instead of the one below.
|
||||||
|
useModule("com.squareup.wire:wire-gradle-plugin:${requested.version}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
include("numass-data-model")
|
include("numass-data-model")
|
||||||
|
Loading…
Reference in New Issue
Block a user