blob: 2291eb6ef53ca6f519869bd141437ee39b86b840 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 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.internal.provisional.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 referring
* 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 dependent 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();
}