Example usage for org.eclipse.jdt.core IClasspathEntry getPath

List of usage examples for org.eclipse.jdt.core IClasspathEntry getPath

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IClasspathEntry getPath.

Prototype

IPath getPath();

Source Link

Document

Returns the path of this classpath entry.

Usage

From source file:net.sourceforge.floggy.eclipse.builder.MTJBuilder.java

License:Open Source License

/**
 * This is where the classpool is actually set. The typical case only requires adding the required jar files
 * to the classpool (classPool and classPoolList), however if the project is dependent on other projects then
 * not only do we need the jar files from these dependencies but we also need the output folders.
 * @TODO EXPERIMENTAL - Dependencies support should be considered experimental at this time because it isn't fully tested ! 
 *//*from  w w  w .ja  v a  2s  .c o  m*/
private void configureClassPool(ClassPool classPool, List classPoolList, IClasspathEntry[] entries,
        IProject project, boolean isRootProject) throws NotFoundException, JavaModelException {

    IClasspathEntry classpathEntry;
    String pathName;

    for (int i = 0; i < entries.length; i++) {
        classpathEntry = JavaCore.getResolvedClasspathEntry(entries[i]);
        IPath classIPath = classpathEntry.getPath();

        if ((isRootProject || classpathEntry.isExported())
                && classpathEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
            pathName = getAccessablePathName(classIPath, project);
        } else if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            classIPath = classpathEntry.getOutputLocation();
            if (classIPath == null) {
                classIPath = JavaCore.create(project).getOutputLocation();
            }
            pathName = getAccessablePathName(classIPath, project);
        } else {
            // Currently we only add : All source folders, All libs in the root project & Exported libs in other projects
            continue;
        }

        if (pathName.contains("floggy-persistence-framework-impl.jar")) {
            continue;
        }
        if (pathName != null && !classPoolList.contains(pathName)) {
            LOG.debug(pathName + " added to classPool");
            classPoolList.add(pathName);
            classPool.appendClassPath(pathName);
        } else {
            LOG.debug(pathName + " alreaded added to classPool");
        }
    }
}

From source file:net.sourceforge.floggy.eclipse.ToggleNatureAction.java

License:Open Source License

private void updateClasspath(IProject project) throws Exception {
    IJavaProject javaProject = JavaCore.create(project);
    List rawClasspath = new LinkedList(Arrays.asList(javaProject.getRawClasspath()));

    boolean contains = false;

    for (int i = 0; i < rawClasspath.size(); i++) {
        IClasspathEntry classpath = (IClasspathEntry) rawClasspath.get(i);

        if (classpath.getPath().toOSString().indexOf("floggy-persistence-framework") != -1) {
            contains = true;/*w  ww. j a v  a  2  s.c om*/

            break;
        }
    }

    if (!contains) {
        Enumeration e = Activator.findEntries("/", "*.jar", true);

        while (e.hasMoreElements()) {
            URL url = (URL) e.nextElement();
            String path = FileLocator.toFileURL(url).getPath();

            if (path.indexOf("floggy-persistence-framework") != -1) {
                String javadocURL = "http://floggy.sourceforge.net/modules/floggy-persistence-framework/apidocs/";

                String version = getVersion(path);

                if (version != null) {
                    javadocURL = "http://floggy.sourceforge.net/modules/floggy-persistence-framework/" + version
                            + "/floggy-persistence-framework/apidocs/";
                }

                IClasspathAttribute attribute = JavaCore.newClasspathAttribute("javadoc_location", javadocURL);
                IClasspathEntry varEntry = JavaCore.newLibraryEntry(new Path(path), null, null, null,
                        new IClasspathAttribute[] { attribute }, true);
                rawClasspath.add(varEntry);
                javaProject.setRawClasspath(
                        (IClasspathEntry[]) rawClasspath.toArray(new IClasspathEntry[rawClasspath.size()]),
                        null);

                break;
            }
        }

        if (Activator.isMTJAvailble()) {
            IFile implJar = project.getFile("floggy-persistence-framework-impl.jar");

            if (!implJar.exists()) {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                JarOutputStream out = new JarOutputStream(baos, new Manifest());

                out.close();

                implJar.create(new ByteArrayInputStream(baos.toByteArray()), IResource.DERIVED, null);
            }

            IPath filePatternImpl = new Path("net/sourceforge/floggy/persistence/impl/*");
            IPath filePatternImplMigration = new Path("net/sourceforge/floggy/persistence/impl/migration/*");

            IAccessRule[] accessRules = new IAccessRule[2];

            accessRules[0] = JavaCore.newAccessRule(filePatternImpl, IAccessRule.K_NON_ACCESSIBLE);
            accessRules[1] = JavaCore.newAccessRule(filePatternImplMigration, IAccessRule.K_NON_ACCESSIBLE);

            IClasspathEntry entry = JavaCore.newLibraryEntry(implJar.getLocation(), null, null, accessRules,
                    null, true);

            rawClasspath.add(entry);
            javaProject.setRawClasspath(
                    (IClasspathEntry[]) rawClasspath.toArray(new IClasspathEntry[rawClasspath.size()]), null);
        }
    }
}

