it.uniroma2.art.coda.standalone.impl.CODAOSGiManger Maven / Gradle / Ivy
package it.uniroma2.art.coda.standalone.impl;
import it.uniroma2.art.coda.exception.FelixInitializationException;
import it.uniroma2.art.coda.standalone.CODAStandaloneFactory;
import java.io.File;
import java.util.Properties;
import org.apache.felix.framework.Felix;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Andrea Turbati
*/
public class CODAOSGiManger extends ARTOSGiManager {
private static CODAOSGiManger manager = null;
protected static Logger logger = LoggerFactory
.getLogger(CODAOSGiManger.class);
private static String globalFilePropertyName = "osgi.properties";
//private static String propertyName = "art.coda.osgi.packages";
protected CODAOSGiManger(File felixDir, Properties userConfigProp) throws FelixInitializationException {
super(felixDir, globalFilePropertyName, CODAStandaloneFactory.CODA_EXPORT_PACKAGES_PROPERTY_NAME,
userConfigProp);
}
/**
* Method to inialize the OSGi framwork using felix implementation
*
* @param oSGiDir
* the directory where the bundle will be stored
* @param userConfigProp
* @return the CODAOSGiManger
* @throws FelixInitializationException
*/
public static CODAOSGiManger initialize(File oSGiDir, Properties userConfigProp)
throws FelixInitializationException {
manager = new CODAOSGiManger(oSGiDir, userConfigProp);
return manager;
}
/**
* Get the CODAOSGiManger
*
* @return the CODAOSGiManger
*/
public static CODAOSGiManger getManager() {
return manager;
}
/**
* Stop Felix
*/
public void stop() {
stopFelix();
}
/**
* Finds and installs all bundles below rootDir
The parameter
* layout
specifies where to look for bundles (directly in the
* rootDir
, or within sub-directories, ...)
*
* @param bundlesRootDir
* the directory to start the search of bundles from
*/
public void loadComponents(File bundlesRootDir) {
// A flat directory
bundleToBeStarted.clear();
findAndInstallPlugin(bundlesRootDir);
startAllBundle();
}
public Felix getFramework() {
return m_felix;
}
}