Bug 74372 - Import Project from buildfile adds all classpath entries as libraries
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/ProjectCreator.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/ProjectCreator.java
index 6b40859..fd49146 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/ProjectCreator.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/ProjectCreator.java
@@ -69,7 +69,11 @@
for (int i = 0; i < classpaths.length; i++) {
String cp = classpaths[i];
File classpathEntry= new File(cp);
- addLibrary(javaProject, new Path(classpathEntry.getAbsolutePath()));
+ if (classpathEntry.isFile()) {
+ addLibrary(javaProject, new Path(classpathEntry.getAbsolutePath()));
+ } else {
+ addContainer(javaProject, new Path(classpathEntry.getAbsolutePath()));
+ }
}
} catch (BuildException be) {
IStatus status= new Status(IStatus.ERROR, AntUIPlugin.PI_ANTUI, IStatus.OK, MessageFormat.format(DataTransferMessages.getString("ProjectCreator.0"), new String[]{be.getLocalizedMessage()}), null); //$NON-NLS-1$
@@ -172,18 +176,21 @@
private void addVariableEntry(IJavaProject jproject, IPath path, IPath sourceAttachPath, IPath sourceAttachRoot) throws JavaModelException {
IClasspathEntry cpe= JavaCore.newVariableEntry(path, sourceAttachPath, sourceAttachRoot);
addToClasspath(jproject, cpe);
- IPath resolvedPath= JavaCore.getResolvedVariablePath(path);
- if (resolvedPath != null) {
- jproject.getPackageFragmentRoot(resolvedPath.toString());
- }
}
/**
- * Adds a library entry with source attchment to a IJavaProject.
+ * Adds a library entry to an IJavaProject.
*/
private void addLibrary(IJavaProject jproject, IPath path) throws JavaModelException {
IClasspathEntry cpe= JavaCore.newLibraryEntry(path, null, null);
addToClasspath(jproject, cpe);
- jproject.getPackageFragmentRoot(path.toString());
+ }
+
+ /**
+ * Adds a container entry to an IJavaProject.
+ */
+ private void addContainer(IJavaProject jproject, IPath path) throws JavaModelException {
+ IClasspathEntry cpe= JavaCore.newContainerEntry(path);
+ addToClasspath(jproject, cpe);
}
}
\ No newline at end of file