List of usage examples for org.eclipse.jdt.core IJavaProject getRawClasspath
IClasspathEntry[] getRawClasspath() throws JavaModelException;
From source file:com.ebmwebsourcing.petals.common.internal.provisional.utils.JavaUtils.java
License:Open Source License
/** * Gets a set of JAR files from a Java project, in order to package them. * @param jp the Java project/*from w ww . j av a 2 s .c om*/ * @param monitor the progress monitor * @return an instance of {@link ExportableClassPath} (never null) */ public static ExportableClassPath getExportableClasspath(IJavaProject jp, IProgressMonitor monitor) { ExportableClassPath result = new ExportableClassPath(); try { // Check the class path IClasspathEntry[] entries = jp.getRawClasspath(); for (IClasspathEntry entry : entries) updateExportableResult(result, entry, monitor); // Package the implementation File jarFile = createDefaultJar(jp, monitor); result.implementationJars.add(jarFile); monitor.worked(1); } catch (JavaModelException e) { PetalsCommonPlugin.log(e, IStatus.ERROR); } catch (InvocationTargetException e) { PetalsCommonPlugin.log(e, IStatus.ERROR); } catch (InterruptedException e) { PetalsCommonPlugin.log(e, IStatus.ERROR); } return result; }
From source file:com.ecfeed.ui.common.utils.EclipsePackageFragmentGetter.java
License:Open Source License
private static IPackageFragmentRoot createNewSourceFolder(String name, IFileInfoProvider fFileInfoProvider) throws CoreException { IProject project = fFileInfoProvider.getProject(); IJavaProject javaProject = JavaCore.create(project); IFolder srcFolder = project.getFolder(name); int i = 0;// w w w. ja v a 2s. c om while (srcFolder.exists()) { String newName = name + i++; srcFolder = project.getFolder(newName); } srcFolder.create(false, true, null); IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(srcFolder); IClasspathEntry[] entries = javaProject.getRawClasspath(); IClasspathEntry[] updated = new IClasspathEntry[entries.length + 1]; System.arraycopy(entries, 0, updated, 0, entries.length); updated[entries.length] = JavaCore.newSourceEntry(root.getPath()); javaProject.setRawClasspath(updated, null); return root; }
From source file:com.feup.contribution.druid.DruidPlugin.java
License:Open Source License
public void addDruidNature(IProject project) throws CoreException { if (project.hasNature(DRUID_NATURE)) return;// w w w .j a v a 2 s. c om IProjectDescription description = project.getDescription(); String[] ids = description.getNatureIds(); String[] newIds = new String[ids.length + 1]; System.arraycopy(ids, 0, newIds, 0, ids.length); newIds[ids.length] = DRUID_NATURE; description.setNatureIds(newIds); project.setDescription(description, null); IJavaProject javaProject = (IJavaProject) JavaCore.create((IProject) project); IClasspathEntry[] rawClasspath = javaProject.getRawClasspath(); List<IClasspathEntry> newEntries = new ArrayList<IClasspathEntry>(rawClasspath.length + 1); for (IClasspathEntry e : rawClasspath) { newEntries.add(e); } newEntries.add(JavaCore.newContainerEntry(DruidClasspathContainer.CONTAINER_ID)); IClasspathEntry[] newEntriesArray = new IClasspathEntry[newEntries.size()]; newEntriesArray = (IClasspathEntry[]) newEntries.toArray(newEntriesArray); javaProject.setRawClasspath(newEntriesArray, null); javaProject.getProject().refreshLocal(IResource.DEPTH_INFINITE, null); }
From source file:com.google.appengine.eclipse.core.sdk.AppEngineUpdateProjectSdkCommand.java
License:Open Source License
static IPath computeAppEngineSdkInstallPath(IJavaProject javaProject) throws CoreException { assert (ClasspathUtilities.findClasspathEntryContainer(javaProject.getRawClasspath(), GaeSdkContainer.CONTAINER_ID) == null); for (IClasspathEntry entry : javaProject.getRawClasspath()) { entry = JavaCore.getResolvedClasspathEntry(entry); IPath entryPath = entry.getPath(); String fileName = entryPath.lastSegment(); if (fileName.matches("appengine\\-tools\\-api.*\\.jar")) { if (entryPath.segmentCount() > 2) { // TODO: We should check that the jar exists on disk. Throw a // CoreException with a more informative message. return entryPath.removeLastSegments(2); }//from www . jav a2s . c o m } } return null; }
From source file:com.google.cloud.tools.eclipse.appengine.compat.GpeMigrator.java
License:Apache License
@VisibleForTesting static void removeGpeClasspathEntries(IProject project) { try {/* w ww.j a va 2s. c o m*/ IJavaProject javaProject = JavaCore.create(project); List<IClasspathEntry> newEntries = new ArrayList<>(); for (IClasspathEntry entry : javaProject.getRawClasspath()) { String path = entry.getPath().toString(); // note: '/' is a path separator. if (!GPE_CLASSPATH_ENTRIES_PATH.contains(path)) { newEntries.add(entry); } } IClasspathEntry[] rawEntries = newEntries.toArray(new IClasspathEntry[0]); javaProject.setRawClasspath(rawEntries, new NullProgressMonitor()); javaProject.save(new NullProgressMonitor(), true); } catch (JavaModelException ex) { logger.log(Level.WARNING, "Failed to remove GPE classpath entries.", ex); } }
From source file:com.google.cloud.tools.eclipse.appengine.compat.GpeMigratorTest.java
License:Apache License
private static boolean containsLibrary(IJavaProject javaProject, String libraryPath) throws JavaModelException { for (IClasspathEntry entry : javaProject.getRawClasspath()) { String path = entry.getPath().toString(); // note: '/' is a path separator. if (path.equals(libraryPath)) { return true; }//from w w w . j a v a 2 s.c o m } return false; }
From source file:com.google.cloud.tools.eclipse.appengine.facets.FacetInstallDelegate.java
License:Open Source License
/** * Adds jars associated with the App Engine facet if they don't already exist in * <code>project</code>//from w ww .ja v a 2s.c o m */ private void addAppEngineJarsToClasspath(IProject project, IProgressMonitor monitor) throws CoreException { IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] rawClasspath = javaProject.getRawClasspath(); IClasspathEntry appEngineContainer = JavaCore.newContainerEntry( new Path(AppEngineSdkClasspathContainer.CONTAINER_ID), new IAccessRule[0], new IClasspathAttribute[] { UpdateClasspathAttributeUtil.createDependencyAttribute(true /*isWebApp */) }, true /* isExported */); // Check if App Engine container entry already exists for (int i = 0; i < rawClasspath.length; i++) { if (rawClasspath[i].equals(appEngineContainer)) { return; } } IClasspathEntry[] newClasspath = new IClasspathEntry[rawClasspath.length + 1]; System.arraycopy(rawClasspath, 0, newClasspath, 0, rawClasspath.length); newClasspath[newClasspath.length - 1] = appEngineContainer; javaProject.setRawClasspath(newClasspath, monitor); }
From source file:com.google.cloud.tools.eclipse.appengine.facets.FacetUninstallDelegate.java
License:Open Source License
private void removeAppEngineJarsFromClasspath(IProject project, IProgressMonitor monitor) throws CoreException { IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] rawClasspath = javaProject.getRawClasspath(); IClasspathEntry[] newClasspath = new IClasspathEntry[rawClasspath.length - 1]; int appEngineContainerIndex = 0; boolean isAppEngineSdkPresent = false; for (IClasspathEntry entry : rawClasspath) { if (AppEngineSdkClasspathContainer.CONTAINER_ID.equals(entry.getPath().toString())) { isAppEngineSdkPresent = true; } else {/*from ww w . j av a 2 s. c o m*/ newClasspath[appEngineContainerIndex++] = entry; } } if (isAppEngineSdkPresent) { javaProject.setRawClasspath(newClasspath, monitor); } }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.BuildPath.java
License:Apache License
/** * @return the entries added to the classpath. * Does not include entries previously present in classpath. *///from w w w .j av a 2 s .co m public static IClasspathEntry[] addLibraries(IJavaProject javaProject, List<Library> libraries, IProgressMonitor monitor) throws JavaModelException, CoreException { SubMonitor subMonitor = SubMonitor.convert(monitor, Messages.getString("adding.app.engine.libraries"), //$NON-NLS-1$ libraries.size()); IClasspathEntry[] rawClasspath = javaProject.getRawClasspath(); List<IClasspathEntry> newRawClasspath = new ArrayList<>(rawClasspath.length + libraries.size()); newRawClasspath.addAll(Arrays.asList(rawClasspath)); List<IClasspathEntry> newEntries = new ArrayList<>(); for (Library library : libraries) { IClasspathEntry libraryContainer = makeClasspathEntry(library); if (!newRawClasspath.contains(libraryContainer)) { newEntries.add(libraryContainer); newRawClasspath.add(libraryContainer); } subMonitor.worked(1); } javaProject.setRawClasspath(newRawClasspath.toArray(new IClasspathEntry[0]), subMonitor); runContainerResolverJob(javaProject); return newEntries.toArray(new IClasspathEntry[0]); }
From source file:com.google.cloud.tools.eclipse.appengine.libraries.BuildPathTest.java
License:Apache License
@Test public void testAddLibraries() throws CoreException { IJavaProject project = Mockito.mock(IJavaProject.class); IClasspathEntry[] rawClasspath = new IClasspathEntry[0]; Mockito.when(project.getRawClasspath()).thenReturn(rawClasspath); List<Library> libraries = new ArrayList<>(); Library library = new Library("libraryId"); libraries.add(library);/* ww w. j a v a 2s . c o m*/ IClasspathEntry[] result = BuildPath.addLibraries(project, libraries, new NullProgressMonitor()); Assert.assertEquals(1, result.length); }