Class EclipseStarter
- java.lang.Object
-
- org.eclipse.core.runtime.adaptor.EclipseStarter
-
public class EclipseStarter extends Object
Special startup class for the Eclipse Platform. This class cannot be instantiated; all functionality is provided by static methods.The Eclipse Platform makes heavy use of Java class loaders for loading plug-ins. Even the Eclipse Runtime itself and the OSGi framework need to be loaded by special class loaders. The upshot is that a client program (such as a Java main program, a servlet) cannot reference any part of Eclipse directly. Instead, a client must use this loader class to start the platform, invoking functionality defined in plug-ins, and shutting down the platform when done.
Note that the fields on this class are not API.
- Since:
- 3.0
- Restriction:
- This class is not intended to be subclassed by clients.
-
-
Field Summary
Fields Modifier and Type Field Description static booleandebugstatic StringPROP_ADAPTORstatic StringPROP_ALLOW_APPRELAUNCHstatic StringPROP_ARCHstatic StringPROP_BUNDLESstatic StringPROP_BUNDLES_STARTLEVELstatic StringPROP_CHECK_CONFIGstatic StringPROP_CLEANstatic StringPROP_CONSOLEstatic StringPROP_CONSOLE_CLASSstatic StringPROP_CONSOLE_LOGstatic StringPROP_DEBUGstatic StringPROP_DEVstatic StringPROP_EXITCODEstatic StringPROP_EXITDATAstatic StringPROP_EXTENSIONSstatic StringPROP_FRAMEWORKstatic StringPROP_FRAMEWORK_SHAPEstatic StringPROP_IGNOREAPPstatic StringPROP_INITIAL_STARTLEVELstatic StringPROP_INSTALL_AREAstatic StringPROP_LOGFILEstatic StringPROP_NLstatic StringPROP_NOSHUTDOWNstatic StringPROP_OSstatic StringPROP_REFRESH_BUNDLESstatic StringPROP_SYSPATHstatic StringPROP_WS
-
Constructor Summary
Constructors Constructor Description EclipseStarter()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static StringgetSysPath()static BundleContextgetSystemBundleContext()Returns the context of the system bundle.static booleanisRunning()Returns true if the platform is already running, false otherwise.static voidmain(String[] args)This is the main to start osgi.static Objectrun(Object argument)Runs the application for which the platform was started.static Objectrun(String[] args, Runnable endSplashHandler)Launches the platform and runs a single application.static voidsetInitialProperties(Map<String,String> initialProperties)Sets the initial properties for the platform.static voidshutdown()Shuts down the Platform.static BundleContextstartup(String[] args, Runnable endSplashHandler)Starts the platform and sets it up to run a single application.
-
-
-
Field Detail
-
debug
public static boolean debug
-
PROP_BUNDLES
public static final String PROP_BUNDLES
- See Also:
- Constant Field Values
-
PROP_BUNDLES_STARTLEVEL
public static final String PROP_BUNDLES_STARTLEVEL
- See Also:
- Constant Field Values
-
PROP_EXTENSIONS
public static final String PROP_EXTENSIONS
- See Also:
- Constant Field Values
-
PROP_INITIAL_STARTLEVEL
public static final String PROP_INITIAL_STARTLEVEL
- See Also:
- Constant Field Values
-
PROP_DEBUG
public static final String PROP_DEBUG
- See Also:
- Constant Field Values
-
PROP_DEV
public static final String PROP_DEV
- See Also:
- Constant Field Values
-
PROP_CLEAN
public static final String PROP_CLEAN
- See Also:
- Constant Field Values
-
PROP_CONSOLE
public static final String PROP_CONSOLE
- See Also:
- Constant Field Values
-
PROP_CONSOLE_CLASS
public static final String PROP_CONSOLE_CLASS
- See Also:
- Constant Field Values
-
PROP_CHECK_CONFIG
public static final String PROP_CHECK_CONFIG
- See Also:
- Constant Field Values
-
PROP_OS
public static final String PROP_OS
- See Also:
- Constant Field Values
-
PROP_WS
public static final String PROP_WS
- See Also:
- Constant Field Values
-
PROP_NL
public static final String PROP_NL
- See Also:
- Constant Field Values
-
PROP_ARCH
public static final String PROP_ARCH
- See Also:
- Constant Field Values
-
PROP_ADAPTOR
public static final String PROP_ADAPTOR
- See Also:
- Constant Field Values
-
PROP_SYSPATH
public static final String PROP_SYSPATH
- See Also:
- Constant Field Values
-
PROP_LOGFILE
public static final String PROP_LOGFILE
- See Also:
- Constant Field Values
-
PROP_FRAMEWORK
public static final String PROP_FRAMEWORK
- See Also:
- Constant Field Values
-
PROP_INSTALL_AREA
public static final String PROP_INSTALL_AREA
- See Also:
- Constant Field Values
-
PROP_FRAMEWORK_SHAPE
public static final String PROP_FRAMEWORK_SHAPE
- See Also:
- Constant Field Values
-
PROP_NOSHUTDOWN
public static final String PROP_NOSHUTDOWN
- See Also:
- Constant Field Values
-
PROP_EXITCODE
public static final String PROP_EXITCODE
- See Also:
- Constant Field Values
-
PROP_EXITDATA
public static final String PROP_EXITDATA
- See Also:
- Constant Field Values
-
PROP_CONSOLE_LOG
public static final String PROP_CONSOLE_LOG
- See Also:
- Constant Field Values
-
PROP_IGNOREAPP
public static final String PROP_IGNOREAPP
- See Also:
- Constant Field Values
-
PROP_REFRESH_BUNDLES
public static final String PROP_REFRESH_BUNDLES
- See Also:
- Constant Field Values
-
PROP_ALLOW_APPRELAUNCH
public static final String PROP_ALLOW_APPRELAUNCH
- See Also:
- Constant Field Values
-
-
Method Detail
-
main
public static void main(String[] args) throws Exception
This is the main to start osgi. It only works when the framework is being jared as a single jar- Throws:
Exception
-
run
public static Object run(String[] args, Runnable endSplashHandler) throws Exception
Launches the platform and runs a single application. The application is either identified in the given arguments (e.g., -application <app id>) or in theeclipse.applicationSystem property. This convenience method starts up the platform, runs the indicated application, and then shuts down the platform. The platform must not be running already.- Parameters:
args- the command line-style arguments used to configure the platformendSplashHandler- the block of code to run to tear down the splash screen ornullif no tear down is required- Returns:
- the result of running the application
- Throws:
Exception- if anything goes wrong
-
isRunning
public static boolean isRunning()
Returns true if the platform is already running, false otherwise.- Returns:
- whether or not the platform is already running
-
startup
public static BundleContext startup(String[] args, Runnable endSplashHandler) throws Exception
Starts the platform and sets it up to run a single application. The application is either identified in the given arguments (e.g., -application <app id>) or in theeclipse.applicationSystem property. The platform must not be running already.The given runnable (if not
null) is used to tear down the splash screen if required.- Parameters:
args- the arguments passed to the application- Returns:
- BundleContext the context of the system bundle
- Throws:
Exception- if anything goes wrong
-
run
public static Object run(Object argument) throws Exception
Runs the application for which the platform was started. The platform must be running.The given argument is passed to the application being run. If it is
nullthen the command line arguments used in starting the platform, and not consumed by the platform code, are passed to the application as aString[].- Parameters:
argument- the argument passed to the application. May benull- Returns:
- the result of running the application
- Throws:
Exception- if anything goes wrong
-
shutdown
public static void shutdown() throws ExceptionShuts down the Platform. The state of the Platform is not automatically saved before shutting down.On return, the Platform will no longer be running (but could be re-launched with another call to startup). If relaunching, care must be taken to reinitialize any System properties which the platform uses (e.g., osgi.instance.area) as some policies in the platform do not allow resetting of such properties on subsequent runs.
Any objects handed out by running Platform, including Platform runnables obtained via getRunnable, will be permanently invalid. The effects of attempting to invoke methods on invalid objects is undefined.
- Throws:
Exception- if anything goes wrong
-
getSysPath
protected static String getSysPath()
-
setInitialProperties
public static void setInitialProperties(Map<String,String> initialProperties)
Sets the initial properties for the platform. This method must be called before calling therun(String[], Runnable)orstartup(String[], Runnable)methods for the properties to be used in a launched instance of the platform.If the specified properties contains a null value then the key for that value will be cleared from the properties of the platform.
- Parameters:
initialProperties- the initial properties to set for the platform.- Since:
- 3.2
-
getSystemBundleContext
public static BundleContext getSystemBundleContext()
Returns the context of the system bundle. A value ofnullis returned if the platform is not running.- Returns:
- the context of the system bundle
- Throws:
SecurityException- If the caller does not have the appropriateAdminPermission[system.bundle,CONTEXT], and the Java Runtime Environment supports permissions.
-
-