Skip to content

Commit ff2044d

Browse files
author
Antonio Cunei
committed
Changes to serialization/deserialization and companion objects
In the new setting, jacks gets confused when the case classes that need to be serialized/deserialized have a companion object. This commit changes the companion objects into separate objects, and adapts the code references to them. Also included are fixes to tests and it tests.
1 parent 17a5f60 commit ff2044d

File tree

22 files changed

+58
-25
lines changed

22 files changed

+58
-25
lines changed

build/src/main/scala/com/typesafe/dbuild/build/Comparison.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import java.util.jar.JarFile
1515
import java.util.jar.JarEntry
1616
import java.io.FileInputStream
1717
import org.apache.oro.text.regex
18+
import com.typesafe.dbuild.model.SeqStringH._
1819

1920
class Comparison(options: GeneralOptions, log: Logger) extends OptionTask(log) {
2021
def id = "Comparison"

build/src/main/scala/com/typesafe/dbuild/build/Notifications.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ import RecipientType._
1111
import com.typesafe.dbuild.deploy.Creds.loadCreds
1212
import com.typesafe.dbuild.model.TemplateFormatter
1313
import dispatch.classic.{ Logger => _, _ }
14+
import com.typesafe.dbuild.model.SeqNotificationH._
15+
import com.typesafe.dbuild.model.SeqSelectorElementH._
16+
import com.typesafe.dbuild.model.SeqStringH._
1417

1518
//
1619
// Ideally, the ConsoleNotification should become the mechanism by which the entire log of the

build/src/main/scala/com/typesafe/dbuild/build/OptionTask.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import Logger.prepareLogMsg
77
import com.typesafe.dbuild.model._
88
import java.io.File
99
import com.typesafe.dbuild.repo.core.{ LocalRepoHelper, Repository }
10+
import com.typesafe.dbuild.model.SeqStringH._
1011

1112
/**
1213
* Defines a task that will run before or after the build, defined somewhere

build/src/main/scala/com/typesafe/dbuild/build/SbtBuildMain.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import java.util.TimeZone
2323
import collection.JavaConverters._
2424
import scala.collection.JavaConversions._
2525
import com.typesafe.config.ConfigRenderOptions
26+
import com.typesafe.dbuild.model.SeqDBCH._
27+
import com.typesafe.dbuild.model.SeqStringH._
2628

2729
/**
2830
* These options are created by SbtBuildMain, and are propagated to most stages of building, as

build/src/main/scala/com/typesafe/dbuild/build/SimpleBuildActor.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import java.io.File
2121
import com.typesafe.dbuild.repo.core.GlobalDirs
2222
import org.apache.maven.execution.BuildFailure
2323
import Logger.prepareLogMsg
24+
import com.typesafe.dbuild.model.SeqDBCH._
2425

2526
case class RunDBuild(conf: DBuildConfiguration, confName: String,
2627
buildTarget: Option[String], logger: Logger, options: BuildRunOptions)
@@ -157,7 +158,7 @@ class SimpleBuildActor(extractor: ActorRef, builder: ActorRef, repository: Repos
157158
case Right(o) => o
158159
}
159160

160-
nest(RepeatableDBuildConfig.fromExtractionOutcome(extractionOutcome)) { fullBuild =>
161+
nest(RepeatableDBuildConfigH.fromExtractionOutcome(extractionOutcome)) { fullBuild =>
161162
// what we call "RepeatableDBuildConfig" is actually only the portion of data that
162163
// affect the build. Further options that do /not/ affect the build, but control dbuild in
163164
// other ways (notifications, resolvers, etc), are in the GeneralOptions.

metadata/src/main/scala/com/typesafe/dbuild/model/Config.scala

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ import collection.JavaConverters._
1313
import com.typesafe.dbuild.deploy.DeployTarget
1414
import com.typesafe.dbuild.hashing
1515

16+
import SeqBooleanH._
17+
import SeqDBCH._
18+
import SeqDepsModifiersH._
19+
import SeqNotificationH._
20+
import SeqSelectorElementH._
21+
import SeqSeqStringH._
22+
import SeqStringH._
1623
/**
1724
* Metadata about a build. This is extracted from a config file and contains enough information
1825
* to further extract information about a build.
@@ -347,7 +354,7 @@ case class SeqString(override val s: Seq[String]) extends Flex[String](s) {
347354
}
348355
class SeqStringDeserializer extends SeqFlexDeserializer[String, SeqString]
349356
class SeqStringSerializer extends SeqFlexSerializer[String]
350-
object SeqString {
357+
object SeqStringH {
351358
implicit def SeqToSeqString(s: Seq[String]): SeqString = SeqString(s)
352359
implicit def SeqStringToSeq(a: SeqString): Seq[String] = a.s
353360
}
@@ -362,7 +369,7 @@ case class SeqBoolean(override val s: Seq[Boolean]) extends Flex[Boolean](s) {
362369
}
363370
class SeqBooleanDeserializer extends SeqFlexDeserializer[Boolean, SeqBoolean]
364371
class SeqBooleanSerializer extends SeqFlexSerializer[Boolean]
365-
object SeqBoolean {
372+
object SeqBooleanH {
366373
implicit def SeqToSeqBoolean(s: Seq[Boolean]): SeqBoolean = SeqBoolean(s)
367374
implicit def SeqBooleanToSeq(a: SeqBoolean): Seq[Boolean] = a.s
368375
}
@@ -376,7 +383,7 @@ object SeqBoolean {
376383
case class SeqDBC(override val s: Seq[DBuildConfig]) extends Flex[DBuildConfig](s)
377384
class SeqDBCDeserializer extends SeqFlexDeserializer[DBuildConfig, SeqDBC]
378385
class SeqDBCSerializer extends SeqFlexSerializer[DBuildConfig]
379-
object SeqDBC {
386+
object SeqDBCH {
380387
implicit def SeqToSeqDBC(s: Seq[DBuildConfig]): SeqDBC = SeqDBC(s)
381388
implicit def SeqDBCToSeq(a: SeqDBC): Seq[DBuildConfig] = a.s
382389
}
@@ -389,7 +396,7 @@ object SeqDBC {
389396
case class SeqDepsModifiers(override val s: Seq[DepsModifiers]) extends Flex[DepsModifiers](s)
390397
class SeqDMDeserializer extends SeqFlexDeserializer[DepsModifiers, SeqDepsModifiers]
391398
class SeqDMSerializer extends SeqFlexSerializer[DepsModifiers]
392-
object SeqDepsModifiers {
399+
object SeqDepsModifiersH {
393400
implicit def SeqToSeqDM(s: Seq[DepsModifiers]): SeqDepsModifiers = SeqDepsModifiers(s)
394401
implicit def SeqDMToSeq(a: SeqDepsModifiers): Seq[DepsModifiers] = a.s
395402
implicit def OptToSeqDM(o: Option[DepsModifiers]): SeqDepsModifiers = SeqDepsModifiers(o.toSeq)
@@ -407,7 +414,7 @@ case class SeqSeqString(override val s: Seq[SeqString]) extends Flex[SeqString](
407414
// turn the SeqSeqString into a Seq[Seq[String]]
408415
def expand = s map {_.s}
409416
}
410-
object SeqSeqString {
417+
object SeqSeqStringH {
411418
implicit def SeqToSeqSeqString(s: Seq[SeqString]): SeqSeqString = SeqSeqString(s)
412419
implicit def SeqSeqStringToSeq(a: SeqSeqString): Seq[SeqString] = a.s
413420
}
@@ -779,7 +786,7 @@ case class SeqSelectorElement(override val s: Seq[SelectorElement]) extends Flex
779786
}
780787
class SeqElementDeserializer extends SeqFlexDeserializer[SelectorElement, SeqSelectorElement]
781788
class SeqElementSerializer extends SeqFlexSerializer[SelectorElement]
782-
object SeqSelectorElement {
789+
object SeqSelectorElementH {
783790
implicit def SeqToSeqSelectorElement(s: Seq[SelectorElement]): SeqSelectorElement = SeqSelectorElement(s)
784791
implicit def SeqSelectorElementToSeq(a: SeqSelectorElement): Seq[SelectorElement] = a.s
785792
}
@@ -793,7 +800,7 @@ object SeqSelectorElement {
793800
case class SeqNotification(override val s: Seq[Notification]) extends Flex[Notification](s)
794801
class SeqNotificationDeserializer extends SeqFlexDeserializer[Notification, SeqNotification]
795802
class SeqNotificationSerializer extends SeqFlexSerializer[Notification]
796-
object SeqNotification {
803+
object SeqNotificationH {
797804
implicit def SeqToSeqNotification(s: Seq[Notification]): SeqNotification = SeqNotification(s)
798805
implicit def SeqNotificationToSeq(a: SeqNotification): Seq[Notification] = a.s
799806
}
@@ -976,7 +983,7 @@ class NotificationKindSerializer extends JsonSerializer[NotificationKind] {
976983

977984
class NotificationDeserializer extends JsonDeserializer[Notification] {
978985
override def deserialize(p: JsonParser, ctx: DeserializationContext): Notification = {
979-
val notificationKinds = NotificationKind.kinds
986+
val notificationKinds = NotificationKindH.kinds
980987

981988
val tf = ctx.getConfig.getTypeFactory()
982989
val d = ctx.findContextualValueDeserializer(tf.constructType(classOf[NotificationShadow]), null)
@@ -1133,7 +1140,7 @@ case class Smtp(
11331140

11341141
case class ConsoleNotification() extends NotificationKind
11351142

1136-
object NotificationKind {
1143+
object NotificationKindH {
11371144
val kinds: Map[String, java.lang.Class[_ <: NotificationKind]] = Map(
11381145
"console" -> classOf[ConsoleNotification],
11391146
"flowdock" -> classOf[FlowdockNotification],

metadata/src/main/scala/com/typesafe/dbuild/model/Extracted.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package com.typesafe.dbuild.model
22
import com.fasterxml.jackson.annotation.{ JsonCreator, JsonProperty }
33

4+
// Note: all of the case classes in this file are serialized/deserialized
5+
// by using the "jacks" library. For that library to work correctly, there
6+
// must not be any companion objects defined for those case classes.
7+
48
/**
59
* A project dep is an extracted *external* build dependency. I.e. this is a
610
* maven/ivy artifact that exists and is built external to a local build.
@@ -70,7 +74,7 @@ case class ExtractedBuildMeta(@JsonProperty("proj-info") projInfo: Seq /*Levels*
7074
"%s -> (%s, %s, %s)" format (index, version, projects.mkString("\n\t", "\n\t", "\n"), subproj.mkString("\n ", ", ", "\n"))
7175
})
7276
}
73-
object ExtractedBuildMeta {
77+
object ExtractedBuildMetaH {
7478
def apply(version: String, projects: Seq[Project], subproj: Seq[String] = Seq.empty): ExtractedBuildMeta =
7579
ExtractedBuildMeta(Seq /*Levels*/ (ProjMeta(version, projects, subproj)))
76-
}
80+
}

