mirror of
https://github.com/sbt/sbt.git
synced 2026-08-31 18:24:30 +02:00
New generalized launcher
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package xsbti;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface AppConfiguration
|
||||
{
|
||||
public String[] arguments();
|
||||
public File baseDirectory();
|
||||
public AppProvider provider();
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package xsbti;
|
||||
|
||||
public interface AppMain
|
||||
{
|
||||
public MainResult run(AppConfiguration configuration);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package xsbti;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface AppProvider
|
||||
{
|
||||
public ScalaProvider scalaProvider();
|
||||
public ApplicationID id();
|
||||
|
||||
public Class<? extends AppMain> mainClass();
|
||||
public AppMain newMain();
|
||||
|
||||
public File[] component(String componentID);
|
||||
public void defineComponent(String componentID, File[] components);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package xsbti;
|
||||
|
||||
public interface ApplicationID
|
||||
{
|
||||
public String groupID();
|
||||
public String name();
|
||||
public String version();
|
||||
|
||||
public String mainClass();
|
||||
public String[] mainComponents();
|
||||
public boolean crossVersioned();
|
||||
}
|
||||
@@ -1,22 +1,7 @@
|
||||
package xsbti;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface Launcher extends ScalaProvider, SbtProvider
|
||||
public interface Launcher
|
||||
{
|
||||
public static final int InterfaceVersion = 1;
|
||||
|
||||
public void boot(String[] args);
|
||||
public MainResult checkAndLoad(String[] args);
|
||||
public MainResult load(String[] args);
|
||||
public MainResult load(String[] args, String useSbtVersion, String mainClassName, String definitionScalaVersion);
|
||||
public ClassLoader update(String scalaVersion, String sbtVersion);
|
||||
public MainResult run(ClassLoader sbtLoader, String mainClassName, SbtConfiguration configuration);
|
||||
|
||||
public File BaseDirectory();
|
||||
public File ProjectDirectory();
|
||||
public File BootDirectory();
|
||||
public File PropertiesFile();
|
||||
|
||||
public Launcher launcher(File base, String mainClassName);
|
||||
public ScalaProvider getScala(String version);
|
||||
}
|
||||
@@ -1,5 +1,11 @@
|
||||
package xsbti;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface Reboot extends MainResult
|
||||
{
|
||||
public String[] arguments();
|
||||
public File baseDirectory();
|
||||
public String scalaVersion();
|
||||
public ApplicationID app();
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package xsbti;
|
||||
|
||||
public interface SbtConfiguration
|
||||
{
|
||||
public String[] arguments();
|
||||
public String scalaVersion();
|
||||
public String sbtVersion();
|
||||
public java.io.File baseDirectory();
|
||||
public Launcher launcher();
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package xsbti;
|
||||
|
||||
public interface SbtMain
|
||||
{
|
||||
public MainResult run(SbtConfiguration configuration);
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package xsbti;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface SbtProvider
|
||||
{
|
||||
public ClassLoader createSbtLoader(String sbtVersion, String scalaVersion);
|
||||
public ClassLoader createSbtLoader(String sbtVersion, String scalaVersion, ClassLoader parentLoader);
|
||||
|
||||
public File getSbtHome(String sbtVersion, String scalaVersion);
|
||||
public File componentLocation(String sbtVersion, String id, String scalaVersion);
|
||||
}
|
||||
@@ -4,6 +4,10 @@ import java.io.File;
|
||||
|
||||
public interface ScalaProvider
|
||||
{
|
||||
public ClassLoader getScalaLoader(String scalaVersion);
|
||||
public File getScalaHome(String scalaVersion);
|
||||
public Launcher launcher();
|
||||
public String version();
|
||||
|
||||
public ClassLoader loader();
|
||||
public File[] jars();
|
||||
public AppProvider app(ApplicationID id);
|
||||
}
|
||||
Reference in New Issue
Block a user