Example usage for org.eclipse.jdt.core IJavaProject getRawClasspath

List of usage examples for org.eclipse.jdt.core IJavaProject getRawClasspath

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getRawClasspath.

Prototype

IClasspathEntry[] getRawClasspath() throws JavaModelException;

Source Link

Document

Returns the raw classpath for the project, as a list of classpath entries.

Usage

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);
}