## Runtime application model

The platform runtime provides an application container for controlling and executing applications. The runtime application container implements the Application Admin service specification included in the OSGi R4 specification. The application container is responsible for discovering all available applications and registering an ApplicationDescriptor OSGi service for each application that is available. An ApplicationDescriptor service can be used to launch an application. When an application is launched an ApplicationHandle OSGi service is registered to represent the instance of the running application. An ApplicationHandle service can be used to shutdown an application. See the org.osgi.service.application package and the OSGi R4.1 specification for more information.

### The default application

A given Eclipse configuration may contain many products and applications. An Eclipse configuration specifies a default application which is launched by the application container as soon as the platform runtime is up and running. The default application can be specified by one of the following configuration options

- eclipse.product - identifies the product to launch the platform runtime with. A product supplies branding information (window icons, title bar text etc.) as well as defining the default application to run.
- eclipse.application - identifies the application to launch the platform runtime with. This option overrides default application defined by the product.

### Defining an application

Plug-ins may define their own applications using the org.eclipse.core.runtime.applications extension. In this extension, the plug-in defines the name and ID of the application, as well a class that implements the application. The class which implements the application is used to launch and shutdown application instances.