package aQute.bnd.deployer.repository.providers; import java.io.File; import java.util.Map; import org.osgi.service.indexer.ResourceAnalyzer; import org.osgi.service.indexer.impl.KnownBundleAnalyzer; import aQute.bnd.service.Plugin; import aQute.lib.utf8properties.UTF8Properties; import aQute.service.reporter.Reporter; public class KnownBundleAnalyzerPlugin extends KnownBundleAnalyzer implements ResourceAnalyzer, Plugin { private static final String PROP_DATA = "data"; Reporter reporter; public KnownBundleAnalyzerPlugin() { super(new UTF8Properties()); } public void setProperties(Map<String,String> config) { String fileName = config.get(PROP_DATA); if (fileName == null) throw new IllegalArgumentException( String.format("Property name '%s' must be set on KnownBundleAnalyzerPlugin", PROP_DATA)); File file = new File(fileName); if (!file.isFile()) throw new IllegalArgumentException( String.format("Data file does not exist, or is not a plain file: %s", file)); try { UTF8Properties props = new UTF8Properties(); props.load(file, null); setKnownBundlesExtra(props); } catch (Exception e) { throw new IllegalArgumentException(String.format("Unable to read data file: %s", file), e); } } public void setReporter(Reporter reporter) { this.reporter = reporter; } }