Corona's server-side platform is an Eclipse runtime environment. It shares the same architecture used by the Eclipse rich client platform (RCP). The same concepts of bundles, plug-ins, and features are supported across both the client and server environments. The Corona server-side platform also supports the OSGi Application concept to manage the runtime lifecycle of a server component. The Corona server-side platform consists of three categories of components: Corona (core), Equinox/OSGi, Eclipse core runtime, and common 3rd party libraries.
Corona's core platform plugins provide the functionality to needed to host an Eclipse server-side environment. Corona supports the concept of Server Applications, OSGi Applications that provide server-side functionality.
The items provide by Corona's core are:
- An OSGi application used to start/stop the server-side enviornment
- Management interfaces to monitor and control the environment (see COSMOS)
- A diagnostics framework used to collect data from the platform and its components to aid in problem analysis.
Eclipse Core Runtime
3rd Party Libraries
Beginning with Eclipse v3.3, a new application model was introduced.
- 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.
Corona's server-side environment supports the execution of multiple applications. The primary application, Corona, runs on the main thread. Additional applications are considered secondary and must be configured to run on any thread. To create an application to run within the Corona server-side environment, create an extension to org.eclipse.core.runtime.application.
Server Application Model
Corona defines IServerApplication, that extends the org.eclipse.equinox.app.IApplication, for the server-side environment. In addition, a component server application should be based upon AbstractServerApplication. This base server application class provides functionality for handling application arguments as well as functionality for managing the applications threds.
Corona needs to be configured to start secondary applications. This is accomplished by defining the osgi.applications property. This can be set either as a jvm argument (i.e. -Dosgi.applications=...), or in config.ini. The osgi.applications can be defined to start multiple applications.
- The id of the osgi application
- The application's 1st argument (optional)
- The application's 2nd argument (optional)
- The application's 3rd argument (optional)
Corona follows the Eclipse feature deployment model via Update Manager. It is possible to invoke the Eclipse Update Manager to install a feature into Corona's server-side environment. The Update Manager is started as a stand-alone OSGi application.
java -jar plugins/org.eclipse.equinox.launcher_"verion".jar -console -application org.eclipse.update.core.standaloneUpdate -command install -from "updateSite" -featureId "featureId" -version "featureVersion"