Community
Participate
Working Groups
One way PDE provides a sharable, dynamically adaptive classpath for plug-in projects is through the use of classpath containers. As people check out projects from CVS, import external plug-ins, delete projects, etc., the classpath of a workspace project is dynamically computed and hence always up- to-date. However, after the introduction of background autobuilding, even though the classpath does dynamically change, autobuild does not kick in. My conjecture (I love this word :-) is that autobuild does not kick in because the .classpath file does not change. Ironically, the fact that the .classpath file does not change is one of the attractive aspects of classpath containers. Doing the dynamic update in an IWorkspaceRunnable() does not help invoke autobuild in this scenario. A hack (which will be in Wednesday's I-build), as suggested by one John Arthorne, is to do a project.touch(monitor) on the projects for which we are updating the classpath, fooling autobuild into thinking that resources have changed. This certainly seems to work.
I will adopt this defect since it is rather an issue in JDT Core. The container support should trigger the touch in situations where a rebuild is necessary but no resource is touched. Similar issue with classpath variables.
Added project.touch(...) invocation inside the APIs for setting cp containers and variables (only on affected projects in case the new value is different from old one).
Fixed
Verified.