outputFolder= new Path(output);
outputFolder= fProject.getFullPath().append(new Path(output));
	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {		if (monitor == null) {			monitor= new NullProgressMonitor();		}				IConfigurationElement desc;		IConfigurationElement[] children = fConfigElement.getChildren("projectsetup");		if (children.length == 1) {			desc= children[0];		} else {			throw new InvocationTargetException(new Exception("descriptor must contain exactly on projectsetup tag"));		}		IPath outputFolder;		String output= desc.getAttribute("output");		if (output == null || output.length() == 0) {			outputFolder= fProject.getFullPath();		} else {			outputFolder= new Path(output);		}		String jre= desc.getAttribute("jre");		boolean addJRE= "true".equals(jre);				ArrayList classPathEntries= new ArrayList();		ArrayList importPaths= new ArrayList();				children = desc.getChildren("src");		for (int i= 0; i < children.length; i++) {			IConfigurationElement curr= children[i];			IPath path;			String name= curr.getAttribute("path");			if (name == null || name.length() == 0) {				path= fProject.getFullPath();			} else {				path= fProject.getFolder(name).getFullPath();			}			classPathEntries.add(JavaCore.newSourceEntry(path));			String importPath= curr.getAttribute("import");			if (importPath == null) {				importPath= "";				ExampleProjectsPlugin.log("projectsetup descriptor: path missing");			}			importPaths.add(importPath);		}				fJavaProjectPage.setDefaultOutputFolder(outputFolder);		IClasspathEntry[] entries= new IClasspathEntry[classPathEntries.size()];		classPathEntries.toArray(entries);		fJavaProjectPage.setDefaultClassPath(entries, addJRE);						monitor.beginTask(ExampleProjectsPlugin.getResourceString(OP_DESC), 3 + entries.length);				try {				// create the project			fJavaProjectPage.getRunnable().run(new SubProgressMonitor(monitor, 3));						// import			for (int i= 0; i < entries.length; i++) {				IPath destPath= entries[i].getPath();				String importPath= (String)importPaths.get(i);				if (importPath.length() > 0) {					ZipFile zipFile= new ZipFile(getFileFromPluginDir(importPath));					importFilesFromZip(zipFile, destPath, new SubProgressMonitor(monitor, 1));				}			}					fResourceToReveal= fProject;			String reveal= desc.getAttribute("open");			if (reveal != null && reveal.length() > 0) {				IJavaElement elem= fJavaProjectPage.getNewJavaProject().findElement(new Path(reveal));				if (elem != null) {					fResourceToReveal= elem.getUnderlyingResource();				}			}		} catch (IOException e) {			throw new InvocationTargetException(e);		} catch (JavaModelException e) {			throw new InvocationTargetException(e);					} finally {			monitor.done();		}	}		