| /******************************************************************************* |
| * Copyright (c) 2011, 2012 Frank Appel 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 |
| * |
| * Contributors: |
| * Frank Appel - initial API and implementation |
| * EclipseSource - ongoing developement |
| ******************************************************************************/ |
| package org.eclipse.rap.rwt.application; |
| |
| |
| /** |
| * An <code>ApplicationConfiguration</code> describes an RWT application, including |
| * the entrypoints, URL mappings, themes, etc. that constitute the application. |
| * <p> |
| * The <code>configure</code> method will be called by the framework in order |
| * to configure an application instance before it is started. An implementation |
| * must at least register an entrypoint that provides the user interface for the |
| * application. A simple implementation of this interface looks like this: |
| * </p> |
| * <pre> |
| * public class ExampleConfiguration implements ApplicationConfiguration { |
| * |
| * public void configure( Application application ) { |
| * configuration.addEntryPoint( "/example", ExampleEntryPoint.class, null ); |
| * } |
| * } |
| * </pre> |
| * <p> |
| * The <code>configure</code> method is called only once during the lifetime of |
| * an application. The configuration of the application takes place before the |
| * system is activated. Therefore, manipulation of the configuration instance at |
| * a later point in time is unsupported. |
| * </p> |
| * <p> |
| * There can be more than one application instance at runtime, running on |
| * different network ports or in different contexts. In most cases, developers |
| * do not have to create an application instance explicitly. The |
| * <code>ApplicationConfiguration</code> can be registered with the |
| * the surrounding container instead. For example, in a servlet container, the |
| * application can be registered as <code>context-param</code> in the |
| * <code>web.xml</code> (see <code>CONFIGURATION_PARAM</code>), in |
| * <code>OSGi</code> it can be registered as a service, and when using the |
| * workbench with RAP, the application is registered with an extension-point. |
| * </p> |
| * <p> |
| * Apart from this, an <code>{@link ApplicationRunner ApplicationRunner}</code> |
| * can be used to run an application with this configuration. |
| * </p> |
| * |
| * @see Application |
| * @see ApplicationRunner |
| * @since 2.0 |
| */ |
| public interface ApplicationConfiguration { |
| |
| /** |
| * This constant contains the context parameter name to register an |
| * ApplicationConfiguration in a servlet container environment when running |
| * RAP without OSGi. To do so, the fully qualified class name of the |
| * implementation has to be registered as a <code>context-param</code> in the |
| * <code>web.xml</code>. Example: |
| * |
| * <pre> |
| * <context-param> |
| * <param-name>org.eclipse.rap.applicationConfiguration</param-name> |
| * <param-value>com.example.ExampleConfiguration</param-value> |
| * </context-param> |
| * </pre> |
| */ |
| public static final String CONFIGURATION_PARAM = "org.eclipse.rap.applicationConfiguration"; |
| |
| /** |
| * This constant contains the context parameter name to configure the web |
| * application's context directory on disk. |
| */ |
| public static final String RESOURCE_ROOT_LOCATION = "resource_root_location"; |
| |
| /** |
| * Implementations must use this method to configure an application. The |
| * method is called by the framework once before the application is started. |
| * |
| * @param application the application to configure |
| */ |
| void configure( Application application ); |
| } |