final IPath path= new Path(JarPackagerUtil.getRefactoringsEntry()); addDirectories(path.removeLastSegments(1)); addHistory(fJarPackage, path, new NullProgressMonitor());
final IPath metaPath= new Path(JarPackagerUtil.getMetaEntry()); addDirectories(metaPath); addHistory(fJarPackage, new Path(JarPackagerUtil.getRefactoringsEntry()), new NullProgressMonitor()); if (fJarPackage.isDeprecationAware()) addDeprecations(fJarPackage, projects, new NullProgressMonitor());
	public JarWriter3(JarPackageData jarPackage, Shell parent) throws CoreException {		Assert.isNotNull(jarPackage, "The JAR specification is null"); //$NON-NLS-1$		fJarPackage= jarPackage;		Assert.isTrue(fJarPackage.isValid(), "The JAR package specification is invalid"); //$NON-NLS-1$		if (!canCreateJar(parent))			throw new OperationCanceledException();		try {			if (fJarPackage.usesManifest() && fJarPackage.areGeneratedFilesExported()) {				Manifest manifest= fJarPackage.getManifestProvider().create(fJarPackage);				fJarOutputStream= new JarOutputStream(new FileOutputStream(fJarPackage.getAbsoluteJarLocation().toOSString()), manifest);			} else				fJarOutputStream= new JarOutputStream(new FileOutputStream(fJarPackage.getAbsoluteJarLocation().toOSString()));			String comment= jarPackage.getComment();			if (comment != null)				fJarOutputStream.setComment(comment);			final Object[] projects= fJarPackage.getRefactoringProjects();			if (fJarPackage.isRefactoringAware() && projects != null && projects.length > 0) {				Assert.isTrue(fJarPackage.areDirectoryEntriesIncluded());				final IPath path= new Path(JarPackagerUtil.getRefactoringsEntry());				addDirectories(path.removeLastSegments(1));				addHistory(fJarPackage, path, new NullProgressMonitor());			}		} catch (IOException ex) {			throw JarPackagerUtil.createCoreException(ex.getLocalizedMessage(), ex);		}	}