package bndtools.wizards.bndfile; import java.io.File; import java.lang.reflect.InvocationTargetException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.operation.IRunnableWithProgress; import aQute.bnd.build.Project; import aQute.bnd.build.ProjectLauncher; import aQute.bnd.osgi.Jar; import aQute.lib.io.IO; class GenerateLauncherJarRunnable implements IRunnableWithProgress { private final Project project; private final String path; private final boolean folder; GenerateLauncherJarRunnable(Project project, String path, boolean folder) { this.project = project; this.path = path; this.folder = folder; } @Override public void run(IProgressMonitor monitor) throws InvocationTargetException { try { ProjectLauncher launcher = project.getProjectLauncher(); Jar jar = launcher.executable(); project.getInfo(launcher); if (folder) { File folder = new File(path); jar.writeFolder(folder); File start = IO.getFile(folder, "start"); if (start.isFile()) start.setExecutable(true); } else jar.write(path); } catch (Exception e) { throw new InvocationTargetException(e); } } }