package org.eclipselabs.spray.xtext.ui.wizard;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.xtext.ui.util.PluginProjectFactory;
public class SprayPluginProjectFactory extends PluginProjectFactory {
/**
* Changes:
* - add .qualifier to version
*/
@Override
protected void createManifest(IProject project, IProgressMonitor progressMonitor) throws CoreException {
final StringBuilder content = new StringBuilder("Manifest-Version: 1.0\n");
content.append("Bundle-ManifestVersion: 2\n");
content.append("Bundle-Name: " + projectName + "\n");
content.append("Bundle-Vendor: My Company\n");
content.append("Bundle-Version: 1.0.0.qualifier\n");
content.append("Bundle-SymbolicName: " + projectName + "; singleton:=true\n");
if (null != activatorClassName) {
content.append("Bundle-Activator: " + activatorClassName + "\n");
}
content.append("Bundle-ActivationPolicy: lazy\n");
addToContent(content, requiredBundles, "Require-Bundle");
addToContent(content, exportedPackages, "Export-Package");
addToContent(content, importedPackages, "Import-Package");
content.append("Bundle-RequiredExecutionEnvironment: J2SE-1.5\n");
final IFolder metaInf = project.getFolder("META-INF");
SubMonitor subMonitor = SubMonitor.convert(progressMonitor, 2);
try {
if (metaInf.exists())
metaInf.delete(false, progressMonitor);
metaInf.create(false, true, subMonitor.newChild(1));
createFile("MANIFEST.MF", metaInf, content.toString(), subMonitor.newChild(1));
} finally {
subMonitor.done();
}
}
}