List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot close
public void close() throws JavaModelException;
From source file:com.codenvy.ide.ext.java.server.internal.core.DeltaProcessor.java
License:Open Source License
private void checkSourceAttachmentChange(IResourceDelta delta, File res) { IPath rootPath = (IPath) this.state.sourceAttachments.get(externalPath(res)); if (rootPath != null) { RootInfo rootInfo = rootInfo(rootPath, delta.getKind()); if (rootInfo != null) { IJavaProject projectOfRoot = rootInfo.project; IPackageFragmentRoot root = null; try { // close the root so that source attachment cache is flushed root = projectOfRoot.findPackageFragmentRoot(rootPath); if (root != null) { root.close(); }/* ww w. jav a 2 s . c o m*/ } catch (JavaModelException e) { // root doesn't exist: ignore } if (root == null) return; switch (delta.getKind()) { case IResourceDelta.ADDED: currentDelta().sourceAttached(root); break; case IResourceDelta.CHANGED: currentDelta().sourceDetached(root); currentDelta().sourceAttached(root); break; case IResourceDelta.REMOVED: currentDelta().sourceDetached(root); break; } } } }
From source file:org.codehaus.groovy.eclipse.dsl.tests.BuiltInDSLInferencingTests.java
License:Open Source License
public void testSanity() throws Exception { IJavaProject javaProject = JavaCore.create(project); assertTrue("Should have DSL support classpath container", GroovyRuntime.hasClasspathContainer(javaProject, GroovyDSLCoreActivator.CLASSPATH_CONTAINER_ID)); IClasspathContainer container = JavaCore .getClasspathContainer(GroovyDSLCoreActivator.CLASSPATH_CONTAINER_ID, javaProject); IClasspathEntry[] cpes = container.getClasspathEntries(); assertEquals("Wrong number of classpath entries found: " + Arrays.toString(cpes), 2, cpes.length); IClasspathEntry pluginEntry = null;//from ww w. jav a2s . c o m IClasspathEntry[] entries = javaProject.getResolvedClasspath(true); for (IClasspathEntry entry : entries) { if (entry.getPath().toString().contains("plugin_dsld")) { pluginEntry = entry; } } IPackageFragmentRoot root = null; List<String> elements = new ArrayList<String>(); for (IJavaElement elt : javaProject.getChildren()) { elements.add(elt.getElementName()); if (elt.getElementName().contains("plugin_dsld")) { root = (IPackageFragmentRoot) elt; } } List<String> possibleFrags = new ArrayList<String>(); for (IPackageFragment frag : javaProject.getPackageFragments()) { if (frag.getElementName().equals("dsld")) { possibleFrags.add(frag.toString()); possibleFrags.add(" ["); for (IJavaElement child : frag.getChildren()) { possibleFrags.add(" " + child.getElementName()); } possibleFrags.add(" ]"); } } assertNotNull("Did not find the Plugin DSLD classpath entry. Exsting resolved roots:\n" + printList(elements) + "\nOther DSLD fragments:\n" + printList(possibleFrags), pluginEntry); assertNotNull("Plugin DSLD classpath entry should exist. Exsting resolved roots:\n" + printList(elements) + "\nOther DSLD fragments:\n" + printList(possibleFrags), root); assertTrue("Plugin DSLD classpath entry should exist", root.exists()); ExternalPackageFragmentRoot ext = (ExternalPackageFragmentRoot) root; ext.resource().refreshLocal(IResource.DEPTH_INFINITE, null); root.close(); root.open(null); IPackageFragment frag = root.getPackageFragment("dsld"); assertTrue("DSLD package fragment should exist", frag.exists()); }
From source file:org.eclipse.recommenders.codesearch.rcp.index.ui.ProjectIndexerRunnable.java
License:Open Source License
private void analyzeRoot(final IPackageFragmentRoot root) throws Exception { this.root = root; monitor.subTask("Analyzing " + root.getElementName()); rootLocation = getFile(root);/*from w w w . j a va 2 s . com*/ if (monitor.isCanceled()) { return; } if (rootLocation == null) { return; } if (hasNotChanged(rootLocation)) { return; } if (root.isArchive()) { indexer.delete(rootLocation); if (!findSourceMapper()) { return; } } analyzePackageFragments(); monitor.subTask("Checkpointing..."); indexer.commit(); monitor.worked(1); root.close(); }
From source file:org.eclipse.xtend.shared.ui.core.builder.XtendXpandBuilder.java
License:Open Source License
protected void fullBuild(final IProgressMonitor monitor) throws CoreException { final IXtendXpandProject project = Activator.getExtXptModelManager() .findProject(getProject().getFullPath()); if (project != null) { getProject().accept(new XtendXpandDeltaVisitor(monitor)); final IJavaProject jp = JavaCore.create(getProject()); final IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots(); final Set<String> extensions = new HashSet<String>(); final ResourceContributor[] contributors = Activator.getRegisteredResourceContributors(); for (final ResourceContributor resourceContributor : contributors) { extensions.add(resourceContributor.getFileExtension()); }/*from ww w. j a v a2 s.c o m*/ for (final IPackageFragmentRoot root : roots) { if (root.isArchive()) { try { root.open(monitor); try { final ZipFile zip = ((JarPackageFragmentRoot) root).getJar(); final Enumeration<? extends ZipEntry> entries = zip.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = entries.nextElement(); for (final String ext : extensions) { final String name = entry.getName(); if (name.endsWith(ext)) { final String fqn = name.substring(0, name.length() - ext.length() - 1) .replaceAll("/", "::"); final ResourceID resourceID = new ResourceID(fqn, ext); final IStorage findStorage = JDTUtil.loadFromJar(resourceID, root); project.findXtendXpandResource(findStorage); } } } } finally { root.close(); } } catch (CoreException ex) { XtendLog.logError(ex); } } } } else { XtendLog.logInfo("Couldn't create Xpand project for project " + getProject().getName()); } }
From source file:org.eclipse.xtend.typesystem.emf.ui.ProjectAnalyzer.java
License:Open Source License
private void loadMetamodelsForProject(final IJavaProject javaProject, final ResourceSet rs, final IProgressMonitor monitor) { try {/*from ww w. jav a 2s .c om*/ final String ext = Messages.ProjectAnalyzer_2; if (!javaProject.exists()) return; for (final IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (!root.isArchive()) { IResource rootResource = null; if (root instanceof ExternalPackageFragmentRoot) { rootResource = ((ExternalPackageFragmentRoot) root).resource(); } else { rootResource = root.getUnderlyingResource(); } if (rootResource != null) { try { // if (!rootResource.exists() || !rootResource.isAccessible()) rootResource.refreshLocal(IResource.DEPTH_INFINITE, monitor); rootResource.accept(new IResourceVisitor() { public boolean visit(final IResource resource) throws CoreException { if (resource instanceof IFile && ext.equals(((IFile) resource).getFileExtension())) { loadModelFromStorage(rs, (IFile) resource); } return true; } }); } catch (final CoreException e) { EmfToolsLog.logError(e); } } } else { // skip JRE jars if (((JarPackageFragmentRoot) root).getPath().toString().contains(Messages.ProjectAnalyzer_3)) { if (EmfToolsPlugin.trace) { System.out.println(Messages.ProjectAnalyzer_4 + ((JarPackageFragmentRoot) root).getPath().toString()); } continue; } root.open(monitor); try { final ZipFile zip = ((JarPackageFragmentRoot) root).getJar(); final Enumeration<? extends ZipEntry> entries = zip.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = entries.nextElement(); final String name = entry.getName(); if (name.endsWith(ext)) { final String fqn = name.substring(0, name.length() - ext.length() - 1) .replaceAll(Messages.ProjectAnalyzer_5, Messages.ProjectAnalyzer_6); final ResourceID resourceID = new ResourceID(fqn, ext); final IStorage findStorage = JDTUtil.loadFromJar(resourceID, root); if (findStorage != null) { loadModelFromStorage(rs, findStorage); } } } } catch (final CoreException e) { EmfToolsLog.logError(e); } finally { root.close(); } } } } catch (final JavaModelException e) { EmfToolsLog.logError(e); } }
From source file:org.jboss.tools.pde.sourcelookup.core.internal.utils.ClasspathUtils.java
License:Open Source License
public static void attachSource(final IPackageFragmentRoot fragment, final IPath newSourcePath, IProgressMonitor monitor) {/*from w w w . j a v a 2 s . co m*/ try { if (fragment == null || fragment.getKind() != IPackageFragmentRoot.K_BINARY) { return; } if (!Objects.equals(fragment.getSourceAttachmentPath(), newSourcePath)) { // would be so cool if it refreshed the UI automatically fragment.attachSource(newSourcePath, null, monitor); // close the root so that source attachment cache is flushed. Else UI // won't update fragment.close(); // we have to manually fire a delta to notify the UI about the source // attachment. JavaModelManager manager = JavaModelManager.getJavaModelManager(); JavaElementDelta attachedSourceDelta = new JavaElementDelta(fragment.getJavaModel()); attachedSourceDelta.sourceAttached(fragment); manager.getDeltaProcessor().fire(attachedSourceDelta, ElementChangedEvent.POST_CHANGE); } } catch (CoreException e) { // ignore } }