Lines 6861-6865
Link Here
|
6861 |
deleteProject("P"); |
6861 |
deleteProject("P"); |
6862 |
} |
6862 |
} |
6863 |
} |
6863 |
} |
|
|
6864 |
/** |
6865 |
* @bug 324367: IJavaProject.findPackageFragmentRoots(IClasspathEntry cpe) returns empty list |
6866 |
* |
6867 |
* Test that exported classpath entries from the referenced project are included when invoked |
6868 |
* the API org.eclipse.jdt.core.IJavaProject.findPackageFragmentRoots(IClasspathEntry) |
6869 |
* |
6870 |
* @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=324367" |
6871 |
* @throws Exception |
6872 |
*/ |
6873 |
public void testBug324367() throws Exception { |
6874 |
try { |
6875 |
IJavaProject referencingProject = this.createJavaProject("ReferencingProject", new String[] {}, "bin"); |
6876 |
IJavaProject referencedProject = this.createJavaProject("ReferencedProject", new String[] {"src"}, "bin"); |
6877 |
|
6878 |
addLibrary(referencedProject, "lib.jar", null, new String[0], |
6879 |
new String[] { |
6880 |
"META-INF/MANIFEST.MF", |
6881 |
"Manifest-Version: 1.0\n", |
6882 |
}, |
6883 |
JavaCore.VERSION_1_4); |
6884 |
IClasspathEntry[] classpath = new IClasspathEntry[2]; |
6885 |
classpath[0] = JavaCore.newSourceEntry(new Path("/ReferencedProject/src"), new Path[0]); |
6886 |
classpath[1] = JavaCore.newLibraryEntry(new Path("/ReferencedProject/lib.jar"), null, null,true); |
6887 |
setClasspath(referencedProject, classpath); |
6888 |
classpath = new IClasspathEntry[1]; |
6889 |
classpath[0] = JavaCore.newProjectEntry(new Path("/ReferencedProject"), false); |
6890 |
setClasspath(referencingProject, classpath); |
6891 |
|
6892 |
IClasspathEntry referencedProjectCPE = null; |
6893 |
IClasspathEntry[] rawClasspath = referencingProject.getRawClasspath(); |
6894 |
for(int index = 0; index < rawClasspath.length; index++) { |
6895 |
IClasspathEntry cpe = rawClasspath[index]; |
6896 |
if (cpe.getPath().equals(referencedProject.getPath())) { |
6897 |
referencedProjectCPE = cpe; |
6898 |
break; |
6899 |
} |
6900 |
} |
6901 |
IResource resource = getWorkspaceRoot().getProject("ReferencedProject").getFile("lib.jar"); |
6902 |
assertTrue(referencingProject.isOnClasspath(resource)); |
6903 |
assertPackageFragmentRootsEqual(referencingProject.getAllPackageFragmentRoots(), |
6904 |
"/ReferencedProject/src\n" + |
6905 |
"/ReferencedProject/lib.jar"); |
6906 |
assertPackageFragmentRootsEqual(referencingProject.findPackageFragmentRoots(referencedProjectCPE), ""); |
6907 |
assertPackageFragmentRootsEqual(referencingProject.getPackageFragmentRoots(), ""); |
6908 |
assertPackageFragmentRootsEqual(referencingProject.getPackageFragmentRoots(referencedProjectCPE), ""); |
6909 |
} finally { |
6910 |
deleteProject("ReferencingProject"); |
6911 |
deleteProject("ReferencedProject"); |
6912 |
} |
6913 |
} |
6914 |
void assertPackageFragmentRootsEqual(IPackageFragmentRoot[] roots, String expected) { |
6915 |
String actual; |
6916 |
if (roots == null) { |
6917 |
actual = "<null>"; |
6918 |
} else { |
6919 |
StringBuffer buffer = new StringBuffer(); |
6920 |
int length = roots.length; |
6921 |
for (int i=0; i<length; i++) { |
6922 |
buffer.append(roots[i].getPath()); |
6923 |
if (i < length-1) |
6924 |
buffer.append('\n'); |
6925 |
} |
6926 |
actual = buffer.toString(); |
6927 |
} |
6928 |
if (!actual.equals(expected)) { |
6929 |
System.out.print(displayString(actual, 2)); |
6930 |
} |
6931 |
assertEquals(expected, actual); |
6932 |
} |
6864 |
|
6933 |
|
6865 |
} |
6934 |
} |