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

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

Introduction

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

Prototype

void setRawClasspath(IClasspathEntry[] entries, IProgressMonitor monitor) throws JavaModelException;

Source Link

Document

Sets the classpath of this project using a list of classpath entries.

Usage

From source file:org.eclipse.jst.ws.jaxrs.core.internal.jaxrslibraryconfig.JAXRSLibraryRegistryUtil.java

License:Open Source License

/**
 * Sets the raw classpath on a project and logs an error if it when a
 * JavaModelException occurs/*from ww  w.ja  v a  2 s .c  o  m*/
 * 
 * @param project
 * @param cpEntries
 * @param monitor
 */
public static void setRawClasspath(IJavaProject project, List<IClasspathEntry> cpEntries,
        IProgressMonitor monitor) {
    IClasspathEntry[] entries = cpEntries.toArray(new IClasspathEntry[0]);
    try {
        project.setRawClasspath(entries, monitor);
    } catch (JavaModelException e) {
        JAXRSCorePlugin.log(e, "Unable to set classpath for: " + project.getProject().getName());
    }
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private void addRequiredPluginsClasspathContainer(IProject project, IProgressMonitor monitor)
        throws CoreException {
    if (isJavaProject(project)) {
        IJavaProject javaProject = JavaCore.create(project);
        IClasspathEntry[] entries = javaProject.getRawClasspath();
        if (!hasRequiredPlugins(entries)) {
            IClasspathEntry[] newEntries = new IClasspathEntry[entries.length + 1];
            System.arraycopy(entries, 0, newEntries, 0, entries.length);
            newEntries[newEntries.length - 1] = JavaCore.newContainerEntry(REQUIRED_PLUGINS_CONTAINER_PATH);
            javaProject.setRawClasspath(newEntries, monitor);
        }//  w  ww  .j  a v  a2 s.  com
    }
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetUninstallDelegate.java

License:Open Source License

private void removeRequiredBundlesClasspathContainer(IProject project, IProgressMonitor monitor)
        throws CoreException {
    if (isJavaProject(project)) {
        IJavaProject javaProject = JavaCore.create(project);
        IClasspathEntry[] entries = javaProject.getRawClasspath();
        if (hasRequiredPlugins(entries)) {
            for (int i = 0; i < entries.length; i++) {
                if (isRequiredPlugins(entries[i])) {
                    IClasspathEntry[] newEntries = new IClasspathEntry[entries.length - 1];
                    System.arraycopy(entries, 0, newEntries, 0, i);
                    System.arraycopy(entries, i + 1, newEntries, i, entries.length - i - 1);
                    javaProject.setRawClasspath(newEntries, monitor);
                    return;
                }//w w  w. j  a v  a 2 s.  c  o m
            }
        }
    }
}

From source file:org.eclipse.m2e.jdt.internal.AbstractJavaProjectConfigurator.java

License:Open Source License

private void removeMavenClasspathContainer(IProject project) throws JavaModelException {
    IJavaProject javaProject = JavaCore.create(project);
    if (javaProject != null) {
        // remove classpatch container from JavaProject
        ArrayList<IClasspathEntry> newEntries = new ArrayList<IClasspathEntry>();
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            if (!MavenClasspathHelpers.isMaven2ClasspathContainer(entry.getPath())) {
                newEntries.add(entry);/* w w w .  j  a v a2  s.c o m*/
            }
        }
        javaProject.setRawClasspath(newEntries.toArray(new IClasspathEntry[newEntries.size()]), null);
    }
}

From source file:org.eclipse.m2e.jdt.internal.BuildPathManager.java

License:Open Source License

void attachSourcesAndJavadoc(IPackageFragmentRoot fragment, File sources, File javadoc,
        IProgressMonitor monitor) {/* www  .  ja v  a  2s  .  co  m*/
    IJavaProject javaProject = fragment.getJavaProject();

    IPath srcPath = sources != null ? Path.fromOSString(sources.getAbsolutePath()) : null;
    String javaDocUrl = getJavaDocUrl(javadoc);

    try {
        IClasspathEntry[] cp = javaProject.getRawClasspath();
        for (int i = 0; i < cp.length; i++) {
            IClasspathEntry entry = cp[i];
            if (IClasspathEntry.CPE_LIBRARY == entry.getEntryKind()
                    && entry.equals(fragment.getRawClasspathEntry())) {
                List<IClasspathAttribute> attributes = new ArrayList<IClasspathAttribute>(
                        Arrays.asList(entry.getExtraAttributes()));

                if (srcPath == null) {
                    // configure javadocs if available
                    if (javaDocUrl != null) {
                        attributes.add(JavaCore.newClasspathAttribute(
                                IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME, javaDocUrl));
                    }
                }

                cp[i] = JavaCore.newLibraryEntry(entry.getPath(), srcPath, null, entry.getAccessRules(), //
                        attributes.toArray(new IClasspathAttribute[attributes.size()]), // 
                        entry.isExported());

                break;
            }
        }

        javaProject.setRawClasspath(cp, monitor);
    } catch (CoreException e) {
        log.error(e.getMessage(), e);
    }
}

From source file:org.eclipse.m2e.tests.BuildPathManagerTest.java

License:Open Source License

public void testDownloadSources_006_nonMavenProject() throws Exception {
    RepositoryRegistry repositoryRegistry = (RepositoryRegistry) MavenPlugin.getRepositoryRegistry();
    repositoryRegistry.updateRegistry(monitor);

    NexusIndexManager indexManager = (NexusIndexManager) MavenPlugin.getIndexManager();
    indexManager.getIndexUpdateJob().join();
    IMutableIndex localIndex = indexManager.getLocalIndex();
    localIndex.updateIndex(true, monitor);

    for (IRepository repository : repositoryRegistry.getRepositories(IRepositoryRegistry.SCOPE_SETTINGS)) {
        if ("file:repositories/remoterepo".equals(repository.getUrl())) {
            NexusIndex remoteIndex = indexManager.getIndex(repository);
            remoteIndex.updateIndex(true, monitor); // actually scan the repo
        }/*from w w  w  .  j  av  a2 s  . c o m*/
    }

    IProject project = createExisting("downloadsources-p006", "projects/downloadsources/p006");

    File log4jJar = new File("repositories/remoterepo/log4j/log4j/1.2.13/log4j-1.2.13.jar");
    Path log4jPath = new Path(log4jJar.getAbsolutePath());

    File junitJar = new File("repositories/remoterepo/junit/junit/3.8.1/junit-3.8.1.jar");
    Path junitPath = new Path(junitJar.getAbsolutePath());

    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] origCp = javaProject.getRawClasspath();
    IClasspathEntry[] cp = new IClasspathEntry[origCp.length + 2];
    System.arraycopy(origCp, 0, cp, 0, origCp.length);

    cp[cp.length - 2] = JavaCore.newLibraryEntry(log4jPath, null, null, true);
    cp[cp.length - 1] = JavaCore.newLibraryEntry(junitPath, null, null, false);

    javaProject.setRawClasspath(cp, monitor);

    getBuildPathManager().scheduleDownload(javaProject.findPackageFragmentRoot(log4jPath), true, false);
    waitForJobsToComplete();

    cp = javaProject.getRawClasspath();

    assertEquals(log4jJar.getAbsoluteFile(), cp[cp.length - 2].getPath().toFile());
    assertEquals("log4j-1.2.13-sources.jar", cp[cp.length - 2].getSourceAttachmentPath().lastSegment());
    assertEquals(true, cp[cp.length - 2].isExported());

    getBuildPathManager().scheduleDownload(javaProject.findPackageFragmentRoot(junitPath), true, false);
    waitForJobsToComplete();

    assertEquals(junitJar.getAbsoluteFile(), cp[cp.length - 1].getPath().toFile());
    assertEquals("junit-3.8.1-sources.jar", cp[cp.length - 1].getSourceAttachmentPath().lastSegment());
    assertEquals(false, cp[cp.length - 1].isExported());
}

