Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 214758 - [api tooling] Incremental builder for Api tooling
Summary: [api tooling] Incremental builder for Api tooling
Status: VERIFIED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: API Tools (show other bugs)
Version: 3.4   Edit
Hardware: All All
: P2 normal (vote)
Target Milestone: 3.4 M6   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 218166 218571
  Show dependency tree
 
Reported: 2008-01-09 10:34 EST by Darin Wright CLA
Modified: 2008-04-04 19:16 EDT (History)
3 users (show)

See Also:


Attachments
Proposed fix (4.51 KB, patch)
2008-01-10 14:45 EST, Olivier Thomann CLA
no flags Details | Diff
updated patch (1.54 KB, application/octet-stream)
2008-01-10 18:50 EST, Michael Rennie CLA
no flags Details
patch for jdt.core (2.71 KB, patch)
2008-02-06 11:11 EST, Michael Rennie CLA
no flags Details | Diff
api tool builder patch (24.14 KB, patch)
2008-02-06 11:13 EST, Michael Rennie CLA
no flags Details | Diff
updated patch (25.00 KB, patch)
2008-02-06 13:44 EST, Michael Rennie CLA
no flags Details | Diff
updated (25.50 KB, patch)
2008-02-07 10:22 EST, Michael Rennie CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Darin Wright CLA 2008-01-09 10:34:04 EST
If the API description of some element changes (for exmaple, adding or removing a @noimplement tag to an interface), all dependant projects need to be re-analyzed by the builder.
Comment 1 Darin Wright CLA 2008-01-09 10:39:34 EST
This is similar to the Java builder. When a class changes, all dependants have to be re-compiled.
Comment 2 Olivier Thomann CLA 2008-01-10 14:45:09 EST
Created attachment 86595 [details]
Proposed fix

based on the way the java builder handles dependant projects.
Comment 3 Michael Rennie CLA 2008-01-10 18:50:04 EST
Created attachment 86626 [details]
updated patch

Example used for testsing:

1. get debug.core and jdt.debug.core from CVS and set them up as api projects.
2. open DebugElement and JDIDebugElement
3. add a noextend flag to the getAdapter method in DebugElement and save

expected:

the extended method in JDIDebugElement would be flagged as a usage error

happens:

nothing (although the error is flagged is you manually rebuild)

The patch does correctly provide the referencing projects to debug.core, but when the builder is invoked on jdt.debug.core the resource from the delta is only the project (which fails test to make sure we only run the builcder on source/class files); causing no work to be done building any part of jdt.debug.core.

We need to provide/derive more information in this type of case. We should investigate how the Java builder knows which class files to build in referencing projects.
Comment 4 Michael Rennie CLA 2008-02-06 11:11:03 EST
Created attachment 89019 [details]
patch for jdt.core

This patch is for jdt.core, for a few methods used internally for walking the reference collections.
Comment 5 Michael Rennie CLA 2008-02-06 11:13:49 EST
Created attachment 89020 [details]
api tool builder patch

This patch provides the changes to the api tool builder to accomodate the new incremental builder for structural/non-structural changes.
Comment 6 Michael Rennie CLA 2008-02-06 13:44:27 EST
Created attachment 89041 [details]
updated patch

This updated patch changes the way we derive class file names when trying to create scope elements for problem searching.
Comment 7 Michael Rennie CLA 2008-02-07 10:22:11 EST
Created attachment 89146 [details]
updated

This further updated patch correctly handles the case of multilple output locations, and removes some dead code.
Comment 8 Michael Rennie CLA 2008-02-11 16:56:25 EST
jdt patch has been applied.

applied newer version of patch which more accurately places markers with selections.
Comment 9 Michael Rennie CLA 2008-02-11 17:00:07 EST
please verify Olivier
Comment 10 Olivier Thomann CLA 2008-04-04 19:16:17 EDT
Verified.