aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-11-03 02:47:31 +0000
committerChristopher Vogt <oss.nsp@cvogt.org>2016-11-03 14:17:38 -0400
commiteb21b485fbc3972f66bed7d8af62900712cb3b0b (patch)
tree92ac88a45f77f033dd58a003df942fa3aa67362a /examples
parent131954279c0937b499bddc52c15a300b1af7b9bc (diff)
downloadcbt-eb21b485fbc3972f66bed7d8af62900712cb3b0b.tar.gz
cbt-eb21b485fbc3972f66bed7d8af62900712cb3b0b.tar.bz2
cbt-eb21b485fbc3972f66bed7d8af62900712cb3b0b.zip
Add support for resources (still limited by CBT's classloader visibility)
Diffstat (limited to 'examples')
-rw-r--r--examples/resources-example/build/build.scala21
-rw-r--r--examples/resources-example/build/build/build.scala20
-rw-r--r--examples/resources-example/my-resources/foo.text1
-rw-r--r--examples/resources-example/resources/foo.text1
-rw-r--r--examples/resources-example/src/Main.scala27
5 files changed, 70 insertions, 0 deletions
diff --git a/examples/resources-example/build/build.scala b/examples/resources-example/build/build.scala
new file mode 100644
index 0000000..aec5d79
--- /dev/null
+++ b/examples/resources-example/build/build.scala
@@ -0,0 +1,21 @@
+import cbt._
+class Build(val context: Context) extends BaseBuild{
+ /*
+ 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"
+ )
+ */
+ override def resourceClasspath = super.resourceClasspath ++ ClassPath(Seq(projectDirectory ++ "/my-resources"))
+}
diff --git a/examples/resources-example/build/build/build.scala b/examples/resources-example/build/build/build.scala
new file mode 100644
index 0000000..f700060
--- /dev/null
+++ b/examples/resources-example/build/build/build.scala
@@ -0,0 +1,20 @@
+import cbt._
+class Build(val context: Context) extends BuildBuild{
+ /*
+ 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"
+ )
+ */
+}
diff --git a/examples/resources-example/my-resources/foo.text b/examples/resources-example/my-resources/foo.text
new file mode 100644
index 0000000..f82e417
--- /dev/null
+++ b/examples/resources-example/my-resources/foo.text
@@ -0,0 +1 @@
+Hello from a resource in my-resources/ (the additional location manually added here in build.scala)
diff --git a/examples/resources-example/resources/foo.text b/examples/resources-example/resources/foo.text
new file mode 100644
index 0000000..6d7c85a
--- /dev/null
+++ b/examples/resources-example/resources/foo.text
@@ -0,0 +1 @@
+Hello from a resource in resources/ (the default location)
diff --git a/examples/resources-example/src/Main.scala b/examples/resources-example/src/Main.scala
new file mode 100644
index 0000000..3bc0943
--- /dev/null
+++ b/examples/resources-example/src/Main.scala
@@ -0,0 +1,27 @@
+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
+ )
+}