From source file:org.eclipse.m2e.tests.jdt.JavaClasspathTest.java

License:Open Source License

public void test486739_PreserveExportedOnUpdate() throws Exception {
    IProject project = importProject("projects/486739_exportedContainer/pom.xml");
    //assertNoErrors(project);

    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] originalCp = javaProject.getRawClasspath();

    assertEquals(5, originalCp.length);// w w w . j  a  v a  2s . c  om
    assertEquals("org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER", originalCp[4].getPath().segment(0));
    assertFalse(originalCp[4].isExported());

    originalCp[4] = MavenClasspathHelpers.getDefaultContainerEntry(true);
    javaProject.setRawClasspath(originalCp, monitor);

    MavenPlugin.getProjectConfigurationManager().updateProjectConfiguration(project, monitor);
    waitForJobsToComplete();
    //assertNoErrors(project);

    javaProject = JavaCore.create(project);
    IClasspathEntry[] updatedCp = javaProject.getRawClasspath();
    assertEquals("classpath changed on update", originalCp.length, updatedCp.length);
    assertEquals("org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER", updatedCp[4].getPath().segment(0));
    assertTrue(updatedCp[4].isExported());
}

From source file:org.eclipse.m2e.tests.jdt.JavaClasspathTest.java

License:Open Source License

