What's new in OmniFaces?
What's new in OmniFaces 4.6.5?
Release date: 8 June, 2025
Fixed in OmniFaces 4.6.5
What's new in OmniFaces 4.6.4?
Release date: 3 June, 2025
Fixed in OmniFaces 4.6.4
What's new in OmniFaces 4.6.3?
Release date: 1 June, 2025
Fixed in OmniFaces 4.6.3
What's new in OmniFaces 4.6.2?
Release date: 26 April, 2025
Changed in OmniFaces 4.6.2
-
#885 -
Faces(Local)#getBundleString()now accepts varargs withMessageFormatparams
Fixed in OmniFaces 4.6.2
-
#891 -
PWA's
sw.jswon't anymore check external resources such as Google Analytics as that would otherwise result in potential CORS errors for nothing -
#892 -
@Paramthrew since 4.6ClassCastExceptionwhen converter ID was used instead of converter class (worked in 4.5.1 and before) - Remaining fixes are same as in 3.14.8
What's new in OmniFaces 4.6.1?
Release date: 8 February, 2025
Fixed in OmniFaces 4.6.1
-
#887 -
@ViewScopedimproved fix of issue 823 of 4.5 release
What's new in OmniFaces 4.6?
Release date: 24 November, 2024
Added in OmniFaces 4.6
-
c3c841f -
Ajaxhas been split intoAjaxandAjaxLocal -
#849 -
Componentshas been split intoComponentsandComponentsLocal -
#864 -
<o:importConstants>: when importing anenum, you will now be able to use#{EnumClass.members()}instead of#{EnumClass.values()}in case you wish to exclusively access enum members rather than all constant field values
Changed in OmniFaces 4.6
-
02f87b9 -
org.omnifaces.util.Callback(originally designed for Java 1.7!) has been deprecated in favor of theorg.omnifaces.util.FunctionalInterfaceswherein the callback interfaces follow the same naming conventions as Java 8 ones -
#867 -
<o:socket>the close reasonGOING_AWAYwas previously suppressed in logging, but now it will be logged asFINE
Fixed in OmniFaces 4.6
-
#862 -
Fix
ClassNotFoundExceptioncode> during startup when aweb.xmlentry representing a class contains a XML comment -
#790 -
FullAjaxExceptionHandlershould not auto-register theFacesExceptionFilterwhen a custom one is already registered - Remaining fixes are same as in 3.14.7
What's new in OmniFaces 4.5.1?
Release date: 2 September, 2024
Fixed in OmniFaces 4.5.1
-
#831 -
Deployment failed in Quarkus due to
FullAjaxExceptionHandlerchange in 4.5
What's new in OmniFaces 4.5?
Release date: 31 August, 2024
Added in OmniFaces 4.5
-
#798 -
Added
Components#setAttribute()andComponents#disableInput()utility methods -
#790 -
FacesConfigXml#getExceptionHandlerFactories()helper method has been added to collect all so far declared exception handler factories -
#799 -
PWAResourceHandler: added newWebAppManifest#getScreenshots()andWebAppManifest#getShortcuts()properties as per changes in w3 spec -
#633 -
Added tags for all OmniFaces converters and validators; so e.g.
omnifaces.SelectItemsConverteris now also available as<o:selectItemsConverter> -
#797 -
<o:criticalStylesheet>which extends the standard<h:outputStylesheet>with default rendering of<link rel="preload" as="style">attributes which automatically torel="stylesheet"during window load event and is automatically moved to very top of the head and is also treated separately from default CSS resources when usingCombinedResourceHandler -
#822 -
<o:link>which extends the standard<h:link>and allows including the request query string parameters of the current URL into the link's target URL -
#824 -
@Paramcan now be instructed to set any faces message as a global message via the new attribute@Param(globalMessage=true)
Changed in OmniFaces 4.5
-
#814 -
PWAResourceHandler:WebAppManifest#getOrientation()now returnsnullas default value instead ofANY -
#790 -
FullAjaxExceptionHandlerwill now auto-register theFacesExceptionFilterso there's no need anymore to explicitly register it inweb.xml -
#821 -
GzipResponseFilterhas been renamed toCompressedResponseFilterand got additional support for Brotli and Deflate compression algorithms next to Gzip -
#663 -
Faces#hasSessionTimedOut()has been deprecated because the in 3.13 addedFaces#isRequestedSessionExpired()does basically exactly the same
Fixed in OmniFaces 4.5
-
#823 -
@ViewScopedcorner case threadsafety bug has been fixed (won't happen in normal production environment with standard web browsers, but only in unit test environment when bean is programmatically accessed by parallel threads) - Remaining fixes are same as in 3.14.6
What's new in OmniFaces 4.4.1?
Release date: 5 May, 2024
Fixed in OmniFaces 4.4.1
-
#803 -
The in 4.4 introduced
LruCache, used by@ViewScopedand<o:cache>, threw NPE when server is restarted with session persistence
What's new in OmniFaces 4.4?
Release date: 14 April, 2024
Added in OmniFaces 4.4
-
#787 -
Added
Components#createComponent()utility methods to reduce boilerplate when creating components
Changed in OmniFaces 4.4
-
#792 -
The repackaged
ConcurrentLinkedHashMap, used by@ViewScopedand<o:cache>has been replaced by simpler LRU map implementation, theorg.omnifaces.util.cache.LruCache, which should reduce the amount of unnecessaryAtomicReferenceinstances in heap
Fixed in OmniFaces 4.4
What's new in OmniFaces 4.3?
Release date: 23 September, 2023
Added in OmniFaces 4.3
-
#769 -
<o:importConstants>and<o:importFunctions>got a newloaderattribute where you can specify an object whose class loader will be used to load the class specified in thetypeattribute -
#769 -
New
<o:loadBundle>tag which basically extends the<f:loadBundle>with a newloaderattribute where you can specify an object whose class loader will be used to load the bundle, and whoseLocalewill be obtained with better default values than the default Faces implementation -
#772 -
Added
Faces(Local)#isAuthenticated()which checks if the current request has a remote user
Fixed in OmniFaces 4.3
-
#774 -
<o:socket>failed to reconnect when connection is lost since 4.0 and threwUnknown channel: undefinedbecause the JS -> TS migration was not done right inPush.ts - Remaining fixes are same as in 3.14.4
What's new in OmniFaces 4.2?
Release date: 24 June, 2023
Added in OmniFaces 4.2
-
#736 -
PWAResourceHandlercan now also be triggered viamanifest.webmanifestwhich will eventually become the default overmanifest.json -
#740 -
Added
Components#getRenderedValue()so that you can easily grab the to-be-rendered value of anyValueHoldercomponent, particularly taking into account the internal state of anyUIInputcomponent, without the need to do all the checks if there's a submitted value or a local value or a converter etc -
#748 -
Added
Components#invalidateInputs()andComponents#invalidateInput()so that you can explicitly invalidate specificUIInputcomponents by a relative client ID, e.g. when a specific DB constraint violation exception was thrown during a bean action -
#761 -
Added
MessagesLocalso that you can reuse any existingFacesContextinstance without the need to get it from theThreadLocalagain and again
Changed in OmniFaces 4.2
-
#745 -
Utils#encodeURI(), which is internally used by among others#{of:encodeURI()},FacesViews, andFileServlet, now uses RFC 3986 instead of RFC 2396 - Remaining changes are same as in 3.14.3
Fixed in OmniFaces 4.2
-
#755 -
<o:highlight>accidentally stopped working since 4.0 because it was overlooked inOmniFaces.tsduring the JS -> TS migration - Remaining fixes are same as in 3.14.3
What's new in OmniFaces 4.1?
Release date: 26 February, 2023
Added in OmniFaces 4.1
-
#730 -
<o:inputHidden>has now a newreadonlyattribute, this will basically set the model value as submitted value during the decode and then run all the validators, but it won't update the model, this is very useful when you'd like to block the form submit by a validation error based on a server-controlled model value
Fixed in OmniFaces 4.1
-
#707 -
sw.jsrequests unnecessarily triggered creation, building and rendering of a secondUIViewRootof the associated view, including any view scoped beans -
#728 -
CombinedResourceHandlerfailed to resolve resources whenjakarta.faces.AUTOMATIC_EXTENSIONLESS_MAPPINGwas enabled -
#729 -
@ViewScopedunload unnecessarily threw an exception in MyFaces 4.x due to impl changes in their side - Remaining fixes are same as in 3.14.2
What's new in OmniFaces 4.0.1?
Release date: 21 November, 2022
Fixed in OmniFaces 4.0.1
-
#715 -
#{now}and#{startup}weren't compatible withof:xxx()date functions - Remaining fixes are same as in 3.14.1
What's new in OmniFaces 4.0?
Release date: 2 October, 2022
Major in OmniFaces 4.0
- Minimum dependencies are changed from Java 1.8, JSF 2.3, EL 3.0, Servlet 3.1, CDI 2.0, WS 1.1 and BV 2.0 to Java 11, Faces 3.0, EL 4.0, Servlet 5.0, CDI 3.0, WS 2.0 and BV 3.0;
as of now, OmniFaces 4.0 is NOT backwards compatible with previous versions of these dependencies because of the compiler-incompatible rename of the
javax.*package tojakarta.*package. - All things which were during 3.x
@Deprecatedhave been physically removed, such as<o:form includeViewParams="true">(has become the default behavior),WebXml.INSTANCEandFacesConfigXML.INSTANCE(replaced byWebXml.instance()andFacesConfigXml.instance()) andomnifaces:fixviewstate.js(replaced by JSF 2.3 native fix) #{now}and#{startup}will now return an instance ofjava.time.temporal.Temporalinstead ofjava.util.Date; it still supports thetimeproperty as in#{now.time}and#{startup.time}; additionally, it's got two new convenience properties:instantandzonedDateTimeas in#{now.instant},#{now.zonedDateTime},#{startup.instant}and#{startup.zonedDateTime}Callbackinterfaces which dated from Java 1.7 and have replacements available in Java 1.8 are now@Deprecated.Callback.Voidis replaced byRunnable,Callback.Returningis replaced bySupplier,Callback.WithArgumentis replaced byConsumerandCallback.ReturningWithArgumentis replaced byFunction. Utility methods inComponentsandEventsare have been adjusted.
OmniFaces 4.0 is basically the Jakartified version of OmniFaces 3.14 with the following changes:
Added in OmniFaces 4.0
-
#648 -
Components#addFacesScriptResource()which allows the component developer to automatically include either the Faces 4.0-specificfaces.jsor the JSF 2.3-specificjsf.jsdepending on whether the former is available as a resource in the current deployment -
#655 -
Faces#addResponseCookie()got a new overload which allows adding custom attributes to the cookie such asSameSite:None(NOTE: works currently only when using minimally Mojarra 4.0.0-M2 on top of minimally Servlet 6.0.0-M1)