Closed philip-alldredge closed 6 years ago
@philip-alldredge FYI: Xtext logs which files are built in the Xtext console if it's open.
We will look at performance improvements in the scalability task.
I cannot reproduce this. I see the following, instead: Whenever a modified files (form projects P and Q, say) are saved, a workspace build is triggered. During the build of projects P and Q, the contributed AADL files are processed but not when other projects in the workspace are being built. This is not optimal. As the contributed files haven't changed, they should only be processed during a full build.
As long as I have the AADL file which references such a property open, it occurs anytime a file in an AADL project is changed. If the file is in a non-AADL project, the change notification does not occur.
I guess rebuilding of the open files happens because the the contributed property sets they depend on have been rebuilt. Turning off that build may solve the whole issue.
Agreed.
Summary
Xtext is rebuilding all open AADL resources which reference a contributed property set whenever any file in the workspace is changed. This was observed while debugging an issue with the graphical editor but the issue is not believed to be caused by the graphical editor.
With smaller workspaces, this is not likely to cause many issues. However, with larger workspaces, it can cause performance issues if many editors are open. It is troublesome for the graphical editor because moving a shape and saving results in rebuilding the Xtext resource.
Expected and Current Behavior
It is expected when a non-AADL resource changed in the workspace is changed, then it would not trigger any change to the AADL resources.
The current behavior is that when any change occurs in the workspace, document change notifications are sent for all AADL Xtext editors which have an Xtext document that references a contributed property set.
NOTE: Disabling the addition of contributed resources to "toBeBuilt" in PropertiesToBeBuiltComputerContribution causes the resource not to be built. Should there be a check to only build if the contributed resources have changed? Is such a change possible?
Steps to Reproduce
Even though it does not appear to be caused by the graphical editor, it is easier to notice with the graphical editor. However, is can also be noticed using the Progress view in OSATE.
Example AADL package.
Environment