Access JSF and Primefaces version numbers programmatically

后端 未结 4 441
不知归路
不知归路 2021-01-03 00:52

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

相关标签:
4条回答
  • 2021-01-03 01:25

    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.

    0 讨论(0)
  • 2021-01-03 01:29

    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()
    
    0 讨论(0)
  • 2021-01-03 01:32

    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
    
    0 讨论(0)
  • 2021-01-03 01:38

    For PrimeFaces, you can use the Constants class:

    org.primefaces.util.Constants.VERSION
    
    0 讨论(0)
提交回复
热议问题