src/Pure/System/isabelle_system.scala
changeset 75681 83b976c3edb1
parent 75563 5bba3516ddb5
child 75692 048bbe0bf807
equal deleted inserted replaced
75680:605f4b6b5785 75681:83b976c3edb1
    53       yield c1.getDeclaredConstructor().newInstance().asInstanceOf[C]
    53       yield c1.getDeclaredConstructor().newInstance().asInstanceOf[C]
    54 
    54 
    55 
    55 
    56   /* init settings + services */
    56   /* init settings + services */
    57 
    57 
    58   def make_services(): List[Class[Service]] = {
    58   def get_services(): List[Class[Service]] = {
    59     def make(where: String, names: List[String]): List[Class[Service]] = {
    59     def make(where: String, names: List[String]): List[Class[Service]] = {
    60       for (name <- names) yield {
    60       for (name <- names) yield {
    61         def err(msg: String): Nothing =
    61         def err(msg: String): Nothing =
    62           error("Bad Isabelle/Scala service " + quote(name) + " in " + where + "\n" + msg)
    62           error("Bad Isabelle/Scala service " + quote(name) + " in " + where + "\n" + msg)
    63         try { Class.forName(name).asInstanceOf[Class[Service]] }
    63         try { Class.forName(name).asInstanceOf[Class[Service]] }
    73 
    73 
    74     def from_jar(platform_jar: String): List[Class[Service]] =
    74     def from_jar(platform_jar: String): List[Class[Service]] =
    75       make(quote(platform_jar),
    75       make(quote(platform_jar),
    76         isabelle.setup.Build.get_services(JPath.of(platform_jar)).asScala.toList)
    76         isabelle.setup.Build.get_services(JPath.of(platform_jar)).asScala.toList)
    77 
    77 
    78     from_env("ISABELLE_SCALA_SERVICES") ::: Scala.class_path().flatMap(from_jar)
    78     from_env("ISABELLE_SCALA_SERVICES") ::: Scala.get_classpath().flatMap(from_jar)
    79   }
    79   }
    80 
    80 
    81   def init(isabelle_root: String = "", cygwin_root: String = ""): Unit = {
    81   def init(isabelle_root: String = "", cygwin_root: String = ""): Unit = {
    82     isabelle.setup.Environment.init(isabelle_root, cygwin_root)
    82     isabelle.setup.Environment.init(isabelle_root, cygwin_root)
    83     synchronized { if (_services.isEmpty) { _services = Some(make_services()) } }
    83     synchronized { if (_services.isEmpty) { _services = Some(get_services()) } }
    84   }
    84   }
    85 
    85 
    86 
    86 
    87   /* getetc -- static distribution parameters */
    87   /* getetc -- static distribution parameters */
    88 
    88