jakartaee-api icon indicating copy to clipboard operation
jakartaee-api copied to clipboard

Improve build of API artifacts

Open lukasj opened this issue 3 years ago • 2 comments

Looking at how the API artifacts are built and what exactly they contain I see following issues:

  • web profile artifact transitively depends on xml.binding-api (see https://github.com/eclipse-ee4j/jstl-api/issues/149)
  • to compile web profile API, jakarta.faces implementation classes are required (see https://github.com/eclipse-ee4j/glassfish/issues/19861#issuecomment-421967474) - this may become a problem when/if one decides to put built API artifact on the module path for multiple reasons depending on particular command line configuration (ie non-exported package from implementation; split package problem)
  • to compile full profile API, jakarta.faces ~~and jakarta.mail~~ implementation classes are required
  • ~~xml.binding-api is multi-release jar file but versioned class is missing from the platform-api artifact~~
  • javadoc footer contains hardcoded 2018, 2020 copyright years - the latter should reflect the year when the javadoc is built (so for 9.1 release 2021 should have been there) - this can be automated ie through build-helper-maven-plugin:timestamp-property
  • OSGi headers are missing - not sure they are wanted/needed and/or required; projects being built by Eclipse Tycho may benefit from them

lukasj avatar Jul 09 '21 17:07 lukasj

Great ideas, @lukasj! Thanks! Some of them were known improvements, and some are easier said than done (ie. implementation class dependencies). If you (or anybody else) wants to take a shot at resolving any of these via a PR or two, I'd be very happy to help review and get them merged. Thanks!

kwsutter avatar Jul 14 '21 21:07 kwsutter

changes in mail are in progress already (see https://github.com/eclipse-ee4j/mail/projects/1)

@arjantijms can you help here by addressing issues in JSTL and Faces APIs?

the rest should not be difficult.

It would be nice if in the end EE 10 provides platform level javadoc looking like the one SE platform has, including the list of modules (with one tab for web profile, other for full profile and eventually also one for core profile...) - not sure we'll get there but it might be good to see the motivation behind these changes...

lukasj avatar Jul 14 '21 23:07 lukasj