List of usage examples for org.eclipse.jdt.core IJavaProject getElementName
String getElementName();
From source file:org.eclipse.mylyn.internal.java.ui.junit.InteractionContextTestUtil.java
License:Open Source License
public static void setupTestConfiguration(Set<IType> contextTestCases, ILaunchConfiguration configuration, IProgressMonitor pm) throws CoreException { String testKindId = TestKindRegistry.JUNIT3_TEST_KIND_ID; IJavaProject javaProject = null; for (IType type : contextTestCases) { IProjectNature nature = type.getJavaProject().getProject().getNature("org.eclipse.pde.PluginNature"); //$NON-NLS-1$ if (nature != null) { // HACK: might want another project javaProject = type.getJavaProject(); }//from w w w .j a v a 2 s . c o m } ILaunchConfigurationWorkingCopy workingCopy = configuration.getWorkingCopy(); if (javaProject != null) { workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, javaProject.getElementName()); } // HACK: only checks first type if (contextTestCases.size() > 0) { testKindId = TestKindRegistry.getContainerTestKindId(contextTestCases.iterator().next()); workingCopy.setAttribute(JUnitLaunchConfigurationConstants.ATTR_TEST_RUNNER_KIND, testKindId); // testKind = TestKindRegistry.getDefault().getKind(configuration);// contextTestCases.iterator().next()); } workingCopy.doSave(); }
From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java
License:Open Source License
/** * Cleans the API description for the given project. * //from w w w . j a v a 2s . c o m * @param project * @param delete whether to delete the file on disk * @param remove whether to remove the cached API description */ public synchronized void clean(IJavaProject project, boolean delete, boolean remove) { ProjectApiDescription desc = null; if (remove) { desc = (ProjectApiDescription) fDescriptions.remove(project); } else { desc = (ProjectApiDescription) fDescriptions.get(project); } if (desc != null) { desc.clean(); } if (delete) { File file = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName()) .append(IApiCoreConstants.API_DESCRIPTION_XML_NAME).toFile(); if (file.exists()) { file.delete(); } file = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName()).toFile(); if (file.exists() && file.isDirectory()) { file.delete(); } } }
From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java
License:Open Source License
@Override public synchronized void saving(ISaveContext context) throws CoreException { if (context.getKind() == ISaveContext.PROJECT_SAVE && !Util.isJavaProject(context.getProject())) { return;//from ww w .java2s . c om } Iterator<Entry<IJavaProject, IApiDescription>> entries = fDescriptions.entrySet().iterator(); while (entries.hasNext()) { Entry<IJavaProject, IApiDescription> entry = entries.next(); IJavaProject project = entry.getKey(); ProjectApiDescription desc = (ProjectApiDescription) entry.getValue(); if (desc.isModified()) { File dir = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName()).toFile(); dir.mkdirs(); String xml = desc.getXML(); try { Util.saveFile(new File(dir, IApiCoreConstants.API_DESCRIPTION_XML_NAME), xml); desc.setModified(false); } catch (IOException e) { abort(MessageFormat.format(ScannerMessages.ApiDescriptionManager_0, new Object[] { project.getElementName() }), e); } } } }
From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java
License:Open Source License
/** * Restores the API description from its saved file, if any and returns true * if successful.// w w w . java 2 s . com * * @param project * @param description * @return whether the restore succeeded * @throws CoreException */ private boolean restoreDescription(IJavaProject project, ProjectApiDescription description) throws CoreException { File file = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName()) .append(IApiCoreConstants.API_DESCRIPTION_XML_NAME).toFile(); if (file.exists()) { BufferedInputStream stream = null; try { stream = new BufferedInputStream(new FileInputStream(file)); String xml = new String(Util.getInputStreamAsCharArray(stream, -1, IApiCoreConstants.UTF_8)); Element root = Util.parseDocument(xml); if (!root.getNodeName().equals(IApiXmlConstants.ELEMENT_COMPONENT)) { abort(ScannerMessages.ComponentXMLScanner_0, null); } long timestamp = getLong(root, IApiXmlConstants.ATTR_MODIFICATION_STAMP); String version = root.getAttribute(IApiXmlConstants.ATTR_VERSION); description.setEmbeddedVersion(version); if (IApiXmlConstants.API_DESCRIPTION_CURRENT_VERSION.equals(version)) { description.fPackageTimeStamp = timestamp; description.fManifestFile = project.getProject().getFile(JarFile.MANIFEST_NAME); restoreChildren(description, root, null, description.fPackageMap); return true; } } catch (IOException e) { abort(MessageFormat.format(ScannerMessages.ApiDescriptionManager_1, new Object[] { project.getElementName() }), e); } finally { if (stream != null) { try { stream.close(); } catch (IOException e) { // ignore } } } } return false; }
From source file:org.eclipse.pde.api.tools.internal.ProjectApiDescription.java
License:Open Source License
/** * Constructs a new API description for the given project API component. * /*from w ww. j a v a 2s . com*/ * @param component */ public ProjectApiDescription(IJavaProject project) { super(project.getElementName()); fProject = project; }
From source file:org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.java
License:Open Source License
/** * Processes the java element deltas of interest * //from w w w . jav a 2 s . c o m * @param deltas */ void processJavaElementDeltas(IJavaElementDelta[] deltas, IJavaProject project) { for (int i = 0; i < deltas.length; i++) { IJavaElementDelta delta = deltas[i]; switch (delta.getElement().getElementType()) { case IJavaElement.JAVA_PROJECT: { IJavaProject proj = (IJavaProject) delta.getElement(); int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing CHANGED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_OPENED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing OPEN project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); } else if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0 || (flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CLASSPATH CHANGE project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); dmanager.projectClasspathChanged(proj); try { BuildState.setLastBuiltState(proj.getProject(), null); } catch (CoreException e) { } dmanager.flushElementCache(delta.getElement()); } else if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CHILDREN delta of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), proj); } else if ((flags & IJavaElementDelta.F_CONTENT) != 0) { if (proj != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing child CONTENT of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } IResourceDelta[] resourcedeltas = delta.getResourceDeltas(); if (resourcedeltas != null) { IResourceDelta rdelta = null; for (int j = 0; j < resourcedeltas.length; j++) { rdelta = resourcedeltas[j].findMember(new Path(Util.MANIFEST_NAME)); if (rdelta != null && rdelta.getKind() == IResourceDelta.CHANGED && (rdelta.getFlags() & IResourceDelta.CONTENT) > 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing manifest delta"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); break; } } } } else { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> ignoring child CONTENT project context is null"); //$NON-NLS-1$ } } } break; } case IJavaElementDelta.ADDED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing ADDED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_MOVED_FROM) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing PROJECT RENAME from: [" //$NON-NLS-1$ + delta.getMovedFromElement().getJavaProject().getElementName() + "] to: [" //$NON-NLS-1$ + proj.getElementName() + "]"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); } break; } default: break; } break; } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot root = (IPackageFragmentRoot) delta.getElement(); int flags = delta.getFlags(); if ((flags & (IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED | IJavaElementDelta.F_ADDED_TO_CLASSPATH | IJavaElementDelta.F_REMOVED_FROM_CLASSPATH)) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CLASSPATH CHANGED for package fragment root: [" //$NON-NLS-1$ + root.getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectClasspathChanged(project); } if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "processed CHILDREN for package fragment root: [" + root.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.PACKAGE_FRAGMENT: { IPackageFragment fragment = (IPackageFragment) delta.getElement(); if (delta.getKind() == IJavaElementDelta.REMOVED) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed REMOVED delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } ((ApiBaseline) bmanager.getWorkspaceBaseline()).clearPackage(fragment.getElementName()); } int flags = delta.getFlags(); if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CHILDREN delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.COMPILATION_UNIT: { int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_FINE_GRAINED | IJavaElementDelta.F_PRIMARY_RESOURCE)) != 0) { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out .println("processed CONTENT / FINE_GRAINED / PRIMARY_RESOURCE delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } } break; } case IJavaElementDelta.ADDED: case IJavaElementDelta.REMOVED: { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { if (delta.getKind() == IJavaElementDelta.ADDED) { System.out.println( "processed ADDED delta for: [" + delta.getElement().getElementName() + "]"); //$NON-NLS-1$//$NON-NLS-2$ } else { System.out.println("processed REMOVED delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } break; } default: break; } break; } default: break; } } }
From source file:org.eclipse.pde.api.tools.tests.AbstractApiTest.java
License:Open Source License
/** * Returns the {@link IApiComponent} for the given project name or * <code>null</code> if it does not exist * /*from ww w .j av a 2 s. c om*/ * @param projectname the name of the project * @return the {@link IApiComponent} for the given project name or * <code>null</code> */ protected IApiComponent getProjectApiComponent(String projectname) { IJavaProject project = getTestingJavaProject(projectname); assertNotNull("the project " + projectname + " must exist", project); //$NON-NLS-1$ //$NON-NLS-2$ IApiBaseline profile = ApiPlugin.getDefault().getApiBaselineManager().getWorkspaceBaseline(); assertNotNull("the workspace profile must exist", profile); //$NON-NLS-1$ return profile.getApiComponent(project.getElementName()); }
From source file:org.eclipse.pde.api.tools.ui.internal.wizards.CompareOperation.java
License:Open Source License
/** * @param structuredSelection// w ww. j a va 2 s.c o m * @param monitor * @return the scope */ public static ApiScope walkStructureSelection(IStructuredSelection structuredSelection, IProgressMonitor monitor) { Object[] selected = structuredSelection.toArray(); ApiScope scope = new ApiScope(); IApiBaseline workspaceBaseline = ApiBaselineManager.getManager().getWorkspaceBaseline(); if (workspaceBaseline == null) { return scope; } Arrays.sort(selected, new Comparator<Object>() { @Override public int compare(Object o1, Object o2) { if (o1 instanceof IJavaElement && o2 instanceof IJavaElement) { IJavaElement element = (IJavaElement) o1; IJavaElement element2 = (IJavaElement) o2; return element.getElementType() - element2.getElementType(); } return 0; } }); int length = selected.length; for (int i = 0; i < length; i++) { Object currentSelection = selected[i]; if (currentSelection instanceof IJavaElement) { IJavaElement element = (IJavaElement) currentSelection; IJavaProject javaProject = element.getJavaProject(); try { switch (element.getElementType()) { case IJavaElement.COMPILATION_UNIT: { ICompilationUnit compilationUnit = (ICompilationUnit) element; IApiComponent apiComponent = workspaceBaseline .getApiComponent(javaProject.getElementName()); if (apiComponent != null) { addElementFor(compilationUnit, apiComponent, scope); } break; } case IJavaElement.PACKAGE_FRAGMENT: { IPackageFragment fragment = (IPackageFragment) element; IApiComponent apiComponent = workspaceBaseline .getApiComponent(javaProject.getElementName()); IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) fragment .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); boolean isArchive = false; if (packageFragmentRoot != null) { isArchive = packageFragmentRoot.isArchive(); } if (apiComponent != null) { addElementFor(fragment, isArchive, apiComponent, scope); } break; } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) element; IApiComponent apiComponent = workspaceBaseline .getApiComponent(javaProject.getElementName()); if (apiComponent != null) { addElementFor(fragmentRoot, apiComponent, scope); } break; } case IJavaElement.JAVA_PROJECT: IApiComponent apiComponent = workspaceBaseline .getApiComponent(javaProject.getElementName()); if (apiComponent != null) { scope.addElement(apiComponent); } break; default: break; } } catch (JavaModelException e) { ApiPlugin.log(e); } catch (CoreException e) { ApiPlugin.log(e); } } } return scope; }
From source file:org.eclipse.pde.api.tools.util.tests.ApiBaselineManagerTests.java
License:Open Source License
/** * Tests that adding a source file to an API aware project causes the * workspace description to be updated This test adds * <code>a.b.c.TestClass1</code> to the plug-in project *//*from w w w .j a v a 2s . c o m*/ public void testWPUpdateSourceAdded() throws Exception { IJavaProject project = getTestingProject(); assertNotNull("The testing project must exist", project); //$NON-NLS-1$ IPackageFragmentRoot root = project.findPackageFragmentRoot( new Path(project.getElementName()).append(ProjectUtils.SRC_FOLDER).makeAbsolute().makeAbsolute()); assertNotNull("the 'src' package fragment root must exist", root); //$NON-NLS-1$ assertTestSource(root, TESTING_PACKAGE, "TestClass1"); //$NON-NLS-1$ assertSourceResctriction(TESTING_PACKAGE, "TestClass1", RestrictionModifiers.NO_INSTANTIATE); //$NON-NLS-1$ }
From source file:org.eclipse.pde.api.tools.util.tests.ApiBaselineManagerTests.java
License:Open Source License
/** * Tests that removing a source file from an API aware project causes the * workspace description to be updated/* w ww . j a v a 2 s. c o m*/ */ public void testWPUpdateSourceRemoved() throws Exception { IJavaProject project = getTestingProject(); assertNotNull("The testing project must exist", project); //$NON-NLS-1$ IPackageFragmentRoot root = project.findPackageFragmentRoot( new Path(project.getElementName()).append(ProjectUtils.SRC_FOLDER).makeAbsolute()); assertNotNull("the 'src' package fragment root must exist", root); //$NON-NLS-1$ assertTestSource(root, TESTING_PACKAGE, "TestClass1"); //$NON-NLS-1$ IJavaElement element = project.findElement(new Path("a/b/c/TestClass1.java")); //$NON-NLS-1$ assertNotNull("the class a.b.c.TestClass1 must exist in the project", element); //$NON-NLS-1$ element.getResource().delete(true, new NullProgressMonitor()); IApiDescription desc = getTestProjectApiDescription(); assertNotNull("the testing project api description must exist", desc); //$NON-NLS-1$ IApiAnnotations annot = desc.resolveAnnotations(Factory.typeDescriptor("a.b.c.TestClass1")); //$NON-NLS-1$ assertNull("the annotations for a.b.c.TestClass1 should no longer be present", annot); //$NON-NLS-1$ }