From source file:nl.mwensveen.m2e.extras.cxf.tests.CXFGenerationTest.java

License:Open Source License

public void test_p001_simple() throws Exception {
    ResolverConfiguration configuration = new ResolverConfiguration();
    IProject project1 = importProject("projects/cxf/pom.xml", configuration);
    waitForJobsToComplete();//from   www . ja v  a  2 s.  co m

    project1.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
    project1.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
    waitForJobsToComplete();

    assertNoErrors(project1);

    IJavaProject javaProject1 = JavaCore.create(project1);
    IClasspathEntry[] cp1 = javaProject1.getRawClasspath();
    boolean found = false;

    for (IClasspathEntry iClasspathEntry : cp1) {
        if (iClasspathEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            if (iClasspathEntry.getPath().equals(new Path("/cxf-test-project/target/generated-sources/cxf"))) {
                found = true;
            }
        }
    }
    assertTrue(found);

    assertTrue(project1.getFile("target/generated-sources/cxf/com/example/xsd/ComplexType.java")
            .isSynchronized(IResource.DEPTH_ZERO));
    assertTrue(
            project1.getFile("target/generated-sources/cxf/com/example/xsd/ComplexType.java").isAccessible());
}

From source file:nl.mwensveen.m2e.extras.xml.tests.XMLTransformation2Test.java

License:Open Source License

public void test_p001_simple() throws Exception {
    ResolverConfiguration configuration = new ResolverConfiguration();
    IProject project1 = importProject("projects/xml2/pom.xml", configuration);
    waitForJobsToComplete();/*from   www.  jav  a2  s. com*/

    project1.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
    project1.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
    waitForJobsToComplete();

    assertNoErrors(project1);

    IJavaProject javaProject1 = JavaCore.create(project1);
    IClasspathEntry[] cp1 = javaProject1.getRawClasspath();
    boolean found = false;
    for (IClasspathEntry iClasspathEntry : cp1) {
        System.out.println("classpath entry: " + iClasspathEntry.getPath().toString());
        if ("/xml-test-project/target/temp".equals(iClasspathEntry.getPath().toString())) {
            found = true;
        }
    }
    assertTrue(!found);

    assertTrue(project1.getFile("target/temp/example.xsd").isSynchronized(IResource.DEPTH_ZERO));
    assertTrue(project1.getFile("target/temp/example.xsd").isAccessible());
}

From source file:nl.mwensveen.m2e.extras.xml.tests.XMLTransformationTest.java

License:Open Source License

public void test_p001_simple() throws Exception {
    ResolverConfiguration configuration = new ResolverConfiguration();
    IProject project1 = importProject("projects/xml/pom.xml", configuration);
    waitForJobsToComplete();//w ww.j a va 2  s.  c  o  m

    project1.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
    project1.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
    waitForJobsToComplete();

    assertNoErrors(project1);

    IJavaProject javaProject1 = JavaCore.create(project1);
    IClasspathEntry[] cp1 = javaProject1.getRawClasspath();
    boolean found = false;
    for (IClasspathEntry iClasspathEntry : cp1) {
        System.out.println("classpath entry: " + iClasspathEntry.getPath().toString());
        if ("/xml-test-project/target/temp".equals(iClasspathEntry.getPath().toString())) {
            found = true;
        }
    }
    assertTrue(found);

    assertTrue(project1.getFile("target/temp/example.xsd").isSynchronized(IResource.DEPTH_ZERO));
    assertTrue(project1.getFile("target/temp/example.xsd").isAccessible());
}

