blob: 798c23942fc18e1d9663e3de19915444c5e0ba74 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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
*
* Contributors: IBM Corporation - initial API and implementation
******************************************************************************/
package org.eclipse.equinox.configurator;
import java.io.IOException;
import java.net.URL;
/**
* The implementation of this interface will be registered into a service registry
* by a Configurator Bundle.
*
* The client bundle can apply configuration which can be interpreted by refering
* the specified location to the current running OSGi environment. In addition,
* the client can expect bundle state in advance .
*
* TODO: this interface might not be required to be defined.
*
*
* **********************************************
* Current Definition of Configurator Bundle:
*
* Configurator Bundle will do the following operation at its startup.
*
* 1. Create a Configurator object.
* 2. Register it as a service to the service registry.
* 3. Get where to read for knowing what kinds of bundles in its implementation dependend way.
* 4. Call {@link Configurator#applyConfiguration(URL)} with the URL.
*
* At its stopping, the service registered will be unregistered.
*
* @see ConfiguratorManipulator
*
*/
public interface Configurator {
/**
* Apply configuration read from the specified url to the OSGi
* environment currently running.
*
* @param url URL to be read.
* @throws IOException - If reading information from the specified url fails.
*/
void applyConfiguration(URL url) throws IOException;
/**
* Apply configuration read from the previously used url to the OSGi
* environment currently running. If it is never used, do nothing.
*
* @throws IOException - If reading information from the specified url fails.
*/
void applyConfiguration() throws IOException;
/**
* Return the url in use.
* If it is never used, return null.
*
* @return
*/
URL getUrlInUse();
}