xsbti.Launcher Maven / Gradle / Ivy
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();
}