/** * Returns the minimal set of packages which contain all the selected Java resources. * @return the Set of IPackageFragments which contain all the selected resources */ private Set<IJavaElement> getPackagesForSelectedResources() { Set<IJavaElement> packages= new HashSet<>(); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; if (element instanceof ICompilationUnit) { packages.add(((ICompilationUnit) element).getParent()); } } return packages; } }
/** * Returns the minimal set of packages which contain all the selected Java resources. * @return the Set of IPackageFragments which contain all the selected resources */ private Set getPackagesForSelectedResources(JarPackageData jarPackage) { Set packages= new HashSet(); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; if (element instanceof ICompilationUnit) { packages.add(((ICompilationUnit) element).getParent()); } } return packages; } }
/** * Returns the minimal set of packages which contain all the selected Java resources. * @return the Set of IPackageFragments which contain all the selected resources */ private Set getPackagesForSelectedResources(JarPackageData jarPackage) { Set packages= new HashSet(); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; if (element instanceof ICompilationUnit) { packages.add(((ICompilationUnit) element).getParent()); } } return packages; } }
/** * Returns the minimal set of packages which contain all the selected Java resources. * @return the Set of IPackageFragments which contain all the selected resources */ private Set<IJavaElement> getPackagesForSelectedResources() { Set<IJavaElement> packages= new HashSet<>(); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; if (element instanceof ICompilationUnit) { packages.add(((ICompilationUnit) element).getParent()); } } return packages; } }
private void setManifestRsrcClasspath(Manifest ownManifest, JarPackageData jarPackage) { ArrayList<String> jarNames= new ArrayList<>(); Object[] elements= jarPackage.getElements(); for (int i= 0; i < elements.length; i++) { Object element= elements[i]; if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).isArchive()) { String jarName= ((IPackageFragmentRoot) element).getPath().toFile().getName(); while (jarNames.contains(jarName)) { jarName= FatJarPackagerUtil.nextNumberedFileName(jarName); } jarNames.add(jarName); } } String manifestRsrcClasspath= getManifestRsrcClasspath(jarNames); ownManifest.getMainAttributes().putValue(JIJConstants.REDIRECTED_CLASS_PATH_MANIFEST_NAME, manifestRsrcClasspath); }
private void setManifestRsrcClasspath(Manifest ownManifest, JarPackageData jarPackage) { ArrayList<String> jarNames= new ArrayList<>(); Object[] elements= jarPackage.getElements(); for (int i= 0; i < elements.length; i++) { Object element= elements[i]; if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).isArchive()) { String jarName= ((IPackageFragmentRoot) element).getPath().toFile().getName(); while (jarNames.contains(jarName)) { jarName= FatJarPackagerUtil.nextNumberedFileName(jarName); } jarNames.add(jarName); } } String manifestRsrcClasspath= getManifestRsrcClasspath(jarNames); ownManifest.getMainAttributes().putValue(JIJConstants.REDIRECTED_CLASS_PATH_MANIFEST_NAME, manifestRsrcClasspath); }
/** * Exports the resources as specified by the JAR package. */ protected void exportSelectedElements(IProgressMonitor progressMonitor) throws InterruptedException { fExportedClassContainers= new HashSet(10); Set enclosingJavaProjects= new HashSet(10); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; exportElement(element, progressMonitor); if (fJarPackage.areOutputFoldersExported()) { IJavaProject javaProject= getEnclosingJavaProject(element); if (javaProject != null) enclosingJavaProjects.add(javaProject); } } if (fJarPackage.areOutputFoldersExported()) exportOutputFolders(progressMonitor, enclosingJavaProjects); }
private void xmlWriteSelectedElements(JarPackageData jarPackage, Document document, Element xmlJarDesc) throws DOMException { Element selectedElements= document.createElement("selectedElements"); //$NON-NLS-1$ xmlJarDesc.appendChild(selectedElements); selectedElements.setAttribute("exportClassFiles", "" + jarPackage.areClassFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportOutputFolder", "" + jarPackage.areOutputFoldersExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportJavaFiles", "" + jarPackage.areJavaFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ Object[] elements= jarPackage.getElements(); for (int i= 0; i < elements.length; i++) { Object element= elements[i]; if (element instanceof IResource) add((IResource)element, selectedElements, document); else if (element instanceof IJavaElement) add((IJavaElement)element, selectedElements, document); // Note: Other file types are not handled by this writer } }
/** * Exports the resources as specified by the JAR package. * @param progressMonitor the progress monitor * @throws InterruptedException thrown when cancelled */ private void exportSelectedElements(IProgressMonitor progressMonitor) throws InterruptedException { fExportedClassContainers= new HashSet<>(10); Set<IJavaProject> enclosingJavaProjects= new HashSet<>(10); int n= fJarPackage.getElements().length; for (int i= 0; i < n; i++) { Object element= fJarPackage.getElements()[i]; exportElement(element, progressMonitor); if (fJarPackage.areOutputFoldersExported()) { IJavaProject javaProject= getEnclosingJavaProject(element); if (javaProject != null) enclosingJavaProjects.add(javaProject); } } if (fJarPackage.areOutputFoldersExported()) exportOutputFolders(progressMonitor, enclosingJavaProjects); }
private void xmlWriteSelectedElements(JarPackageData jarPackage, Document document, Element xmlJarDesc) throws DOMException { Element selectedElements= document.createElement("selectedElements"); //$NON-NLS-1$ xmlJarDesc.appendChild(selectedElements); selectedElements.setAttribute("exportClassFiles", "" + jarPackage.areClassFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportOutputFolder", "" + jarPackage.areOutputFoldersExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportJavaFiles", "" + jarPackage.areJavaFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ Object[] elements= jarPackage.getElements(); for (int i= 0; i < elements.length; i++) { Object element= elements[i]; if (element instanceof IResource) add((IResource)element, selectedElements, document); else if (element instanceof IJavaElement) add((IJavaElement)element, selectedElements, document); // Note: Other file types are not handled by this writer } }
private void xmlWriteSelectedElements(JarPackageData jarPackage, Document document, Element xmlJarDesc) throws DOMException { Element selectedElements= document.createElement("selectedElements"); //$NON-NLS-1$ xmlJarDesc.appendChild(selectedElements); selectedElements.setAttribute("exportClassFiles", "" + jarPackage.areClassFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportOutputFolder", "" + jarPackage.areOutputFoldersExported()); //$NON-NLS-2$ //$NON-NLS-1$ selectedElements.setAttribute("exportJavaFiles", "" + jarPackage.areJavaFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$ Object[] elements= jarPackage.getElements(); for (int i= 0; i < elements.length; i++) { Object element= elements[i]; if (element instanceof IResource) add((IResource)element, selectedElements, document); else if (element instanceof IJavaElement) add((IJavaElement)element, selectedElements, document); // Note: Other file types are not handled by this writer } }
/** * Tells whether this JAR package data can be used to generate * a valid JAR. * * @return <code>true</code> if the JAR Package info is valid */ public boolean isValid() { return (areGeneratedFilesExported() || areJavaFilesExported()) && getElements() != null && getElements().length > 0 && getAbsoluteJarLocation() != null && isManifestAccessible() && isMainClassValid(new BusyIndicatorRunnableContext()); }
/** * Tells whether this JAR package data can be used to generate * a valid JAR. * * @return <code>true</code> if the JAR Package info is valid */ public boolean isValid() { return (areGeneratedFilesExported() || areJavaFilesExported()) && getElements() != null && getElements().length > 0 && getAbsoluteJarLocation() != null && isManifestAccessible() && isMainClassValid(new BusyIndicatorRunnableContext()); }
/** * Tells whether this JAR package data can be used to generate * a valid JAR. * * @return <code>true</code> if the JAR Package info is valid */ public boolean isValid() { return (areGeneratedFilesExported() || areJavaFilesExported()) && getElements() != null && getElements().length > 0 && getAbsoluteJarLocation() != null && isManifestAccessible() && isMainClassValid(new BusyIndicatorRunnableContext()); }
/** * Initializes this wizard from the given JAR package description. * * @param workbench * the workbench which launched this wizard * @param jarPackage * the JAR package description used to initialize this wizard */ public void init(IWorkbench workbench, JarPackageData jarPackage) { Assert.isNotNull(workbench); Assert.isNotNull(jarPackage); fJarPackage= jarPackage; setInitializeFromJarPackage(true); fSelection= new StructuredSelection(fJarPackage.getElements()); setWindowTitle(JarPackagerMessages.JarPackageWizard_windowTitle); setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_JAR_PACKAGER); setNeedsProgressMonitor(true); }
/** * Initializes this wizard from the given JAR package description. * * @param workbench * the workbench which launched this wizard * @param jarPackage * the JAR package description used to initialize this wizard */ public void init(IWorkbench workbench, JarPackageData jarPackage) { Assert.isNotNull(workbench); Assert.isNotNull(jarPackage); fJarPackage= jarPackage; setInitializeFromJarPackage(true); fSelection= new StructuredSelection(fJarPackage.getElements()); setWindowTitle(JarPackagerMessages.JarPackageWizard_windowTitle); setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_JAR_PACKAGER); setNeedsProgressMonitor(true); }
/** * Initializes this wizard from the given JAR package description. * * @param workbench * the workbench which launched this wizard * @param jarPackage * the JAR package description used to initialize this wizard */ public void init(IWorkbench workbench, JarPackageData jarPackage) { Assert.isNotNull(workbench); Assert.isNotNull(jarPackage); fJarPackage= jarPackage; setInitializeFromJarPackage(true); fSelection= new StructuredSelection(fJarPackage.getElements()); setWindowTitle(JarPackagerMessages.JarPackageWizard_windowTitle); setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_JAR_PACKAGER); setNeedsProgressMonitor(true); }
private void buildProjects(IProgressMonitor progressMonitor) { Set<IProject> builtProjects= new HashSet<>(10); Object[] elements= fJarPackage.getElements(); for (int i= 0; i < elements.length; i++) { IProject project= null; Object element= elements[i]; if (element instanceof IResource) project= ((IResource)element).getProject(); else if (element instanceof IJavaElement) project= ((IJavaElement)element).getJavaProject().getProject(); if (project != null && !builtProjects.contains(project)) { try { project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, progressMonitor); } catch (CoreException ex) { String message= Messages.format(JarPackagerMessages.JarFileExportOperation_errorDuringProjectBuild, BasicElementLabels.getResourceName(project)); addError(message, ex); } finally { // don't try to build same project a second time even if it failed builtProjects.add(project); } } } }
private IType findMainMethodByName(String name) { if (fMainTypes == null) { List<IResource> resources= JarPackagerUtil.asResources(fJarPackage.getElements()); if (resources == null) { setErrorMessage(JarPackagerMessages.JarManifestWizardPage_error_noResourceSelected); return null; } IJavaSearchScope searchScope= JavaSearchScopeFactory.getInstance().createJavaSearchScope(resources.toArray(new IResource[resources.size()]), true); MainMethodSearchEngine engine= new MainMethodSearchEngine(); try { fMainTypes= engine.searchMainMethods(getContainer(), searchScope, 0); } catch (InvocationTargetException ex) { // null } catch (InterruptedException e) { // null } } for (int i= 0; i < fMainTypes.length; i++) { if (fMainTypes[i].getFullyQualifiedName().equals(name)) return fMainTypes[i]; } return null; }
protected void handleMainClassBrowseButtonPressed() { List<IResource> resources= JarPackagerUtil.asResources(fJarPackage.getElements()); if (resources == null) { setErrorMessage(JarPackagerMessages.JarManifestWizardPage_error_noResourceSelected); return; } IJavaSearchScope searchScope= JavaSearchScopeFactory.getInstance().createJavaSearchScope(resources.toArray(new IResource[resources.size()]), true); SelectionDialog dialog= JavaUI.createMainTypeDialog(getContainer().getShell(), getContainer(), searchScope, 0, false, ""); //$NON-NLS-1$ dialog.setTitle(JarPackagerMessages.JarManifestWizardPage_mainTypeSelectionDialog_title); dialog.setMessage(JarPackagerMessages.JarManifestWizardPage_mainTypeSelectionDialog_message); if (fJarPackage.getManifestMainClass() != null) dialog.setInitialSelections(new Object[] {fJarPackage.getManifestMainClass()}); if (dialog.open() == Window.OK) { fJarPackage.setManifestMainClass((IType)dialog.getResult()[0]); fMainClassText.setText(JarPackagerUtil.getMainClassName(fJarPackage)); } else if (!fJarPackage.isMainClassValid(getContainer())) { // user did not cancel: no types were found fJarPackage.setManifestMainClass(null); fMainClassText.setText(JarPackagerUtil.getMainClassName(fJarPackage)); } }