apache / netbeans

Apache NetBeans
https://netbeans.apache.org/
Apache License 2.0
2.64k stars 849 forks source link

Added support for JSF 4.0 namespaces #6160

Closed asbachb closed 1 year ago

asbachb commented 1 year ago

Previously NetBeans bundles the JSF reference implementation Mojarra in order to provide several functionality (like namespaces) based on the parsed taglib xml files from that jar. This is somehow problematic as: 1) The dependency needs to be updated on every new JSF release 2) NetBeans needs to fulfil the expectations of Mojarra

This leads to the problem that we currently cannot update and bundle the latest Mojarra version as Java 11 is required.

This change wants to get less dependant on that bundled JSF implementation by resolving the reference implementation using maven. Instead of reading the taglib xml files from that bundled jar NetBeans now gets in from the local maven repository or downloads it from maven central. If this is not possible we fallback to the bundled version.

This change also improves the situation when autosuggestion is invoked in the namespace part of JSF xhtml documents by ordering the suggested namespace with the one on top which is most likely to be used.

matthiasblaesing commented 1 year ago

Looks sane to me, thanks. I'll try to have another look at this tomorrow, but if noone objects (@pepness, @juneau001, @jGauravGupta), and I don't hit another road block, I'll merge on sunday.

mbien commented 1 year ago

@asbachb small merge conflict to resolve if you have time (without github ui please)

LouisCollet commented 1 year ago

please let me know when and how to test this promising release Louis

morvael commented 1 year ago

I'm gonna buy you some coffees for that @asbachb, many thanks!

LouisCollet commented 1 year ago

JSF 4.0 now operational in NB 19 ! Many thanks to @asbachb a little detail : its does not detect the xmlns which are not used in the .xhtm file Have a nice day Louis

asbachb commented 1 year ago

I think the best would be to open up a new issue. I'm currently blocked with personal stuff so I won't be able to provide any more fixes for now.

11 Sept 2023 21:25:13 Louis Collet @.***>:

JSF 4.0 now operational in NB 19 ! Many thanks to @asbachb[https://github.com/asbachb] a little detail : its does not detect the xmlns which are not used in the .xhtm file Have a nice day Louis

— Reply to this email directly, view it on GitHub[https://github.com/apache/netbeans/pull/6160#issuecomment-1714453660], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AALKAEHDO7JINGJQLL7MSLLXZ5QRRANCNFSM6AAAAAA2BJDWDI]. You are receiving this because you were mentioned. [Tracking image][https://github.com/notifications/beacon/AALKAEGY6TNCR3BGJM6IZ23XZ5QRRA5CNFSM6AAAAAA2BJDWDKWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTGGB6JY.gif]

matthiasblaesing commented 4 months ago

I think this might be the cause for issues: #7449, #7436, #7354.

I can't reproduce the issues, but my gut feeling is, that maven embedder loading causes class loading with the wrong classloader. My idea would be to pull out the places that trigger potential class loading:

https://github.com/apache/netbeans/blob/b332b296700219ecd1d6ee6255124f3486171af3/enterprise/web.jsf.editor/src/org/netbeans/modules/web/jsf/editor/facelets/FaceletsLibrarySupport.java#L334-L361

out into _findLibraries right before the try-block that changes the context classloader.

Would you mind having a look?