aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2017-02-13 08:25:31 -0500
committerChristopher Vogt <oss.nsp@cvogt.org>2017-02-13 08:25:31 -0500
commit4561db0a58053ffebaf2830fbed13f5b9eb8fb1f (patch)
tree1ea304bd85bcb082800120fb182823c988a1de29 /examples
parent27fd0f346b901d8f86ff71d408c4b8cf16dc91f7 (diff)
downloadcbt-4561db0a58053ffebaf2830fbed13f5b9eb8fb1f.tar.gz
cbt-4561db0a58053ffebaf2830fbed13f5b9eb8fb1f.tar.bz2
cbt-4561db0a58053ffebaf2830fbed13f5b9eb8fb1f.zip
support for flat classloader and enhanced resources example
Diffstat (limited to 'examples')
-rw-r--r--examples/resources-example/Main.scala22
-rw-r--r--examples/resources-example/build/build.scala21
-rw-r--r--examples/resources-example/parent/build/build.scala12
-rw-r--r--examples/resources-example/parent/build/build/build.scala (renamed from examples/resources-example/build/build/build.scala)0
-rw-r--r--examples/resources-example/parent/my-resources/foo.text (renamed from examples/resources-example/my-resources/foo.text)0
-rw-r--r--examples/resources-example/parent/package.scala6
-rw-r--r--examples/resources-example/parent/parent/package.scala6
-rw-r--r--examples/resources-example/parent/resources/foo.text (renamed from examples/resources-example/resources/foo.text)0
-rw-r--r--examples/resources-example/src/Main.scala27
9 files changed, 50 insertions, 44 deletions
diff --git a/examples/resources-example/Main.scala b/examples/resources-example/Main.scala
new file mode 100644
index 0000000..f0c8e1b
--- /dev/null
+++ b/examples/resources-example/Main.scala
@@ -0,0 +1,22 @@
+package cbt.example.resources
+import scala.collection.JavaConverters._
+import java.nio.file.{Files, Paths}
+object Main{
+ def getResource = Option(getClass.getClassLoader.getResource("foo.text"))
+ def getResources = getClass.getClassLoader.getResources("foo.text").asScala.toList
+
+ def main( args: Array[String] ): Unit = {
+ println("Reading parent's resources")
+ println("")
+ // resources are in the parent
+ println("via child: " + getResource.nonEmpty + " " + getResources.size )
+ println("")
+ // this one is where the resources are
+ println("via parent: " + parent.getResource.nonEmpty + " " + parent.getResources.size )
+ println("")
+ // parent is parent.parent's child. reading children's resources only works
+ // with a flat classloader in cbt. Try `override def flatClassLoader = true`.
+ // or `cbt runFlat` when extending `DynamicOverrides`
+ println("via parent.parent: " + parent.parent.getResource.nonEmpty + " " + parent.parent.getResources.size )
+ }
+}
diff --git a/examples/resources-example/build/build.scala b/examples/resources-example/build/build.scala
index aec5d79..b95863d 100644
--- a/examples/resources-example/build/build.scala
+++ b/examples/resources-example/build/build.scala
@@ -1,21 +1,8 @@
import cbt._
-class Build(val context: Context) extends BaseBuild{
- /*
+class Build(val context: Context) extends DynamicOverrides{
override def dependencies =
- super.dependencies ++ // don't forget super.dependencies here
- Seq(
- // source dependency
- DirectoryDependency( projectDirectory ++ "/subProject" )
- ) ++
- Resolver( mavenCentral ).bind(
- // CBT-style Scala dependencies
- ScalaDependency( "com.lihaoyi", "ammonite-ops", "0.5.5" )
- MavenDependency( "com.lihaoyi", "ammonite-ops_2.11", "0.5.5" )
-
- // SBT-style dependencies
- "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
- "com.lihaoyi" % "ammonite-ops_2.11" % "0.5.5"
+ super.dependencies ++ // don't forget super.dependencies here for scala-library, etc.
+ Seq(
+ DirectoryDependency( projectDirectory ++ "/parent" )
)
- */
- override def resourceClasspath = super.resourceClasspath ++ ClassPath(Seq(projectDirectory ++ "/my-resources"))
}
diff --git a/examples/resources-example/parent/build/build.scala b/examples/resources-example/parent/build/build.scala
new file mode 100644
index 0000000..f04ab40
--- /dev/null
+++ b/examples/resources-example/parent/build/build.scala
@@ -0,0 +1,12 @@
+import cbt._
+class Build(val context: Context) extends BaseBuild{
+ override def dependencies =
+ super.dependencies ++ // don't forget super.dependencies here
+ Seq(
+ DirectoryDependency( projectDirectory ++ "/parent" )
+ )
+
+ override def resourceClasspath = super.resourceClasspath ++ ClassPath(
+ Seq(projectDirectory ++ "/my-resources")
+ )
+}
diff --git a/examples/resources-example/build/build/build.scala b/examples/resources-example/parent/build/build/build.scala
index f700060..f700060 100644
--- a/examples/resources-example/build/build/build.scala
+++ b/examples/resources-example/parent/build/build/build.scala
diff --git a/examples/resources-example/my-resources/foo.text b/examples/resources-example/parent/my-resources/foo.text
index f82e417..f82e417 100644
--- a/examples/resources-example/my-resources/foo.text
+++ b/examples/resources-example/parent/my-resources/foo.text
diff --git a/examples/resources-example/parent/package.scala b/examples/resources-example/parent/package.scala
new file mode 100644
index 0000000..cbd4d8f
--- /dev/null
+++ b/examples/resources-example/parent/package.scala
@@ -0,0 +1,6 @@
+package cbt.example.resources.parent
+import scala.collection.JavaConverters._
+object `package`{
+ def getResource = Option(getClass.getClassLoader.getResource("foo.text"))
+ def getResources = getClass.getClassLoader.getResources("foo.text").asScala.toList
+}
diff --git a/examples/resources-example/parent/parent/package.scala b/examples/resources-example/parent/parent/package.scala
new file mode 100644
index 0000000..8d40851
--- /dev/null
+++ b/examples/resources-example/parent/parent/package.scala
@@ -0,0 +1,6 @@
+package cbt.example.resources.parent.parent
+import scala.collection.JavaConverters._
+object `package`{
+ def getResource = Option(getClass.getClassLoader.getResource("foo.text"))
+ def getResources = getClass.getClassLoader.getResources("foo.text").asScala.toList
+}
diff --git a/examples/resources-example/resources/foo.text b/examples/resources-example/parent/resources/foo.text
index 6d7c85a..6d7c85a 100644
--- a/examples/resources-example/resources/foo.text
+++ b/examples/resources-example/parent/resources/foo.text
diff --git a/examples/resources-example/src/Main.scala b/examples/resources-example/src/Main.scala
deleted file mode 100644
index 3bc0943..0000000
--- a/examples/resources-example/src/Main.scala
+++ /dev/null
@@ -1,27 +0,0 @@
-import java.nio.file.{Files, Paths}
-object Main extends App {
- // Be aware that CBT currently isolates classloaders of dependencies
- // your dependencies will not see the resources of your project
- // This means that e.g. spray will not see a application.conf in your project's
- // resources/ directory. See https://github.com/cvogt/cbt/issues/176
- println(
- "foo.text in resources contains: " ++
- new String(
- Files.readAllBytes(
- Paths.get( getClass.getClassLoader.getResource("foo.text").getFile )
- )
- )
- )
- import scala.collection.JavaConverters._
- println(
- "foo.text in resources and my-resources:\n" ++
- getClass.getClassLoader.getResources("foo.text").asScala.map(
- resource =>
- new String(
- Files.readAllBytes(
- Paths.get( resource.getFile )
- )
- )
- ).mkString
- )
-}