From 014e905384b23540d247956770c79c1c6756962b Mon Sep 17 00:00:00 2001 From: austek Date: Tue, 30 May 2023 14:12:45 +0100 Subject: [PATCH] Fix plugin version in deployed pact-plugin.json file fix #19 --- modules/plugin/pact-plugin.json | 18 --------------- project/Dependencies.scala | 10 ++++---- project/PactPluginJson.scala | 41 +++++++++++++++++++++++++++++++++ project/PublishSettings.scala | 7 +++++- project/builds.sbt | 3 +++ project/sbt-grpc.sbt | 2 +- 6 files changed, 56 insertions(+), 25 deletions(-) delete mode 100644 modules/plugin/pact-plugin.json create mode 100644 project/PactPluginJson.scala create mode 100644 project/builds.sbt diff --git a/modules/plugin/pact-plugin.json b/modules/plugin/pact-plugin.json deleted file mode 100644 index 944c9de..0000000 --- a/modules/plugin/pact-plugin.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "manifestVersion": 1, - "pluginInterfaceVersion": 1, - "name": "avro", - "version": "0.0.1", - "executableType": "exec", - "entryPoint": "bin/pact-avro-plugin", - "entryPoints": { - "windows": "bin/pact-avro-plugin.bat" - }, - "dependencies": [ - { - "name": "jvm", - "version": "11+", - "type": "OSPackage" - } - ] -} diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 073fb2a..2108d6d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -6,9 +6,9 @@ object Dependencies extends DependencyUtils { object Versions { val avro = "1.11.1" val logback = "1.2.11" - val pact = "4.5.5" + val pact = "4.6.0" val pulsar4sVersion = "2.9.0" - val scalaTest = "3.2.15" + val scalaTest = "3.2.16" } // protobuf Dependencies @@ -21,15 +21,15 @@ object Dependencies extends DependencyUtils { ExclusionRule("io.pact.plugin.driver"), ExclusionRule("org.slf4j") ) - val logback: ModuleID = "ch.qos.logback" % "logback-classic" % "1.4.6" - val pactCore: ModuleID = "io.pact.plugin.driver" % "core" % "0.3.2" excludeAll ( + val logback: ModuleID = "ch.qos.logback" % "logback-classic" % "1.4.7" + val pactCore: ModuleID = "io.pact.plugin.driver" % "core" % "0.4.0" excludeAll ( ExclusionRule("au.com.dius.pact.core"), ExclusionRule("org.slf4j") ) val scalaLogging: ModuleID = "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5" excludeAll ExclusionRule("org.slf4j") val scalaPBRuntime = "com.thesamet.scalapb" %% "scalapb-runtime-grpc" % scalapb.compiler.Version.scalapbVersion val slf4jApi: ModuleID = "org.slf4j" %% "slf4j-api" % "2.0.6" - val pureConfig: ModuleID = "com.github.pureconfig" %% "pureconfig" % "0.17.2" + val pureConfig: ModuleID = "com.github.pureconfig" %% "pureconfig" % "0.17.4" // Test dependencies val assertJCore: ModuleID = "org.assertj" % "assertj-core" % "3.24.2" diff --git a/project/PactPluginJson.scala b/project/PactPluginJson.scala new file mode 100644 index 0000000..8e4d254 --- /dev/null +++ b/project/PactPluginJson.scala @@ -0,0 +1,41 @@ +import upickle.default + +case class PactPluginDependency(name: String, version: String, `type`: String) + +object PactPluginDependency { + implicit val pactPluginDependencyRW: default.ReadWriter[PactPluginDependency] = upickle.default.macroRW[PactPluginDependency] +} + +case class PactPluginJson( + manifestVersion: Int, + pluginInterfaceVersion: Int, + name: String, + version: String, + executableType: String, + entryPoint: String, + entryPoints: Map[String, String], + dependencies: List[PactPluginDependency] +) +object PactPluginJson { + implicit val pactPluginJsonRW: default.ReadWriter[PactPluginJson] = upickle.default.macroRW[PactPluginJson] + def json(v: String): String = upickle.default.write( + PactPluginJson( + manifestVersion = 1, + pluginInterfaceVersion = 1, + name = "avro", + version = v, + executableType = "exec", + entryPoint = "bin/pact-avro-plugin", + entryPoints = Map( + "windows" -> "bin/pact-avro-plugin.bat" + ), + dependencies = List( + PactPluginDependency( + name = "jvm", + version = "11+", + `type` = "OSPackage" + ) + ) + ) + ) +} diff --git a/project/PublishSettings.scala b/project/PublishSettings.scala index 72c7a4a..8ed8271 100644 --- a/project/PublishSettings.scala +++ b/project/PublishSettings.scala @@ -12,9 +12,14 @@ object PublishSettings { executableScriptName := "pact-avro-plugin", Compile / doc / sources := Seq.empty, Compile / packageDoc / mappings := Seq.empty, + Compile / resourceGenerators += Def.task { + val file = (Compile / resourceManaged).value / "pact-plugin.json" + IO.write(file, PactPluginJson.json(version.value)) + Seq(file) + }, Universal / mappings ++= Seq( sourceDirectory.value / "main" / "resources" / "logback.xml" -> "conf/logback.xml", - baseDirectory.value / "pact-plugin.json" -> "pact-plugin.json" + (Compile / resourceManaged).value / "pact-plugin.json" -> "pact-plugin.json" ), Universal / javaOptions ++= Seq( "-Dfile.encoding=UTF-8", diff --git a/project/builds.sbt b/project/builds.sbt new file mode 100644 index 0000000..d568f11 --- /dev/null +++ b/project/builds.sbt @@ -0,0 +1,3 @@ +libraryDependencies ++= List( + "com.lihaoyi" %% "upickle" % "3.1.0" +) diff --git a/project/sbt-grpc.sbt b/project/sbt-grpc.sbt index 8363432..9a9957d 100644 --- a/project/sbt-grpc.sbt +++ b/project/sbt-grpc.sbt @@ -1,3 +1,3 @@ addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.6") -libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.11" +libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.13"