in plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/project/impl/FeaturesRepositoriesBuildUnit.java [50:96]
public void build(final int kind, @SuppressWarnings("rawtypes") final Map args, 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) {
throw new CoreException(new Status(IStatus.ERROR, KarafUIPluginActivator.PLUGIN_ID, "Unable to build Features Repository", e));
} catch (final InterruptedException e) {
Thread.interrupted();
throw new CoreException(new Status(IStatus.ERROR, KarafUIPluginActivator.PLUGIN_ID, "Unable to build Features Repository", e));
}
}