eclipse-xtext / eclipse-xtext/xtext
Dynamic project references does not trigger a fuild rebuild
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 831
- Forks
- 330
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 12
Description
Hi,
In the case of a Dsl contained in an eclipse project with only xtext/pdePlugin natures and xtext/manifest builder, the content of the manifest is not taken into account when it changes.
I found the following workaround in WorkspaceProjectsState by overriding isAffectingContainerState.
private final Path manifestPath = new Path("META-INF/MANIFEST.MF");
@Override
protected boolean isAffectingContainerState(IResourceDelta delta) {
if (manifestPath.equals(delta.getProjectRelativePath())) {
// need to manually clear the CachedDynamicReferences
delta.getResource().getProject().clearCachedDynamicReferences();
final XtextBuilder builder = BuildManagerAccess.findBuilder(delta.getResource().getProject());
if (builder != null) {
//this will trigger a full rebuild of the index
builder.forgetLastBuiltState();
}
return true;
}
return super.isAffectingContainerState(delta);
}
More info on forum thread :
https://www.eclipse.org/forums/index.php/m/1836582/#msg_1836582
Yannick
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with WorkspaceProjectsState and its isAffectingContainerState method, then trace how XtextBuilder and BuildManagerAccess handle changes to META-INF/MANIFEST.MF. Compare the reported workaround with the existing build and dynamic-reference state handling; done means manifest changes trigger the needed full rebuild without project-specific overrides.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100