You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reconsider whether ECJ support is feasible. This was removed in #92 due to the development overhead for working around bugs in ECJ's JSR-199 compliance, but with some architectural changes in this library that have been added since that issue was closed, it may be feasible to consider supporting ECJ again.
Per eclipse-jdt/eclipse.jdt.core#1153, it appears ECJ will no longer support Java 11, meaning any changes needed to fix outstanding issues and bugs we are seeing will not be supported on Java 11 if/when they are considered.
For now, I am going to close this issue as not planned, along with the PR to implement ECJ support.
@ascopes Eclipse file manager is not the only one that has bizarre behavior. Gradle incremental does unusual things as well and coincidentally slightly similar has problems with modules: jstachio/jstachio#223 albeit not the same problem.
I have been meaning to try to use a framework such as yours on my project but because most of the bugs have been integration (Eclipse, Maven, Gradle, Intellij etc) I blackbox generate code to the filesystem (then check it in which is kind of messed up but those tests do not change much).
So far, we appear to be fully compatible with how maven-compiler-plugin exposes file management under javac.
ECJ has been a bit of a nightmare to integrate with as ECJ appears to have several issues regarding modules if you do not use their custom file manager implementation. I've spent several hours trying to find a workaround but in the end the only solution would be maintaining a fixed fork. Some of the issue as well is that ECJ doesn't consistently use the file manager interfaces, sometimes falling back to just using java.io.File directly, which is a fairly big issue as you lose the ability to control the file system being run on.
I haven't fully tested Gradle integration, but this is definitely something I'd like to see included in this library as a test pack.
Since file management in this library uses a scratch-written implementation, we have the ability to fully control exactly how it works and tune it to whatever is needed.
If there is anything missing that you think would be useful for clearing up some of those concerns you mentioned, I am more than happy to discuss it!
@agentgt just a small FYI. Eclipse have picked up the issues I've raised with them and are looking into the fixes required on their side. I've got a provisional branch up at GH-773 that plans to include ECJ in v5.0.0 of this library if we can get all tests passing. It is still not confirmed yet but just thought it was worth pinging you an update 🙂
Activity
[-]Reconsider ECJ support[/-][+]ECJ support[/+]ascopes commentedon Apr 30, 2023
Blocked by eclipse-jdt/eclipse.jdt.core#958 which prevents modules being detected for custom JavaFileManager objects
ascopes commentedon Jul 18, 2023
Per eclipse-jdt/eclipse.jdt.core#1153, it appears ECJ will no longer support Java 11, meaning any changes needed to fix outstanding issues and bugs we are seeing will not be supported on Java 11 if/when they are considered.
For now, I am going to close this issue as not planned, along with the PR to implement ECJ support.
[-]ECJ support[/-][+]Support the Eclipse Compiler[/+][-]Support the Eclipse Compiler[/-][+]Support the Eclipse Java Compiler[/+]agentgt commentedon Sep 5, 2023
@ascopes Eclipse file manager is not the only one that has bizarre behavior. Gradle incremental does unusual things as well and coincidentally slightly similar has problems with modules: jstachio/jstachio#223 albeit not the same problem.
I have been meaning to try to use a framework such as yours on my project but because most of the bugs have been integration (Eclipse, Maven, Gradle, Intellij etc) I blackbox generate code to the filesystem (then check it in which is kind of messed up but those tests do not change much).
ascopes commentedon Sep 6, 2023
@agentgt yeah, it is a bit of a pain point.
So far, we appear to be fully compatible with how maven-compiler-plugin exposes file management under javac.
ECJ has been a bit of a nightmare to integrate with as ECJ appears to have several issues regarding modules if you do not use their custom file manager implementation. I've spent several hours trying to find a workaround but in the end the only solution would be maintaining a fixed fork. Some of the issue as well is that ECJ doesn't consistently use the file manager interfaces, sometimes falling back to just using java.io.File directly, which is a fairly big issue as you lose the ability to control the file system being run on.
I haven't fully tested Gradle integration, but this is definitely something I'd like to see included in this library as a test pack.
Since file management in this library uses a scratch-written implementation, we have the ability to fully control exactly how it works and tune it to whatever is needed.
If there is anything missing that you think would be useful for clearing up some of those concerns you mentioned, I am more than happy to discuss it!
ascopes commentedon Dec 27, 2024
@agentgt just a small FYI. Eclipse have picked up the issues I've raised with them and are looking into the fixes required on their side. I've got a provisional branch up at GH-773 that plans to include ECJ in v5.0.0 of this library if we can get all tests passing. It is still not confirmed yet but just thought it was worth pinging you an update 🙂