From source file:no.javatime.inplace.bundleproject.ProjectProperties.java

License:Open Source License

/**
 * Finds all source class path entries and return the relative path of source folders
 * //from   ww w . ja  v  a2  s.  c o m
 * @param project with source folders
 * @return source folders or an empty collection
 * @throws JavaModelException when accessing the project resource or the class path element does not exist
 * @throws InPlaceException if the project could not be accessed
 */
public static Collection<IPath> getJavaProjectSourceFolders(IProject project)
        throws JavaModelException, InPlaceException {
    ArrayList<IPath> paths = new ArrayList<IPath>();
    IJavaProject javaProject = getJavaProject(project);
    IClasspathEntry[] classpathEntries = javaProject.getResolvedClasspath(true);
    for (int i = 0; i < classpathEntries.length; i++) {
        IClasspathEntry entry = classpathEntries[i];
        if (entry.getContentKind() == IPackageFragmentRoot.K_SOURCE) {
            IPath path = entry.getPath();
            String segment = path.segment(path.segmentCount() - 1);
            if (null != segment) {
                paths.add(new Path(segment));
            }
        }
    }
    return paths;
}

From source file:nz.ac.auckland.ptjava.newclasswizard.WizardNewPTJavaFileCreationPage.java

License:Open Source License

/**
 * Creates the initial contents to be placed inside the newly created PTJava class file.
 * Current version will generate package declaration and basic class declaration if
 * those options are checked on the wizard page.
 *//* w  w  w .  j a  v  a 2 s .  c  om*/
@Override
protected InputStream getInitialContents() {
    //  String buffer for appending to file
    StringBuffer sb = new StringBuffer();
    if (fCodeCreationGroup.getGeneratePackage()) {
        IPath containerFullPath = getContainerFullPath();

        //  the original string to the container path
        String pathString = containerFullPath.toString();
        //System.out.println(pathString);

        int slashIndex = pathString.indexOf('/', 1);
        String truncatedPath = null;

        if (slashIndex > 0)
            truncatedPath = pathString.substring(0, slashIndex);
        else
            truncatedPath = pathString;

        //  find the project src folder path
        IProject project = JavaPlugin.getWorkspace().getRoot().getProject(truncatedPath);
        IJavaProject javaProject = JavaCore.create(project);
        if (javaProject != null) {
            try {
                String srcPath = null;
                IClasspathEntry[] cp = javaProject.getRawClasspath();
                for (IClasspathEntry i : cp) {
                    //System.out.println("i:"+i);
                    if (i.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                        //  src entry found!
                        srcPath = i.getPath().toString();
                        //System.out.println("srcPath: " + srcPath);
                        break;
                    }
                }
                if (srcPath != null) {
                    if (pathString.equals(srcPath)) {
                        //  do nothing
                    } else {
                        String s = null;
                        //  omit src path if part of path string
                        if (pathString.startsWith(srcPath))
                            s = pathString.substring(srcPath.length() + 1);
                        //  the +1 is to remove the first "/" after the src path
                        else
                            s = pathString;

                        //  currently looks like "some/path/to/file", we want "some.path.to.file"
                        s = s.replace('/', '.');

                        //  append it
                        //  should be something like "package some.path;"
                        sb.append("package ");
                        sb.append(s);
                        sb.append(";");
                        sb.append("\n\n");
                        //System.out.println("s: " + s);
                    }
                }
            } catch (JavaModelException e) {
                e.printStackTrace();
            }
        }
    }

    if (fCodeCreationGroup.getGenerateClass()) {
        sb.append("public class ");
        String filename = getFileName();
        if (filename.contains("."))
            filename = filename.substring(0, filename.indexOf('.'));
        sb.append(filename);
        sb.append(" {\n\t\n}");
    }
    if (sb.length() == 0)
        return null;
    return new ByteArrayInputStream(sb.toString().getBytes());
}

