~ubuntu-branches/debian/sid/scala/sid

« back to all changes in this revision

Viewing changes to project/ScalaToolRunner.scala

  • Committer: Package Import Robot
  • Author(s): Emmanuel Bourg, Mehdi Dogguy, Lucas Satabin, Frank S. Thomas, Emmanuel Bourg
  • Date: 2015-06-05 23:52:59 UTC
  • mfrom: (1.2.11)
  • Revision ID: package-import@ubuntu.com-20150605235259-wk00vgk83dh8o19g
Tags: 2.10.5-1
* Team upload.

[ Mehdi Dogguy ]
* New upstream release (Closes: #744278).

[ Lucas Satabin ]
* Update patches
* Update the clean target
* Update paths of elements to install
* Update watch file

[ Frank S. Thomas ]
* Remove myself from Uploaders.

[ Emmanuel Bourg ]
* The package has been adopted by the Java Team (Closes: #754935)
* Patched the build to avoid downloading libraries from the Internet
* Replaced the minified JavaScript files with unobfuscated ones
* No longer build scala-partest.jar until diffutils is packaged or replaced
* debian/watch: Fixed the versions matched (x.y.z instead of x.y.z..z)
* debian/rules:
  - Added the missing get-orig-source target (Closes: #724704)
  - Improved the clean target
* debian/control:
  - Build depend on scala (>= 2.10) and bnd
  - Use canonical URLs for the Vcs-* fields
  - Standards-Version updated to 3.9.6 (no changes)
* Switch to debhelper level 9

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import sbt._
 
2
import Keys._
 
3
 
 
4
/** Reflection helper that runs ScalaTool. 
 
5
 * TODO - When SBT is on 2.10.x try to use Dynamic + Reflection. COULD BE FUN.
 
6
 */
 
7
class ScalaToolRunner(classpath: Classpath) {
 
8
  // TODO - Don't use the ant task directly...
 
9
  lazy val classLoader        = new java.net.URLClassLoader(classpath.map(_.data.toURI.toURL).toArray, null)
 
10
  lazy val mainClass          = classLoader.loadClass("scala.tools.ant.ScalaTool")
 
11
  lazy val executeMethod      = mainClass.getMethod("execute")
 
12
  lazy val setFileMethod      = mainClass.getMethod("setFile", classOf[java.io.File])
 
13
  lazy val setClassMethod     = mainClass.getMethod("setClass", classOf[String])
 
14
  lazy val setClasspathMethod = mainClass.getMethod("setClassPath", classOf[String])
 
15
  lazy val instance           = mainClass.newInstance()
 
16
    
 
17
  def setClass(cls: String): Unit    = setClassMethod.invoke(instance, cls)
 
18
  def setFile(file: File): Unit      = setFileMethod.invoke(instance, file)
 
19
  def setClasspath(cp: String): Unit = setClasspathMethod.invoke(instance, cp)
 
20
  def execute(): Unit                = executeMethod.invoke(instance)
 
21
}