2013-08-21 5 views
6

Ich benutze PrimeFaces 3.5.x und Mojarra JSF 2.1.x Ich möchte auf die Versionen beider Bibliotheken programmgesteuert zugreifen und anzeigen.JSF und Primefaces Versionsnummern programmgesteuert zugreifen

Ich benutze die Versionen als maven2 Eigenschaften, aber ich hoffe, es gibt einen einfacheren Weg, um die Versionen zu erhalten. Ich hoffe, wie etwas zu finden:

Primeface.getVersion(); 
FacesContext.getCurrentInstance(); 

Ein JavaScript-basierte Lösung auch in Ordnung wäre, da ich nur die Version auf einer Statusseite angezeigt werden soll.

Antwort

8

Für 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(); 

Für Primefaces 3.x können Sie die Constants Klasse in utils-Paket verwenden:

import org.primefaces.util.Constants; 

Constants.VERSION 
+0

Danke. Für JSF gibt Ihre Lösung nur "2.1" zurück. Um auch die Nebenversion zu erhalten, habe ich folgendes gefunden: Package.getPackage ("com.sun.faces"). GetImplementationVersion() gibt "2.1.25" zurück. – alfonx

+0

Ich habe die Antwort aktualisiert, um das zu spezifizieren. Danke vielmals! –

+0

Wie in der Antwort von @Cagatay erwähnt, wurde diese Konstante in der Version 4.0 von Primefaces entfernt. – mrswadge

3

Für PrimeFaces, können Sie die Constants Klasse verwenden:

org.primefaces.util.Constants.VERSION 
+0

Wie in der Antwort von @Cagatay erwähnt, wurde diese Konstante in der Version 4.0 von Primefaces entfernt. – mrswadge

14

In P rimeFaces 4.0, Constants.VERSION wird zugunsten von entfernt;

RequestContext.getCurrentInstance().getApplicationContext().getConfig().getBuildVersion(); 

Achten Sie auch auf FacesContext.class.getPackage().getImplementationVersion();, es nicht auf einige App-Servern wie Websphere funktioniert.