JSF (or Jakarta Faces) 3.0 will be 1:1 the same as JSF 2.3, just with the jakarta.* package names.
In 2.3-next, we did BIG BIG cleanup of our codebase and build.
Wee also removed the old JSF EL (javax.faces.el.*) and @ManagedBean (javax.faces.bean.*) implementations.
What does this mean? The API (javax.faces.el.*) and (javax.faces.bean.*) is still there but the implementation of it has been removed partially. @ManagedBean's are now registered as CDI beans, which means that a CDI runtime is a required dependency now.
The biggest clenaup was that we merged back the "shared" and "shared-public" modules to myfaces-impl, as the shared modules are no longer used by other active projects under the MyFaces umbrella.
We also introduced some real integration tests with Arquillian, to test parts of the container integration and AJAX client side. This makes around 1600 unittests!
OK.... Lets compare some numbers!
JAR size:
Mojarra 2.3 | MyFaces 2.3 | MyFaces 2.3-next | |
---|---|---|---|
API |
1318 kb | 1043 kb | |
IMPL | 3495 kb (combined) | 2712 kb | 2384 kb |
Dependencies |
241 kb (beanutils) 141 kb (digester) |
||
TOTAL | 3495 kb | 4412 kb | 3427 kb |
Performance:
NOTE: this is not a full benchmark, it's only a single case to demonstrate the difference between MyFaces 2.3 and MyFaces 2.3-next, which was inspired from: https://www.oio.de/public/java/studie-jsf-mojarra-myfaces-performance-vergleich.htm
We have to rerun https://github.com/lu4242/performance-comparison-java-web-frameworks later for a real comparison between MyFaces and Mojarra.
Mojarra 2.3 | MyFaces 2.3 | MyFaces 2.3-next | |
---|---|---|---|
GET input.xhtml | Average: 67 ms | Average: 62 ms | Average: 43 ms |
POST input.xhtml | Average: 115 ms | Average: 122 ms | Average: 108 ms |
GET detail.xhtml | Average: 119 ms | Average: 124 ms | Average: 103 ms |
POST detail.xhtml | Average: 70 ms | Average: 54 ms | Average: 43 ms |
TOTAL | Average: 92 ms Throughput: 198.7/s |
Average: 91 ms Throughput: 209.8/sec |
Average: 74 ms Throughput: 264.2/sec |
This means that MyFaces 3.0 is up to ~15% faster as the already very fast MyFaces 2.3 in this case.
We also did some memory finetuning - i just don't have any numbers right now.
Looks good!
ReplyDeleteIs there a maven repo with a recent snapshot to give it a try?
DeleteNevermind, it's in https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-core-module/3.0.0-SNAPSHOT/
DeleteSorry and thanks
I couldn't start it in tomee (after adding javax.faces.bean package to make omnifaces happy), even adding the listener... I'll wait for the release
DeleteThats not a MyFaces problem probably. TomEE and also Omnifaces still makes use of the old packages, which are removed. It's expected that you can't easily use it in such a container.
DeleteHowever it will work fine on plain Tomcat and Jetty.
I'll try MyFaces 3.0,
ReplyDeleteNice Post Really Informative
ReplyDeleteBest App Development Companies
Best Mobile App Development Company
Educational Software Development Companies
Best mobile app development services
Custom application development company