metadata/src/main/scala/com/typesafe/dbuild/model/RepeatableBuild.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.typesafe.dbuild.model
33
import Utils.{ writeValue, canSeeSpace }
44
import com.fasterxml.jackson.annotation.JsonProperty
55
import com.typesafe.dbuild.hashing
6+
import com.typesafe.dbuild.model.SeqStringH._
67

78
/**
89
* Information on how to build a project. Consists of both dbuild
@@ -66,7 +67,7 @@ case class RepeatableDepInfo(
6667
// the two Seqs should probably be converted into a Seq[(String,String)].
6768
)
6869

69-
object RepeatableDBuildConfig {
70+
object RepeatableDBuildConfigH {
7071
def fromExtractionOutcome(outcome: ExtractionOK) = RepeatableDBuildConfig(outcome.pces)
7172
}
7273
/**

metadata/src/test/scala/com/typesafe/dbuild/model/RepeatableBuildSpec.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.typesafe.dbuild.model
22

33
import org.specs2.mutable.Specification
44
import Utils.{writeValue,readValue}
5+
import SeqDepsModifiersH._
56

67
import com.lambdaworks.jacks._
78
import JacksOption._

proj/src/main/scala/com/typesafe/dbuild/project/dependencies/Extractor.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import com.typesafe.dbuild.project.cleanup.Recycling.{ updateTimeStamp, markSucc
1717
import com.typesafe.dbuild.model.ExtractionOK
1818
import org.apache.ivy.core.module.id.ModuleRevisionId
1919
import com.typesafe.dbuild.model.ProjectRef
20+
import com.typesafe.dbuild.model.SeqDepsModifiersH._
21+
import com.typesafe.dbuild.model.SeqStringH._
2022

2123
/** This is used to extract dependencies from projects. */
2224
class Extractor(

support/src/it/scala/com/typesafe/dbuild/support/sbt/SbtExtractionSpec.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ package sbt
55
import com.typesafe.dbuild.logging.{ConsoleLogger, Logger}
66
import com.typesafe.dbuild.model.{ProjectRef, SbtExtraConfig, ProjectBuildConfig, ExtractionConfig}
77
import org.specs2.mutable.Specification
8-
8+
import com.typesafe.dbuild.model.SeqSeqStringH._
9+
import com.typesafe.dbuild.model.SeqStringH._
910

1011
// TDOO - Because this requires the sbt plugin to be published, we have to publsh locally
1112
// before we can run integration tests.
@@ -82,4 +83,4 @@ object SbtExtractionSpec extends Specification {
8283
}
8384
}
8485
}
85-
}
86+
}