From source file:nz.ac.vuw.ecs.kcassell.GroovyTestProject.java

License:Apache License

private IPackageFragmentRoot createSourceFolder() throws CoreException {
    IFolder folder = project.getFolder("src");
    if (!folder.exists())
        ensureExists(folder);/* w  ww.j  a  v  a 2  s. c  o m*/
    final IClasspathEntry[] entries = javaProject.getResolvedClasspath(false);
    final IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
    for (int i = 0; i < entries.length; i++) {
        final IClasspathEntry entry = entries[i];
        if (entry.getPath().equals(folder.getFullPath()))
            return root;
    }
    IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
    System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
    newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath());
    javaProject.setRawClasspath(newEntries, null);
    return root;
}

From source file:nz.ac.vuw.ecs.kcassell.GroovyTestProject.java

License:Apache License

public IPackageFragmentRoot createSourceFolder(String path, String outPath, IPath[] exclusionPattern)
        throws CoreException {
    IFolder folder = project.getFolder(path);
    if (!folder.exists()) {
        ensureExists(folder);/*from w  ww.  j  av  a 2s. c o m*/
    }

    final IClasspathEntry[] entries = javaProject.getResolvedClasspath(false);
    final IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
    for (int i = 0; i < entries.length; i++) {
        final IClasspathEntry entry = entries[i];
        if (entry.getPath().equals(folder.getFullPath())) {
            return root;
        }
    }
    IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
    System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
    IPath outPathPath = outPath == null ? null : getProject().getFullPath().append(outPath).makeAbsolute();
    newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath(), exclusionPattern, outPathPath);
    javaProject.setRawClasspath(newEntries, null);
    return root;

}

From source file:org.antlr.eclipse.core.AntlrNature.java

License:Open Source License

/**
 * Add the ANTLR nature to a project//from w  ww  .  j  a  v  a2 s  .co  m
 * @param aProject The project to add it to
 * @param aMonitor A progess monitor
 */
public static void addNature(final IProject aProject, final IProgressMonitor aMonitor) {
    if (aProject != null) {
        if (DEBUG) {
            System.out.println("adding ANTLR nature to project '" + aProject.getName() + "'");
        }
        try {
            if (!aProject.hasNature(ID)) {
                IProjectDescription desc = aProject.getDescription();
                ArrayList<String> natures = new ArrayList<String>(Arrays.asList(desc.getNatureIds()));
                natures.add(0, ID);
                desc.setNatureIds(natures.toArray(new String[natures.size()]));
                aProject.setDescription(desc, aMonitor);

                // if it's a Java project, set up classpath variable for:
                //    ANTLR_HOME
                // these will point to the ANTLR plugins' 
                //   jars, respectively
                if (aProject.hasNature(JavaCore.NATURE_ID)) {
                    IJavaProject javaProject = JavaCore.create(aProject);
                    ArrayList<IClasspathEntry> rawClasspath = new ArrayList<IClasspathEntry>(
                            Arrays.asList(javaProject.getRawClasspath()));
                    boolean hasAntlrJar = false;
                    for (Iterator<IClasspathEntry> i = rawClasspath.iterator(); i.hasNext();) {
                        IClasspathEntry entry = i.next();
                        if (entry.getEntryKind() == IClasspathEntry.CPE_VARIABLE) {
                            String segment0 = entry.getPath().segment(0);
                            if (AntlrCorePlugin.ANTLR_HOME.equals(segment0)) {
                                hasAntlrJar = true;
                                break;
                            }
                        }
                    }
                    if (!hasAntlrJar)
                        rawClasspath.add(
                                JavaCore.newVariableEntry(new Path(AntlrCorePlugin.ANTLR_HOME + "/antlr.jar"),
                                        new Path(AntlrCorePlugin.ANTLR_HOME + "/antlrsrc.zip"), null));

                    if (!hasAntlrJar)
                        javaProject.setRawClasspath(
                                rawClasspath.toArray(new IClasspathEntry[rawClasspath.size()]), null);
                }
            }
        } catch (CoreException e) {
            AntlrCorePlugin.log(e);
        }
    }
}