Copyright (c) 2005, 2018 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2005, 2018 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.equinox.app;
Bootstrap type for an application. An IApplication represent executable entry points into an application. An IApplication can be configured into the Platform's org.eclipse.core.runtime.applications extension-point.

Clients may implement this interface.

Since:1.0
/** * Bootstrap type for an application. An IApplication represent executable * entry points into an application. An IApplication can be configured into * the Platform's <code>org.eclipse.core.runtime.applications</code> extension-point. * * <p> * Clients may implement this interface. * </p> * * @since 1.0 */
public interface IApplication {
Exit object indicating normal termination
/** * Exit object indicating normal termination */
public static final Integer EXIT_OK = Integer.valueOf(0);
Exit object requesting platform restart
/** * Exit object requesting platform restart */
public static final Integer EXIT_RESTART = Integer.valueOf(23);
Exit object requesting that the command passed back be executed. Typically this is used to relaunch Eclipse with different command line arguments. When the executable is relaunched the command line will be retrieved from the eclipse.exitdata system property.
/** * Exit object requesting that the command passed back be executed. Typically * this is used to relaunch Eclipse with different command line arguments. When the executable is * relaunched the command line will be retrieved from the * {@link IApplicationContext#EXIT_DATA_PROPERTY eclipse.exitdata} system property. */
public static final Integer EXIT_RELAUNCH = Integer.valueOf(24);
Starts this application with the given context and returns a result. The content of the context is unchecked and should conform to the expectations of the application being invoked. This method can return the value IApplicationContext.EXIT_ASYNC_RESULT if the application will deliver its results asynchronously with the IApplicationContext.setResult(Object, IApplication) method; otherwise this method must not exit until the application is finished and is ready to exit.

Applications can return any object they like. If an Integer is returned it is treated as the program exit code if Eclipse is exiting.

Note: This method is called by the platform; it is not intended to be called directly by clients.

Params:
  • context – the application context to pass to the application
Throws:
  • Exception – if there is a problem running this application.
See Also:
Returns:the return value of the application
/** * Starts this application with the given context and returns a result. The content of * the context is unchecked and should conform to the expectations of the application being * invoked. This method can return the value {@link IApplicationContext#EXIT_ASYNC_RESULT} if * the application will deliver its results asynchronously with the * {@link IApplicationContext#setResult(Object, IApplication)} method; otherwise this method must not exit * until the application is finished and is ready to exit. * <p> * Applications can return any object they like. If an <code>Integer</code> is returned * it is treated as the program exit code if Eclipse is exiting. * </p> * <p> * Note: This method is called by the platform; it is not intended * to be called directly by clients. * </p> * @return the return value of the application * @see #EXIT_OK * @see #EXIT_RESTART * @see #EXIT_RELAUNCH * @see IApplicationContext#EXIT_ASYNC_RESULT * @param context the application context to pass to the application * @exception Exception if there is a problem running this application. */
public Object start(IApplicationContext context) throws Exception;
Forces this running application to exit. This method should wait until the running application is ready to exit. The start(IApplicationContext) should already have exited or should exit very soon after this method exits

This method is only called to force an application to exit. This method will not be called if an application exits normally from the start(IApplicationContext) method.

Note: This method is called by the platform; it is not intended to be called directly by clients.

/** * Forces this running application to exit. This method should wait until the * running application is ready to exit. The {@link #start(IApplicationContext)} * should already have exited or should exit very soon after this method exits<p> * * This method is only called to force an application to exit. * This method will not be called if an application exits normally from * the {@link #start(IApplicationContext)} method. * <p> * Note: This method is called by the platform; it is not intended * to be called directly by clients. * </p> */
public void stop(); }