public void test398121_PreserveOrderOfClasspathContainersOnUpdate() throws Exception {
    IProject project = importProject("orderOf-classpath-containers",
            "projects/customclasspath/classpath-containers", new ResolverConfiguration());

    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] cp = javaProject.getRawClasspath();

    assertEquals(5, cp.length);//from  w w  w.  ja  v  a 2s .  co  m

    assertClasspath(new String[] { //
            "org.eclipse.jdt.launching.JRE_CONTAINER/.*", //
            "org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER", //
            "container1", //
            "/orderOf-classpath-containers/src/main/java", //
            "/orderOf-classpath-containers/src/test/java" //
    }, cp);

    // Simulate user changes the order or the classpath entries. The order should be preserved during update if nothing changes in the pom.xml

    IClasspathEntry[] newOrder = new IClasspathEntry[] { cp[2], cp[3], cp[1], cp[0], cp[4] };

    javaProject.setRawClasspath(newOrder, null);

    // Update the project
    MavenPlugin.getProjectConfigurationManager().updateProjectConfiguration(project, monitor);
    waitForJobsToComplete();

    cp = javaProject.getRawClasspath();

    assertEquals(5, cp.length);

    assertClasspath(new String[] { //
            "container1", //
            "/orderOf-classpath-containers/src/main/java", //
            "org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER", //
            "org.eclipse.jdt.launching.JRE_CONTAINER/.*", //
            "/orderOf-classpath-containers/src/test/java" //
    }, cp);

    // Simulate another change to the classpath

    newOrder = new IClasspathEntry[] { cp[0], cp[1], cp[3], cp[2], cp[4] };

    javaProject.setRawClasspath(newOrder, null);

    // Update the project
    MavenPlugin.getProjectConfigurationManager().updateProjectConfiguration(project, monitor);
    waitForJobsToComplete();

    cp = javaProject.getRawClasspath();

    assertEquals(5, cp.length);

    assertClasspath(new String[] { //
            "container1", //
            "/orderOf-classpath-containers/src/main/java", //
            "org.eclipse.jdt.launching.JRE_CONTAINER/.*", //
            "org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER", //
            "/orderOf-classpath-containers/src/test/java" //
    }, cp);

}

From source file:org.eclipse.m2e.wtp.WTPProjectsUtil.java

License:Open Source License

/**
 * Remove the WTP classpath containers that might conflicts with the Maven Library 
 * classpath container /*from   w  w  w  .  j  a  v a 2  s  .co m*/
 * @param project
 * @throws JavaModelException
 */
public static void removeWTPClasspathContainer(IProject project) throws JavaModelException {
    IJavaProject javaProject = JavaCore.create(project);
    if (javaProject != null) {
        // remove classpatch container from JavaProject
        ArrayList<IClasspathEntry> newEntries = new ArrayList<IClasspathEntry>();
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            String path = entry.getPath().toString();
            if (!"org.eclipse.jst.j2ee.internal.module.container".equals(path)
                    && !"org.eclipse.jst.j2ee.internal.web.container".equals(path)) {
                newEntries.add(entry);
            }
        }
        javaProject.setRawClasspath(newEntries.toArray(new IClasspathEntry[newEntries.size()]), null);
    }
}

From source file:org.eclipse.m2e.wtp.WTPProjectsUtil.java

License:Open Source License

public static void updateContainerAttributes(IProject project, IClasspathAttribute attributeToAdd,
        String attributeToDelete, IProgressMonitor monitor) throws JavaModelException {
    IJavaProject javaProject = JavaCore.create(project);
    if (javaProject == null)
        return;//www.j a  v a 2s .  co  m
    IClasspathEntry[] cp = javaProject.getRawClasspath();
    for (int i = 0; i < cp.length; i++) {
        if (IClasspathEntry.CPE_CONTAINER == cp[i].getEntryKind()
                && MavenClasspathHelpers.isMaven2ClasspathContainer(cp[i].getPath())) {
            LinkedHashMap<String, IClasspathAttribute> attrs = new LinkedHashMap<String, IClasspathAttribute>();
            for (IClasspathAttribute attr : cp[i].getExtraAttributes()) {
                if (!attr.getName().equals(attributeToDelete)) {
                    attrs.put(attr.getName(), attr);
                }
            }
            attrs.put(attributeToAdd.getName(), attributeToAdd);
            IClasspathAttribute[] newAttrs = attrs.values().toArray(new IClasspathAttribute[attrs.size()]);
            cp[i] = JavaCore.newContainerEntry(cp[i].getPath(), cp[i].getAccessRules(), newAttrs,
                    cp[i].isExported());
            break;
        }
    }
    javaProject.setRawClasspath(cp, monitor);
}