List of usage examples for org.eclipse.jdt.core IClasspathEntry getPath
IPath getPath();
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); } } }