Skip to content

Commit

Permalink
Fix parquet-cli packaging (#159)
Browse files Browse the repository at this point in the history
  • Loading branch information
Michel Davit authored Sep 19, 2024
1 parent b12ab2b commit 6ac31dc
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 16 deletions.
16 changes: 16 additions & 0 deletions avro-tools/src/test/scala/org/apache/avro/tool/MainSpec.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.apache.avro.tool

import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

class MainSpec extends AnyFlatSpec with Matchers {

"avro-tools" should "display help" in {
noException shouldBe thrownBy {
// main calls System.exit. test with run
val run = classOf[Main].getDeclaredMethod("run", classOf[Array[String]])
run.setAccessible(true)
run.invoke(new Main(), Array("--help"))
}
}
}
35 changes: 19 additions & 16 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import ReleaseTransformations._
import ReleaseTransformations.*
import sbt.OutputStrategy

organization := "com.spotify.data"
name := "gcs-tools"
Expand All @@ -10,11 +11,12 @@ val hadoopVersion = "3.3.6"
val jacksonVersion = "2.15.0"
val joptVersion = "5.0.4"
val magnolifyVersion = "0.7.4"
val parquetVersion = "1.14.2"
val parquetVersion = "1.13.1" // scala-steward:off Wait fix https://github.com/apache/parquet-java/issues/3016
val protobufGenericVersion = "0.2.9"
val protobufVersion = "4.28.1"
val scalatestVersion = "3.2.19"
val slf4jReload4jVersion = "2.0.16"
val slf4jReload4jVersion2 = "2.0.16"
val slf4jReload4jVersion1 = "1.7.36" // scala-steward:off

// use slf4j-reload4j instead
lazy val excludeLog4j = ExclusionRule("log4j", "log4j")
Expand All @@ -34,13 +36,9 @@ lazy val protobufSettings = Seq(Compile, Test)

val commonSettings = Seq(
scalaVersion := "2.13.14",
javacOptions ++= Seq("--release", "8")
)

val toolsSettings = assemblySettings ++ Seq(
libraryDependencies ++= Seq(
"org.slf4j" % "slf4j-reload4j" % slf4jReload4jVersion % Runtime
)
javacOptions ++= Seq("--release", "8"),
fork := true,
Test / outputStrategy := Some(OutputStrategy.StdoutOutput),
)

lazy val root = project
Expand Down Expand Up @@ -92,35 +90,39 @@ lazy val `avro-tools` = project
.in(file("avro-tools"))
.dependsOn(shared % "compile->compile;runtime->runtime")
.settings(commonSettings)
.settings(toolsSettings)
.settings(assemblySettings)
.settings(
autoScalaLibrary := false,
assembly / mainClass := Some("org.apache.avro.tool.Main"),
assembly / assemblyJarName := s"avro-tools-$avroVersion.jar",
libraryDependencies ++= Seq(
"org.apache.avro" % "avro-tools" % avroVersion
"org.apache.avro" % "avro-tools" % avroVersion,
"org.slf4j" % "slf4j-reload4j" % slf4jReload4jVersion2 % Runtime,
"org.scalatest" %% "scalatest" % scalatestVersion % Test
)
)

lazy val `parquet-cli` = project
.in(file("parquet-cli"))
.dependsOn(shared)
.settings(commonSettings)
.settings(toolsSettings)
.settings(assemblySettings)
.settings(
autoScalaLibrary := false,
assembly / mainClass := Some("org.apache.parquet.cli.Main"),
assembly / assemblyJarName := s"parquet-cli-$parquetVersion.jar",
libraryDependencies ++= Seq(
"org.apache.parquet" % "parquet-cli" % parquetVersion
"org.apache.parquet" % "parquet-cli" % parquetVersion,
"org.slf4j" % "slf4j-reload4j" % slf4jReload4jVersion1 % Runtime,
"org.scalatest" %% "scalatest" % scalatestVersion % Test
)
)

lazy val `proto-tools` = project
.in(file("proto-tools"))
.dependsOn(shared)
.settings(commonSettings)
.settings(toolsSettings)
.settings(assemblySettings)
.settings(protobufSettings)
.settings(
assembly / mainClass := Some("org.apache.avro.tool.ProtoMain"),
Expand All @@ -130,6 +132,7 @@ lazy val `proto-tools` = project
"me.lyh" %% "protobuf-generic" % protobufGenericVersion,
"net.sf.jopt-simple" % "jopt-simple" % joptVersion,
"org.apache.avro" % "avro-mapred" % avroVersion,
"org.slf4j" % "slf4j-reload4j" % slf4jReload4jVersion2 % Runtime,
"org.scalatest" %% "scalatest" % scalatestVersion % Test
)
)
Expand All @@ -138,7 +141,7 @@ lazy val `magnolify-tools` = project
.in(file("magnolify-tools"))
.dependsOn(shared)
.settings(commonSettings)
.settings(toolsSettings)
.settings(assemblySettings)
.settings(
assembly / mainClass := Some("magnolify.tools.Main"),
assembly / assemblyJarName := s"magnolify-tools-$magnolifyVersion.jar",
Expand Down
19 changes: 19 additions & 0 deletions parquet-cli/src/test/scala/org/apache/parquet/cli/MainSpec.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.apache.parquet.cli

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.util.ToolRunner
import org.apache.log4j.PropertyConfigurator
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
import org.slf4j.LoggerFactory

class MainSpec extends AnyFlatSpec with Matchers {

"parquet-cli" should "display help" in {
noException shouldBe thrownBy {
PropertyConfigurator.configure(classOf[Main].getResource("/cli-logging.properties"));
val console = LoggerFactory.getLogger(classOf[Main])
ToolRunner.run(new Configuration, new Main(console), Array("--help"))
}
}
}

0 comments on commit 6ac31dc

Please sign in to comment.