I use PrimeFaces 3.5.x and Mojarra JSF 2.1.x I would like to access and show the versions of both libraries programmatically.
I use the versions as maven2 properties
In PrimeFaces 4.0, Constants.VERSION is removed in favor of;
RequestContext.getCurrentInstance().getApplicationContext().getConfig().getBuildVersion();
Also watch out for FacesContext.class.getPackage().getImplementationVersion();
, it doesn't work on some app servers like websphere.
If you need to get the Version on runtime, there will not be any instance of RequestContext. Therefore you could use the ImplementationVersion of the package:
Package.getPackage("org.primefaces").getImplementationVersion()
If the package cannot be resolved, you can try to resolve the version via PrimeFaces class:
PrimeFaces.class.getPackage().getImplementationVersion()
For JSF:
//returns the major version (2.1)
FacesContext.class.getPackage().getImplementationVersion();
//returns the specification version (2.1)
Package.getPackage("com.sun.faces").getSpecificationVersion();
//returns the minor implementation version (2.1.x)
Package.getPackage("com.sun.faces").getImplementationVersion();
For Primefaces 3.x you can use the Constants class in utils package:
import org.primefaces.util.Constants;
Constants.VERSION
For PrimeFaces, you can use the Constants class:
org.primefaces.util.Constants.VERSION