support/src/it/scala/com/typesafe/dbuild/support/sbt/SbtTestHarness.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ object SbtTestHarness {
1111
url: URL,
1212
ivyPattern: String = defaultIvyPatterns,
1313
artifactPattern: String = defaultIvyPatterns,
14-
mavenCompatible: Boolean = false) extends xsbti.IvyRepository
14+
mavenCompatible: Boolean = false,
15+
descriptorOptional: Boolean = false,
16+
skipConsistencyCheck:Boolean = false
17+
) extends xsbti.IvyRepository
1518
private case class MvnRepo(id: String, url: URL) extends xsbti.MavenRepository
1619
// TODO - we should pull in whatever local ~/.sbt/repositories specifies, or what the current sbt project is using,
1720
// so we dont' have super slow integration tests.

support/src/main/scala/com/typesafe/dbuild/support/aether/AetherBuildSystem.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,9 +437,9 @@ class AetherBuildSystem(repos: List[xsbti.Repository], workingDir: File) extends
437437
if (a.getClassifier != "jar" && a.getClassifier != "") Some(a.getClassifier) else None)
438438
}
439439

440-
ExtractedBuildMeta(modRevId.getRevision, Seq.empty, Seq.empty)
440+
ExtractedBuildMetaH(modRevId.getRevision, Seq.empty, Seq.empty)
441441
// (version: String, projects: Seq[Project], subproj: Seq[String] = Seq.empty)
442-
val q = ExtractedBuildMeta(modRevId.getRevision, Seq(Project(fixName(modRevId.getName()), modRevId.getOrganisation(),
442+
val q = ExtractedBuildMetaH(modRevId.getRevision, Seq(Project(fixName(modRevId.getName()), modRevId.getOrganisation(),
443443
// artifacts: Seq[ProjectRef],
444444
arts map artToProjectRef,
445445
// dependencies: Seq[ProjectRef])

support/src/main/scala/com/typesafe/dbuild/support/assemble/AssembleBuildSystem.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import org.apache.ivy.util.ChecksumHelper
2727
import com.typesafe.dbuild.support.NameFixer.fixName
2828
import org.apache.ivy
2929
import com.typesafe.dbuild.project.build.BuildDirs.localRepos
30-
30+
import com.typesafe.dbuild.model.SeqDBCH._
3131
/**
3232
* The "assemble" build system accepts a list of nested projects, with the same format
3333
* as the "build" section of a normal dbuild configuration file.
@@ -145,7 +145,7 @@ object AssembleBuildSystem extends BuildSystemCore {
145145
// postprocessing of the subproject names
146146
val adapted = adaptSubProjects(projectsAndSubprojects)
147147

148-
val newMeta = ExtractedBuildMeta("0.0.0",
148+
val newMeta = ExtractedBuildMetaH("0.0.0",
149149
allConfigAndExtracted.flatMap(_.extracted.projects.map { p =>
150150
// remove all dependencies that are not already provided by this
151151
// assembled project (we pretend the resulting assembled set has

support/src/main/scala/com/typesafe/dbuild/support/ivy/IvyBuildSystem.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class IvyBuildSystem(repos: List[xsbti.Repository], workingDir: File) extends Bu
5656
log.warn("**** Warning: no artifacts found in project " + config.name)
5757
val module = config.uri.substring(4)
5858
val modRevId = ModuleRevisionId.parse(module)
59-
ExtractedBuildMeta(modRevId.getRevision, Seq.empty, Seq.empty)
59+
ExtractedBuildMetaH(modRevId.getRevision, Seq.empty, Seq.empty)
6060
} else {
6161
val modRevId = artifactReports(0).getArtifact.getModuleRevisionId
6262
val module = modRevId.getModuleId()
@@ -82,7 +82,7 @@ class IvyBuildSystem(repos: List[xsbti.Repository], workingDir: File) extends Bu
8282
val deps = loaded.flatMap { _.getAllArtifacts.toSeq }.distinct
8383
if (deps.nonEmpty) log.info("Dependencies of project " + config.name + ":")
8484
deps foreach { d => log.info(" " + d) }
85-
val q = ExtractedBuildMeta(modRevId.getRevision, Seq(Project(fixName(first.getName), first.getOrganisation,
85+
val q = ExtractedBuildMetaH(modRevId.getRevision, Seq(Project(fixName(first.getName), first.getOrganisation,
8686
firstNode.getAllArtifacts.toSeq.map(artifactToProjectRef).distinct,
8787
loaded.flatMap { _.getAllArtifacts.toSeq.map(artifactToProjectRef) }.distinct)))
8888
log.debug(q.toString)

support/src/main/scala/com/typesafe/dbuild/support/ivy/IvyMachinery.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import org.apache.ivy.core.resolve.IvyNode
3030
import org.apache.ivy.core.module.descriptor.Configuration
3131
import org.apache.ivy.core.module.descriptor.DefaultDependencyArtifactDescriptor
3232
import com.typesafe.dbuild.project.build.BuildDirs._
33+
import com.typesafe.dbuild.model.SeqStringH._
3334

3435
object IvyMachinery {
3536
// there are two stages to the madness below. The first: we create a dummy caller, and add the module we need as a dependency.

support/src/main/scala/com/typesafe/dbuild/support/nil/NilBuildSystem.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ object NilBuildSystem extends BuildSystemCore {
4949
* Fabricate some ExtractedBuildMeta as suitable.
5050
*/
5151
private def readMeta(config: ProjectBuildConfig): ExtractedBuildMeta = {
52-
ExtractedBuildMeta(config.setVersion getOrElse "xxx", Seq.empty, Seq.empty)
52+
ExtractedBuildMetaH(config.setVersion getOrElse "xxx", Seq.empty, Seq.empty)
5353
}
5454
}

support/src/main/scala/com/typesafe/dbuild/support/sbt/DependencyExtractor.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import sys.process.Process
1111
import com.typesafe.dbuild.model.Utils.{ readValue, writeValue }
1212
import com.typesafe.dbuild.logging.Logger.logFullStackTrace
1313
import com.fasterxml.jackson.annotation.JsonProperty
14+
import com.typesafe.dbuild.model.SeqStringH._
1415

1516
/**
1617
* Input data to the dbuild sbt plugin

support/src/main/scala/com/typesafe/dbuild/support/sbt/SbtBuildRunner.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.typesafe.dbuild.project.build.BuildDirs._
1414
import com.typesafe.dbuild.support.sbt.SbtRunner.SbtFileNames._
1515
import com.typesafe.dbuild.support.sbt.SbtRunner.{ sbtIvyCache, buildArtsFile }
1616
import com.typesafe.dbuild.model.SeqSeqString
17+
import com.typesafe.dbuild.model.SeqStringH._
1718
/**
1819
* Rewiring a level needs the information contained in RewireInput:
1920
*

support/src/main/scala/com/typesafe/dbuild/support/sbt/SbtBuildSystem.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import com.typesafe.dbuild.project.build.LocalBuildRunner
1414
import com.typesafe.dbuild.project.{ BuildSystem, BuildData }
1515
import com.typesafe.dbuild.model.Utils.{ writeValue, readValue }
1616
import com.typesafe.dbuild.support.sbt.SbtRunner.{ sbtIvyCache, buildArtsFile }
17+
import com.typesafe.dbuild.model.SeqSeqStringH._
18+
import com.typesafe.dbuild.model.SeqStringH._
1719

1820
/** Implementation of the SBT build system. */
1921
class SbtBuildSystem(repos: List[xsbti.Repository], workingDir: File, debug: Boolean) extends BuildSystemCore {

support/src/main/scala/com/typesafe/dbuild/support/scala/ScalaBuildSystem.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.apache.maven.model.Dependency
2424
import org.apache.ivy.util.ChecksumHelper
2525
import com.typesafe.dbuild.support.NameFixer.fixName
2626
import com.typesafe.dbuild.project.build.BuildDirs.dbuildDirName
27+
import com.typesafe.dbuild.model.SeqStringH._
2728

2829
/** Implementation of the Scala build system. */
2930
object ScalaBuildSystem extends BuildSystemCore {
@@ -55,7 +56,7 @@ object ScalaBuildSystem extends BuildSystemCore {
5556
}
5657

5758
// ok, now we just have to merge everything together.
58-
val newMeta = ExtractedBuildMeta(meta.version, configAndExtracted.extracted.projects, meta.subproj)
59+
val newMeta = ExtractedBuildMetaH(meta.version, configAndExtracted.extracted.projects, meta.subproj)
5960
log.info(newMeta.subproj.mkString("These subprojects will be built: ", ", ", ""))
6061
newMeta
6162
}

support/src/main/scala/com/typesafe/dbuild/support/test/TestBuildSystem.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ object TestBuildSystem extends BuildSystemCore {
5252
* Fabricate some ExtractedBuildMeta as suitable.
5353
*/
5454
private def readMeta(config: ProjectBuildConfig): ExtractedBuildMeta = {
55-
ExtractedBuildMeta(config.setVersion getOrElse "xxx", Seq.empty, Seq.empty)
55+
ExtractedBuildMetaH(config.setVersion getOrElse "xxx", Seq.empty, Seq.empty)
5656
}
5757
}

0 commit comments

Comments
 (0)