Skip to content

Commit 54f484f

Browse files
committed
Added local copies of IOUtils as a workaround
1 parent 3c1c81a commit 54f484f

File tree

2 files changed

+76
-51
lines changed

2 files changed

+76
-51
lines changed

build.sbt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,15 @@ libraryDependencies ++= Seq(
1414
"org.scalescc" %% "scalac-scales-plugin" % "0.11.0-SNAPSHOT"
1515
)
1616

17-
publishTo <<= isSnapshot {
18-
snapshot =>
19-
if (snapshot) Some(Classpaths.sbtPluginSnapshots) else Some(Classpaths.sbtPluginReleases)
17+
scalacOptions := Seq("-unchecked", "-deprecation", "-feature", "-encoding", "utf8")
18+
19+
publishTo := {
20+
val scalasbt = "http://repo.scala-sbt.org/scalasbt/"
21+
val (name, url) = if (version.toString.contains("-SNAPSHOT"))
22+
("sbt-plugin-snapshots", scalasbt + "sbt-plugin-snapshots")
23+
else
24+
("sbt-plugin-releases", scalasbt + "sbt-plugin-releases")
25+
Some(Resolver.url(name, new URL(url))(Resolver.ivyStylePatterns))
2026
}
2127

2228
publishMavenStyle := false

src/main/scala/org/scalescc/sbt/ScalesSbtPlugin.scala

Lines changed: 67 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,41 @@ import java.util.Properties
44
import sbt._
55
import sbt.Keys._
66
import xml.transform._
7-
import scales.{Env, IOUtils}
8-
import scales.reporters.{ScalesHtmlWriter, CoberturaXmlWriter, ScalesXmlWriter}
7+
import scales.{Coverage, Env}
8+
import scales.report.{ScalesHtmlWriter, CoberturaXmlWriter, ScalesXmlWriter}
9+
import java.io._
10+
import sbt.File
11+
import sbt.File
12+
import scala.Some
13+
import sbt.File
14+
import scala.Some
15+
import java.io.File
16+
import sbt.File
917

1018
object ScalesSbtPlugin extends Plugin {
1119

1220
val scalesReportDir = SettingKey[File]("scales-report-dir")
1321

14-
lazy val scales = config("scales")
15-
lazy val scalesTest = config("scales-test") extend scales
22+
lazy val Scales = config("scales")
23+
lazy val ScalesTest = config("scales-test") extend Scales
1624

17-
lazy val instrumentSettings =
18-
inConfig(scales)(Defaults.compileSettings) ++
19-
inConfig(scalesTest)(Defaults.testSettings) ++
25+
lazy val instrumentSettings = {
26+
inConfig(Scales)(Defaults.compileSettings) ++
27+
inConfig(ScalesTest)(Defaults.testSettings) ++
2028
Seq(
2129
scalesReportDir <<= crossTarget / "coverage-report",
2230

23-
ivyConfigurations ++= Seq(scales, scalesTest),
31+
ivyConfigurations ++= Seq(Scales, ScalesTest),
2432

2533
resolvers += Resolver.url("local-ivy",
2634
new URL("file://" + Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns),
2735

28-
libraryDependencies += "org.scalescc" %% "scalac-scales-plugin" % "0.1.0-SNAPSHOT" % "scales",
36+
libraryDependencies += "org.scalescc" %% "scalac-scales-plugin" % "0.11.0-SNAPSHOT" % Scales.name,
2937

30-
sources in scales <<= (sources in Compile),
31-
sourceDirectory in scales <<= (sourceDirectory in Compile),
38+
sources in Scales <<= (sources in Compile),
39+
sourceDirectory in Scales <<= (sourceDirectory in Compile),
3240

33-
scalacOptions in scales <++= (name in scales, baseDirectory in scales, update) map {
41+
scalacOptions in Scales <++= (name in Scales, baseDirectory in Scales, update) map {
3442
(n, b, report) =>
3543
val scalesDeps = report matching configurationFilter("scales")
3644
scalesDeps.find(_.getAbsolutePath.contains("scalac-scales-plugin")) match {
@@ -42,49 +50,38 @@ object ScalesSbtPlugin extends Plugin {
4250
}
4351
},
4452

45-
sources in scalesTest <<= (sources in Test),
46-
sourceDirectory in scalesTest <<= (sourceDirectory in Test),
47-
unmanagedResources in scalesTest <<= (unmanagedResources in Test),
53+
sources in ScalesTest <<= (sources in Test),
54+
sourceDirectory in ScalesTest <<= (sourceDirectory in Test),
55+
unmanagedResources in ScalesTest <<= (unmanagedResources in Test),
4856

49-
resourceDirectory in scalesTest <<= (resourceDirectory in Compile),
57+
resourceDirectory in ScalesTest <<= (resourceDirectory in Compile),
5058

51-
externalDependencyClasspath in scales <<= Classpaths
52-
.concat(externalDependencyClasspath in scales, externalDependencyClasspath in Compile),
53-
externalDependencyClasspath in scalesTest <<= Classpaths
54-
.concat(externalDependencyClasspath in scalesTest, externalDependencyClasspath in Test),
59+
externalDependencyClasspath in Scales <<= Classpaths
60+
.concat(externalDependencyClasspath in Scales, externalDependencyClasspath in Compile),
61+
externalDependencyClasspath in ScalesTest <<= Classpaths
62+
.concat(externalDependencyClasspath in ScalesTest, externalDependencyClasspath in Test),
5563

56-
internalDependencyClasspath in scales <<= (internalDependencyClasspath in Compile),
57-
internalDependencyClasspath in scalesTest <<= (internalDependencyClasspath in Test, internalDependencyClasspath in scalesTest, classDirectory in Compile) map {
64+
internalDependencyClasspath in Scales <<= (internalDependencyClasspath in Compile),
65+
internalDependencyClasspath in ScalesTest <<= (internalDependencyClasspath in Test, internalDependencyClasspath in ScalesTest, classDirectory in Compile) map {
5866
(testDeps, scalesDeps, oldClassDir) =>
5967
scalesDeps ++ testDeps.filter(_.data != oldClassDir)
6068
},
6169

62-
testOptions in scalesTest <+= testsSetup,
63-
testOptions in scalesTest <+= testsCleanup,
70+
testOptions in ScalesTest <+= testsSetup,
71+
testOptions in ScalesTest <+= testsCleanup,
6472

6573
// make scales config the same as scalesTest config
66-
test in scales <<= (test in scalesTest),
67-
68-
pomPostProcess := {
69-
(node: xml.Node) => filterPomForScalesDeps(node)
70-
}
74+
test in Scales <<= (test in ScalesTest)
7175
)
72-
73-
val filterPomForScalesDeps = new RuleTransformer(new RewriteRule {
74-
override def transform(node: xml.Node): Seq[xml.Node] = node match {
75-
case e: xml.Elem if e.label == "dependency" => if ((e \ "scope" text) == "scalac-scales-plugin") Nil else Seq(e)
76-
case e: xml.Elem if e.label == "repository" => if ((e \ "name" text) == "scales-repository") Nil else Seq(e)
77-
case e => Seq(e)
78-
}
79-
})
76+
}
8077

8178
/** Generate hook that is invoked before each tests execution. */
8279
def testsSetup = {
83-
(name in scales,
84-
baseDirectory in scales,
85-
scalaSource in scales,
86-
classDirectory in scalesTest,
87-
definedTests in scalesTest,
80+
(name in Scales,
81+
baseDirectory in Scales,
82+
scalaSource in Scales,
83+
classDirectory in ScalesTest,
84+
definedTests in ScalesTest,
8885
scalesReportDir,
8986
streams) map {
9087
(name,
@@ -109,11 +106,28 @@ object ScalesSbtPlugin extends Plugin {
109106
}
110107
}
111108

109+
// todo figure out how to access these from another dep
110+
def invoked(file: File): Seq[Int] = {
111+
val reader = new BufferedReader(new FileReader(Env.measurementFile))
112+
val line = reader.readLine()
113+
reader.close()
114+
line.split(";").filterNot(_.isEmpty).map(_.toInt)
115+
}
116+
117+
// todo figure out how to access these from another dep
118+
def deserialize(file: File): Coverage = deserialize(new FileInputStream(file))
119+
def deserialize(in: InputStream): Coverage = {
120+
val oos = new ObjectInputStream(in)
121+
val coverage = oos.readObject().asInstanceOf[Coverage]
122+
oos.close()
123+
coverage
124+
}
125+
112126
/** Generate hook that is invoked after each tests execution. */
113127
def testsCleanup = {
114-
(name in scales,
115-
classDirectory in scalesTest,
116-
definedTests in scalesTest,
128+
(name in Scales,
129+
classDirectory in ScalesTest,
130+
definedTests in ScalesTest,
117131
streams) map {
118132
(name,
119133
classDirectory,
@@ -123,12 +137,16 @@ object ScalesSbtPlugin extends Plugin {
123137
Tests.Cleanup {
124138
() => {}
125139
}
126-
} else
140+
} else {
127141
Tests.Cleanup {
128142
() =>
129143

130-
val coverage = IOUtils.deserialize(Env.coverageFile)
131-
val measurements = IOUtils.invoked(Env.measurementFile)
144+
println(Keys.target in Test)
145+
println(Env.coverageFile)
146+
println(Env.measurementFile)
147+
148+
val coverage = deserialize(Env.coverageFile)
149+
val measurements = invoked(Env.measurementFile)
132150

133151
coverage.apply(measurements)
134152

@@ -146,6 +164,7 @@ object ScalesSbtPlugin extends Plugin {
146164

147165
()
148166
}
167+
}
149168
}
150169
}
151170
}

0 commit comments

Comments
 (0)