Index: src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java =================================================================== --- src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java (revision 794086) +++ src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerConfiguration.java (working copy) @@ -621,8 +621,44 @@ String file = (String) iter.next(); InputStream is; Path p = new Path(file); - if (javaProject != null && !p.isAbsolute()) { + if (file.startsWith(PROJECT_SCHEME_PREFIX)) { + int pathIndex = file.indexOf("/", PROJECT_SCHEME_PREFIX_LENGTH); + String projectName = file.substring(PROJECT_SCHEME_PREFIX_LENGTH, pathIndex); + String path = file.substring(pathIndex + 1); + File propertyFile; + if (!"".equals(projectName)) { + IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember( + projectName); + if (resource == null) { + IvyDEException ex = new IvyDEException("Project '" + projectName + + "' not found", "The project name '" + projectName + + "' from '" + file + "' was not found", null); + setConfStatus(ex); + throw ex; + } + propertyFile = resource.getProject().getFile(path).getLocation().toFile(); + if (!propertyFile.exists()) { + IvyDEException ex = new IvyDEException("Ivy properties file not found", + "The Ivy properties file '" + path + + "' cannot be found in project '" + projectName + "'", + null); + setConfStatus(ex); + throw ex; + } + } else { + propertyFile = javaProject.getProject().getFile(path).getLocation() + .toFile(); + } try { + is = new FileInputStream(propertyFile); + } catch (FileNotFoundException e) { + IvyDEException ex = new IvyDEException("Property file not found", + "The property file '" + file + "' was not found", e); + setConfStatus(ex); + throw ex; + } + } else if (javaProject != null && !p.isAbsolute()) { + try { is = new FileInputStream(javaProject.getProject().getFile(file) .getFullPath().toFile()); } catch (FileNotFoundException e) {