Lines 2473-2479
Link Here
|
2473 |
* Resolve the given raw classpath. |
2473 |
* Resolve the given raw classpath. |
2474 |
*/ |
2474 |
*/ |
2475 |
public IClasspathEntry[] resolveClasspath(IClasspathEntry[] rawClasspath) throws JavaModelException { |
2475 |
public IClasspathEntry[] resolveClasspath(IClasspathEntry[] rawClasspath) throws JavaModelException { |
2476 |
return resolveClasspath(rawClasspath, false/*don't use previous session*/).resolvedClasspath; |
2476 |
return resolveClasspath(rawClasspath, false/*don't use previous session*/, true/*resolve chained libraries*/).resolvedClasspath; |
2477 |
} |
2477 |
} |
2478 |
|
2478 |
|
2479 |
class ResolvedClasspath { |
2479 |
class ResolvedClasspath { |
Lines 2483-2489
Link Here
|
2483 |
Map rootPathToResolvedEntries = new HashMap(); |
2483 |
Map rootPathToResolvedEntries = new HashMap(); |
2484 |
} |
2484 |
} |
2485 |
|
2485 |
|
2486 |
private ResolvedClasspath resolveClasspath(IClasspathEntry[] rawClasspath, boolean usePreviousSession) throws JavaModelException { |
2486 |
public ResolvedClasspath resolveClasspath(IClasspathEntry[] rawClasspath, boolean usePreviousSession, boolean resolveChainedLibraries) throws JavaModelException { |
2487 |
JavaModelManager manager = JavaModelManager.getJavaModelManager(); |
2487 |
JavaModelManager manager = JavaModelManager.getJavaModelManager(); |
2488 |
ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); |
2488 |
ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); |
2489 |
ResolvedClasspath result = new ResolvedClasspath(); |
2489 |
ResolvedClasspath result = new ResolvedClasspath(); |
Lines 2509-2515
Link Here
|
2509 |
if (resolvedEntry == null) { |
2509 |
if (resolvedEntry == null) { |
2510 |
result.unresolvedEntryStatus = new JavaModelStatus(IJavaModelStatusConstants.CP_VARIABLE_PATH_UNBOUND, this, rawEntry.getPath()); |
2510 |
result.unresolvedEntryStatus = new JavaModelStatus(IJavaModelStatusConstants.CP_VARIABLE_PATH_UNBOUND, this, rawEntry.getPath()); |
2511 |
} else { |
2511 |
} else { |
2512 |
if (resolvedEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { |
2512 |
if (resolveChainedLibraries && resolvedEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { |
2513 |
// resolve Class-Path: in manifest |
2513 |
// resolve Class-Path: in manifest |
2514 |
ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries(); |
2514 |
ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries(); |
2515 |
for (int j = 0, length2 = extraEntries.length; j < length2; j++) { |
2515 |
for (int j = 0, length2 = extraEntries.length; j < length2; j++) { |
Lines 2551-2560
Link Here
|
2551 |
// resolve ".." in library path |
2551 |
// resolve ".." in library path |
2552 |
cEntry = cEntry.resolvedDotDot(); |
2552 |
cEntry = cEntry.resolvedDotDot(); |
2553 |
|
2553 |
|
2554 |
// resolve Class-Path: in manifest |
2554 |
if (resolveChainedLibraries) { |
2555 |
ClasspathEntry[] extraEntries = cEntry.resolvedChainedLibraries(); |
2555 |
// resolve Class-Path: in manifest |
2556 |
for (int k = 0, length2 = extraEntries.length; k < length2; k++) { |
2556 |
ClasspathEntry[] extraEntries = cEntry.resolvedChainedLibraries(); |
2557 |
addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager); |
2557 |
for (int k = 0, length2 = extraEntries.length; k < length2; k++) { |
|
|
2558 |
addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager); |
2559 |
} |
2558 |
} |
2560 |
} |
2559 |
} |
2561 |
} |
2560 |
addToResult(rawEntry, cEntry, result, resolvedEntries, externalFoldersManager); |
2562 |
addToResult(rawEntry, cEntry, result, resolvedEntries, externalFoldersManager); |
Lines 2565-2574
Link Here
|
2565 |
// resolve ".." in library path |
2567 |
// resolve ".." in library path |
2566 |
resolvedEntry = ((ClasspathEntry) rawEntry).resolvedDotDot(); |
2568 |
resolvedEntry = ((ClasspathEntry) rawEntry).resolvedDotDot(); |
2567 |
|
2569 |
|
2568 |
// resolve Class-Path: in manifest |
2570 |
if (resolveChainedLibraries) { |
2569 |
ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries(); |
2571 |
// resolve Class-Path: in manifest |
2570 |
for (int k = 0, length2 = extraEntries.length; k < length2; k++) { |
2572 |
ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries(); |
2571 |
addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager); |
2573 |
for (int k = 0, length2 = extraEntries.length; k < length2; k++) { |
|
|
2574 |
addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager); |
2575 |
} |
2572 |
} |
2576 |
} |
2573 |
|
2577 |
|
2574 |
addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager); |
2578 |
addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager); |
Lines 2618-2624
Link Here
|
2618 |
timeStamp = perProjectInfo.rawTimeStamp; |
2622 |
timeStamp = perProjectInfo.rawTimeStamp; |
2619 |
} |
2623 |
} |
2620 |
|
2624 |
|
2621 |
ResolvedClasspath result = resolveClasspath(rawClasspath, usePreviousSession); |
2625 |
ResolvedClasspath result = resolveClasspath(rawClasspath, usePreviousSession, true/*resolve chained libraries*/); |
2622 |
|
2626 |
|
2623 |
if (CP_RESOLUTION_BP_LISTENERS != null) |
2627 |
if (CP_RESOLUTION_BP_LISTENERS != null) |
2624 |
breakpoint(2, this); |
2628 |
breakpoint(2, this); |