//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2010, 2026 Contributors to the Eclipse Foundation
//
// See the NOTICE file(s) distributed with this work for additional
// information regarding copyright ownership.
//
// This program and the accompanying materials are made available
// under the terms of the MIT License which is available at
// https://opensource.org/licenses/MIT
//
// SPDX-License-Identifier: MIT
//////////////////////////////////////////////////////////////////////////////

include::_part_attributes.asciidoc[]

indexterm:[application, execution]

:leveloffset: -2

[[app-framework-execution]]
== Execution

Application framework applications can be executed in the following ways:

* As plain Java application, from the command line.
+
Using the _GUI_ option, the application can be executed either with full GUI support, or as headless application.
+
The OSGi framework will not be running, and the Eclipse workbench will not be available.

* As application within the Eclipse IDE, with full GUI support.
+
The OSGi framework will be running, and the Eclipse workbench will be available.

* As headless Eclipse application.
+
Using the _GUI_ option, the application can be executed either with full GUI support, or as headless application.
+
The OSGi framework will be running, but the Eclipse workbench will not be available.
+
The `org.eclipse.escet.common.app.framework.AppEclipseApplication` application can be provided to the `-application` command line argument of Eclipse to start any application framework application.
This functionality is implemented by the `org.eclipse.escet.common.app.framework.AppEclipseApplication` class, which provides a generic implementation of Eclipse's `IApplication` interface that supports execution of any application framework application.
+
The following command line arguments are expected:
+
** Optionally, the `--launcher.noRestart` argument, if provided by the Eclipse launcher.
** The name of the plug-in (OSGi bundle) that provides the application.
** The full/absolute name of the Java class that implements the application.
Must extend the `Application` class and have a parameterless constructor.
** The remaining command line arguments are the command line arguments for the application itself.
