# Applications

###### Identifier:

org.eclipse.core.runtime.applications

###### Description:

Platform runtime supports plug-ins which would like to declare main entry points. That is, programs which would like to run using the platform runtime but yet control all aspects of execution can declare themselves as an application. Declared applications can be run directly from the main platform launcher by specifying the -application argument where the parameter is the id of an extension supplied to the applications extension point described here. This application is instantiated and run by the platform. Platform clients can also use the platform to lookup and run multiple applications.

###### Configuration Markup:

<!ELEMENT extension (application)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #REQUIRED

name CDATA #IMPLIED>

<!ELEMENT application (run?)>

<!ATTLIST application

visible (true | false) "true"

cardinality (singleton-global|singleton-scoped|1|2|3|4|5|*) "singleton-global"

thread (main|any) "main"

icon CDATA #IMPLIED>

- visible - Specifies whether the application should be visible for the user. For example, some applications may provide features to other applications but nothing directly to the user. In this case the application should not be revealed to the user to start it individually. The default value is set to true.
- cardinality - Specifies the cardinality of the application. The cardinality controls the number of applications that may be running at the same time in the Platform. The following cardinality types are allowed
  singleton-global
    This application must be the only application running. No other types of applications can start while this application is active
  singleton-scoped
    This application must be the only scoped application running. No other applications that use the singleton-scoped cardinality can start while this application is active
  integer
    An integer indicates the maximum number of active instances allowed for this application. Other applications are allowed to start while this application is active, except for singleton-global applications
  *
    A value of "*" indicates there is no maximum on the number of active instances allowed for this application. Other applications are allowed to start while this application is active, except for singleton-global applications
  The default value is "singleton-global".
- thread - Specifies the thread the application must run on. The following thread types are allowed.
  main
    This application must run on the main thread.
  any
    This application may run on any thread.
  The default value is "main".
- icon - Path to a resource that should be used as the application icon. The path may be translated to provide a different icon according to the locale.

<!ELEMENT run (parameter*)>

<!ATTLIST run

class CDATA #REQUIRED>

- class - the fully-qualified name of a class which implements `org.eclipse.equinox.application.IApplication`.

<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name CDATA #REQUIRED

value CDATA #REQUIRED>

- name - the name of this parameter made available to instances of the specified application class
- value - the value of this parameter made available to instances of the specified application class

###### Examples:

Following is an example of an application declaration:

       <extension id="coolApplication" point="org.eclipse.core.runtime.applications">
          <application>
             <run class="com.xyz.applications.Cool">
                <parameter name="optimize" value="true"/>
             </run>
          </application>
       </extension>

###### API Information:

The value of the class attribute must represent an implementor of `org.eclipse.equinox.application.IApplication`. The interface `org.eclipse.core.runtime.IPlatformRunnable` has been deprecated and replaced by the `org.eclipse.equinox.application.IApplication` interface. The `org.eclipse.core.runtime.IPlatformRunnable` interface is supported only for backwards compatibility.

###### Supplied Implementation:

The platform supplies a number of applications including the platform workbench itself.

Copyright (c) 2004, 2007 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html