eclipse-xtext / eclipse-xtext/xtext

Dynamic project references does not trigger a fuild rebuild

Open
#2,501 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.