Bug 198572

Summary: eclipse does not respect class-path manifest of external jars
Product: [Eclipse Project] JDT Reporter: benson margulies <bimargulies>
Component: CoreAssignee: Jerome Lanneluc <jerome_lanneluc>
Status: VERIFIED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: daniel_megert, darin.eclipse, loskutov, mario.rodrigues, maxime_daniel, Olivier_Thomann, philippe_mulet
Version: 3.2.2   
Target Milestone: 3.5 M3   
Hardware: PC   
OS: Windows XP   
See Also: https://bugs.eclipse.org/bugs/show_bug.cgi?id=97332
https://bugs.eclipse.org/bugs/show_bug.cgi?id=563819
Whiteboard:
Attachments:
Description Flags
Proposed fix and regression tests
none
Proposed fix and regression tests
none
Proposed fix and regression tests
none
Improved fix and same regression tests
none
Same fix and improved tests none

Description benson margulies CLA 2007-08-01 15:00:51 EDT
Build ID: Build id: M20070212-1330

Steps To Reproduce:
1. add an external jar to a classpath of a project where the jar has a manifest with a Class-Path:
2. Observe that Eclipse does not treat the jars listed on that classpath as part of the project's classpath.
3.


More information:

You might reclassify this as an enhancement, but I offer the thought that this makes it quite hard to import existing code that depends on the manifest classpath.
Comment 1 Maxime Daniel CLA 2007-08-02 04:46:22 EDT
We are investigating that with bug 97332, closing as duplicate.

*** This bug has been marked as a duplicate of bug 97332 ***
Comment 2 Maxime Daniel CLA 2008-05-05 03:16:50 EDT
Bug 97332 ended up addressing the batch compiler story only.
Reopening.
Comment 3 Mario Rodrigues CLA 2008-05-05 12:17:05 EDT
The problem I am having is that with Eclipse 3.3 (with WTP 2.0 and WebLogic 10.0), the compile time classpath cannot find the classes under BEA_HOME/modules even with weblogic.jar in the build path.  

This is because Eclipse seems to ignore the manifest file in weblogc.jar that has classpath entries to "BEA_HOME\modules\features\weblogic.server.modules_10.0.0.0.jar" …… which in turn has manifest entries that point to 60+ jars under the modules dir. 

As a large govt. agency that uses Eclipse extensively and has a standard Java/Eclipse desktop, this bug is now making us evaluate different options (such as using the WebLogic plugin, creating a domain template, including 50+ jars in the build path, etc.). We would really appreciate it if the priority on this bug could be elevated.
Comment 4 Philipe Mulet CLA 2008-05-05 12:34:49 EDT
It is too late for 3.4 as we have entered the final development stage.
Earliest would be targeting 3.5.
Comment 5 Philipe Mulet CLA 2008-09-10 06:58:55 EDT
M3 target for a solution based on multiple resolved pkg fragment roots from a JAR classpath entry. Note that it needs to apply to container entries too.
Comment 6 Jerome Lanneluc CLA 2008-10-07 09:26:17 EDT
Created attachment 114413 [details]
Proposed fix and regression tests
Comment 7 Jerome Lanneluc CLA 2008-10-07 09:31:14 EDT
Created attachment 114414 [details]
Proposed fix and regression tests

Retry since first attachment seems corrupt
Comment 8 Jerome Lanneluc CLA 2008-10-07 09:51:24 EDT
Created attachment 114417 [details]
Proposed fix and regression tests

Create patch was creating a corrupt file (see bug 249954)
Comment 9 Jerome Lanneluc CLA 2008-10-08 07:25:04 EDT
Created attachment 114534 [details]
Improved fix and same regression tests
Comment 10 Jerome Lanneluc CLA 2008-10-08 09:49:24 EDT
Created attachment 114548 [details]
Same fix and improved tests
Comment 11 Jerome Lanneluc CLA 2008-10-09 04:14:38 EDT
Fix and tests released for 3.5M3
Comment 12 Olivier Thomann CLA 2008-10-27 15:28:20 EDT
Verified for 3.5M3 using I20081026-2000.
Seems to work, but all entries are displayed using the entry of the original jar that contains the Class-Path: entry in the MANIFEST.MF file.
This makes it really difficult to know what jar corresponds to what entry in the Class-Path: directive.
Comment 13 Jerome Lanneluc CLA 2008-10-29 10:38:57 EDT
(In reply to comment #12)
> Seems to work, but all entries are displayed using the entry of the original
> jar that contains the Class-Path: entry in the MANIFEST.MF file.
> This makes it really difficult to know what jar corresponds to what entry in
> the Class-Path: directive.
See bug 252591