framework.start();
// Look for indexer and run index generation
ServiceTracker tracker = new ServiceTracker(framework.getBundleContext(), ResourceIndexer.class.getName(), null);
tracker.open();
ResourceIndexer index = (ResourceIndexer) tracker.waitForService(1000);
if (index == null)
throw new IllegalStateException("Timed out waiting for ResourceIndexer service.");
// Flatten the file sets into a single list
Set<File> fileList = new LinkedHashSet<File>();
for (FileSet fileSet : fileSets) {
DirectoryScanner ds = fileSet.getDirectoryScanner(getProject());
File basedir = ds.getBasedir();
String[] files = ds.getIncludedFiles();
for (int i = 0; i < files.length; i++)
fileList.add(new File(basedir, files[i]));
}
// Run
fos = new FileOutputStream(repositoryFile);
index.index(fileList, fos, config);
} catch (Exception e) {
throw new BuildException(e);
} finally {
if (fos != null) {
try {