in plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/KarafProjectBuilder.java [239:284]
private void buildFeaturesRepositories(final IProgressMonitor monitor) throws CoreException {
final IKarafProject karafProject = getKarafProject();
final KarafPlatformModel karafPlatformModel = getKarafPlatformModel();
monitor.subTask("Resolving Features Repository for Apache Karaf Project: " + karafProject.getName());
final FeaturesSection featuresSection = (FeaturesSection) karafPlatformModel.getAdapter(FeaturesSection.class);
final FeaturesResolverJob job = new FeaturesResolverJob(karafProject.getName(), karafPlatformModel, featuresSection);
job.schedule();
try {
job.join();
final List<FeaturesRepository> featuresRepositories = job.getFeaturesRepositories();
final IFolder folder = getKarafProject().getFolder("features");
if (!folder.exists()) {
folder.create(true, true, monitor);
}
for (final FeaturesRepository repo : featuresRepositories) {
final IPath featuresRepositoryFilename = new Path(repo.getName()).addFileExtension("xml");
final IFile featuresRepositoryFile = folder.getFile(featuresRepositoryFilename.toOSString());
final File file = new File(featuresRepositoryFile.getRawLocation().toOSString());
FileOutputStream fout = null;
try {
fout = new FileOutputStream(file);
repo.write(fout);
} finally {
if (fout != null) {
try {
fout.close();
} catch (final IOException e) {
// This space left blank
}
}
}
}
monitor.worked(1);
} catch (final IOException e) {
e.printStackTrace();
} catch (final InterruptedException e) {
e.printStackTrace();
}
}