If there is one single element or virtue of Jakarta Faces to which we can attribute its lasting for so long, it’s probably its ability to be extended in a large variety of ways. From the onset, Jakarta Faces made it possible to have most of its core elements replaced, decorated, or augmented.
This gave rise to a large number of extension libraries and projects. In the very early days, these were A4J (Ajax4JSF), Tomahawk, RichFaces, ...