mirror of https://github.com/sbt/sbt.git
65 lines
2.4 KiB
Java
65 lines
2.4 KiB
Java
package xsbti;
|
|
|
|
import java.io.File;
|
|
|
|
public interface Launcher
|
|
{
|
|
public static final int InterfaceVersion = 1;
|
|
public ScalaProvider getScala(String version);
|
|
public ScalaProvider getScala(String version, String reason);
|
|
public ScalaProvider getScala(String version, String reason, String scalaOrg);
|
|
/**
|
|
* returns an `AppProvider` which is able to resolve an application
|
|
* and instantiate its `xsbti.Main` in a new classloader.
|
|
* See [AppProvider] for more details.
|
|
* @param id The artifact coordinates of the application.
|
|
* @param version The version to resolve
|
|
*/
|
|
public AppProvider app(ApplicationID id, String version);
|
|
/**
|
|
* This returns the "top" classloader for a launched application. This classlaoder
|
|
* lives somewhere *above* that used for the application. This classloader
|
|
* is used for doing any sort of JNA/native library loads so that downstream
|
|
* loaders can share native libraries rather than run into "load-once" restrictions.
|
|
*/
|
|
public ClassLoader topLoader();
|
|
/**
|
|
* Return the global lock for interacting with the file system.
|
|
*
|
|
* A mechanism to do file-based locking correctly on the JVM. See
|
|
* the [[GlobalLock]] class for more details.
|
|
*/
|
|
public GlobalLock globalLock();
|
|
/** Value of the `sbt.boot.dir` property, or the default
|
|
* boot configuration defined in `boot.directory`.
|
|
*/
|
|
public File bootDirectory();
|
|
/** Configured launcher repositories. These repositories
|
|
* are the same ones used to load the launcher.
|
|
*/
|
|
public xsbti.Repository[] ivyRepositories();
|
|
/** These are the repositories configured by this launcher
|
|
* which should be used by the application when resolving
|
|
* further artifacts.
|
|
*/
|
|
public xsbti.Repository[] appRepositories();
|
|
/** The user has configured the launcher with the only repositories
|
|
* it wants to use for this applciation.
|
|
*/
|
|
public boolean isOverrideRepositories();
|
|
/**
|
|
* The value of `ivy.ivy-home` of the boot properties file.
|
|
* This defaults to the `sbt.ivy.home` property, or `~/.ivy2`.
|
|
* Use this setting in an application when using Ivy to resolve
|
|
* more artifacts.
|
|
*
|
|
* @returns a file, or null if not set.
|
|
*/
|
|
public File ivyHome();
|
|
/** An array of the checksums that should be checked when retreiving artifacts.
|
|
* Configured via the the `ivy.checksums` section of the boot configuration.
|
|
* Defaults to sha1, md5 or the value of the `sbt.checksums` property.
|
|
*/
|
|
public String[] checksums();
|
|
}
|