List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;
From source file:org.eclipse.pde.internal.launching.launcher.LaunchArgumentsHelper.java
License:Open Source License
private static String getStartupJarPath() throws CoreException { IPluginModelBase model = PluginRegistry.findModel("org.eclipse.platform"); //$NON-NLS-1$ if (model != null && model.getUnderlyingResource() != null) { IProject project = model.getUnderlyingResource().getProject(); if (project.hasNature(JavaCore.NATURE_ID)) { IJavaProject jProject = JavaCore.create(project); IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE && roots[i].getPackageFragment("org.eclipse.core.launcher").exists()) { //$NON-NLS-1$ IPath path = jProject.getOutputLocation().removeFirstSegments(1); return project.getLocation().append(path).toOSString(); }//from w w w.jav a 2 s . com } } if (project.getFile("startup.jar").exists()) //$NON-NLS-1$ return project.getFile("startup.jar").getLocation().toOSString(); //$NON-NLS-1$ } File startupJar = new Path(TargetPlatform.getLocation()).append("startup.jar").toFile(); //$NON-NLS-1$ // if something goes wrong with the preferences, fall back on the startup.jar // in the running eclipse. if (!startupJar.exists()) startupJar = new Path(TargetPlatform.getDefaultLocation()).append("startup.jar").toFile(); //$NON-NLS-1$ return startupJar.exists() ? startupJar.getAbsolutePath() : null; }
From source file:org.eclipse.pde.internal.ui.editor.build.RuntimeInfoSection.java
License:Open Source License
private IPackageFragmentRoot[] computeSourceFolders() { ArrayList<IPackageFragmentRoot> folders = new ArrayList<IPackageFragmentRoot>(); IBuildModel buildModel = getBuildModel(); IProject project = buildModel.getUnderlyingResource().getProject(); try {//from w w w. java 2 s .c om if (project.hasNature(JavaCore.NATURE_ID)) { IJavaProject jProject = JavaCore.create(project); IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) folders.add(roots[i]); } } catch (JavaModelException e) { PDEPlugin.logException(e); } catch (CoreException e) { PDEPlugin.logException(e); } return folders.toArray(new IPackageFragmentRoot[folders.size()]); }
From source file:org.eclipse.pde.internal.ui.editor.plugin.ImportPackageSection.java
License:Open Source License
private void setElements(ConditionalListSelectionDialog dialog) { Set<String> forbidden = getForbiddenIds(); boolean allowJava = "true".equals(getBundle().getHeader(ICoreConstants.ECLIPSE_JREBUNDLE)); //$NON-NLS-1$ ArrayList<ImportItemWrapper> elements = new ArrayList<ImportItemWrapper>(); ArrayList<ImportItemWrapper> conditional = new ArrayList<ImportItemWrapper>(); IPluginModelBase[] models = PluginRegistry.getActiveModels(); Set<NameVersionDescriptor> nameVersions = new HashSet<NameVersionDescriptor>(); // Set of NameVersionDescriptors, used to remove duplicate entries for (int i = 0; i < models.length; i++) { BundleDescription desc = models[i].getBundleDescription(); // If the current model is a fragment, it can export packages only if its parent has hasExtensibleAPI set if (isFragmentThatCannotExportPackages(models[i])) continue; String id = desc == null ? null : desc.getSymbolicName(); if (id == null || forbidden.contains(id)) continue; ExportPackageDescription[] exported = desc.getExportPackages(); for (int j = 0; j < exported.length; j++) { String name = exported[j].getName(); NameVersionDescriptor nameVersion = new NameVersionDescriptor(exported[j].getName(), exported[j].getVersion().toString(), NameVersionDescriptor.TYPE_PACKAGE); if (("java".equals(name) || name.startsWith("java.")) && !allowJava) //$NON-NLS-1$ //$NON-NLS-2$ continue; if (nameVersions.add(nameVersion) && (fHeader == null || !fHeader.hasPackage(name))) elements.add(new ImportItemWrapper(exported[j])); }// ww w.j a v a 2 s . c o m IPluginModelBase model = (IPluginModelBase) getPage().getPDEEditor().getAggregateModel(); if (model instanceof IBundlePluginModelBase) { IBundleModel bmodel = ((IBundlePluginModelBase) model).getBundleModel(); if (bmodel != null) { ExportPackageHeader header = (ExportPackageHeader) bmodel.getBundle() .getManifestHeader(Constants.EXPORT_PACKAGE); if (header != null) { ExportPackageObject[] pkgs = header.getPackages(); for (int j = 0; j < pkgs.length; j++) { String name = pkgs[j].getName(); String version = pkgs[j].getVersion(); NameVersionDescriptor nameVersion = new NameVersionDescriptor(name, version, NameVersionDescriptor.TYPE_PACKAGE); if (nameVersions.add(nameVersion) && (fHeader == null || !fHeader.hasPackage(name))) elements.add(new ImportItemWrapper(pkgs[j])); } } } } } for (int i = 0; i < models.length; i++) { try { // add un-exported packages in workspace non-binary plug-ins IResource resource = models[i].getUnderlyingResource(); IProject project = resource != null ? resource.getProject() : null; if (project == null || !project.hasNature(JavaCore.NATURE_ID) || WorkspaceModelManager.isBinaryProject(project) || !PDEProject.getManifest(project).exists()) continue; // If the current model is a fragment, it can export packages only if its parent has hasExtensibleAPI set if (isFragmentThatCannotExportPackages(models[i])) continue; IJavaProject jp = JavaCore.create(project); IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots(); for (int j = 0; j < roots.length; j++) { if (roots[j].getKind() == IPackageFragmentRoot.K_SOURCE || (roots[j].getKind() == IPackageFragmentRoot.K_BINARY && !roots[j].isExternal())) { IJavaElement[] children = roots[j].getChildren(); for (int k = 0; k < children.length; k++) { IPackageFragment f = (IPackageFragment) children[k]; String name = f.getElementName(); NameVersionDescriptor nameVersion = new NameVersionDescriptor(name, null, NameVersionDescriptor.TYPE_PACKAGE); if (name.equals("")) //$NON-NLS-1$ name = "."; //$NON-NLS-1$ if (nameVersions.add(nameVersion) && (f.hasChildren() || f.getNonJavaResources().length > 0)) conditional.add(new ImportItemWrapper(f)); } } } } catch (CoreException e) { } } dialog.setElements(elements.toArray()); dialog.setConditionalElements(conditional.toArray()); }
From source file:org.eclipse.pde.launching.PDESourcePathProvider.java
License:Open Source License
/** * Adds runtime classpath entries for binary package fragment roots contained within * the project// w ww . ja va2 s.c o m * * @param jProject * the Java project whose roots are to be enumerated * @param all * a list of accumulated runtime classpath entries * @throws CoreException * if unable to evaluate the package fragment roots */ private void addBinaryPackageFragmentRoots(IJavaProject jProject, List<IRuntimeClasspathEntry> all) throws CoreException { IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); for (int j = 0; j < roots.length; j++) { if (roots[j].getKind() == IPackageFragmentRoot.K_BINARY && !PDEJavaHelper.isJRELibrary(roots[j])) { IRuntimeClasspathEntry rte = JavaRuntime.newArchiveRuntimeClasspathEntry(roots[j].getPath()); IPath path = roots[j].getSourceAttachmentPath(); if (path != null) { rte.setSourceAttachmentPath(path); rte.setSourceAttachmentRootPath(roots[j].getSourceAttachmentRootPath()); } if (!all.contains(rte)) all.add(rte); } } }
From source file:org.eclipse.pde.ui.tests.imports.BaseImportTestCase.java
License:Open Source License
protected boolean checkSourceAttached(IJavaProject jProject) throws CoreException { IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IClasspathEntry entry = roots[i].getRawClasspathEntry(); if (entry.getEntryKind() != IClasspathEntry.CPE_LIBRARY || entry.getEntryKind() != IClasspathEntry.CPE_CONTAINER || !entry.getPath().equals(PDECore.REQUIRED_PLUGINS_CONTAINER_PATH)) continue; if (roots[i].getSourceAttachmentPath() == null) return false; }/* w w w .j a v a 2s.com*/ return true; }
From source file:org.eclipse.recommenders.jdt.JavaElementsFinder.java
License:Open Source License
public static ImmutableList<IPackageFragmentRoot> findSourceRoots(IJavaProject project) { Builder<IPackageFragmentRoot> b = ImmutableList.builder(); try {//from ww w . j ava2 s .co m for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { if (K_SOURCE == root.getKind()) { b.add(root); } } } catch (Exception e) { log(ERROR_CANNOT_FETCH_PACKAGE_FRAGMENT_ROOTS, e, project); } return b.build(); }
From source file:org.eclipse.recommenders.jdt.JavaElementsFinder.java
License:Open Source License
public static ImmutableList<IPackageFragmentRoot> findPackageRootsWithSources(IJavaProject project) { Builder<IPackageFragmentRoot> b = ImmutableList.builder(); try {/* w w w .j a v a2 s . c o m*/ for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { if (K_SOURCE == root.getKind()) { b.add(root); } else if (K_BINARY == root.getKind()) { if (hasSourceAttachment(root)) { b.add(root); } } } } catch (Exception e) { log(ERROR_CANNOT_FETCH_PACKAGE_FRAGMENT_ROOTS, e, project); } return b.build(); }
From source file:org.eclipse.recommenders.jdt.JavaElementsFinder.java
License:Open Source License
public static ImmutableList<IPackageFragmentRoot> findPackageFragmentRoots(IJavaProject project) { Builder<IPackageFragmentRoot> b = ImmutableList.builder(); try {// ww w. j a v a 2 s .com for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { b.add(root); } } catch (JavaModelException e) { log(ERROR_CANNOT_FETCH_PACKAGE_FRAGMENT_ROOTS, e, project); } return b.build(); }
From source file:org.eclipse.sapphire.java.jdt.ui.internal.JavaTypeCreateActionHandler.java
License:Open Source License
private final IPackageFragmentRoot src(final IJavaProject project) throws JavaModelException { for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { return root; }//w w w . j av a 2 s . co m } return null; }
From source file:org.eclipse.viatra.query.patternlanguage.emf.ui.util.JavaProjectExpectedPackageNameProvider.java
License:Open Source License
/** * Based on org.eclipse.xtend.ide.validator.XtendUIValidator.java *///from w ww .ja v a2 s . c om @Override public String getExpectedPackageName(PatternModel model) { URI fileURI = model.eResource().getURI(); for (Pair<IStorage, IProject> storage : storage2UriMapper.getStorages(fileURI)) { if (storage.getFirst() instanceof IFile) { IPath fileWorkspacePath = storage.getFirst().getFullPath(); IJavaProject javaProject = JavaCore.create(storage.getSecond()); if (javaProject != null && javaProject.exists() && javaProject.isOpen()) { try { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (!root.isArchive() && !root.isExternal()) { IResource resource = root.getResource(); if (resource != null) { IPath sourceFolderPath = resource.getFullPath(); if (sourceFolderPath.isPrefixOf(fileWorkspacePath)) { IPath classpathRelativePath = fileWorkspacePath .makeRelativeTo(sourceFolderPath); return classpathRelativePath.removeLastSegments(1).toString().replace("/", "."); } } } } } catch (JavaModelException e) { logger.error("Error resolving package declaration for Pattern Model", e); } } } } return null; }