OmniFaces Showcase (original) (raw)
What's new in OmniFaces 4.6?
Release date: 24 November, 2024
Added in OmniFaces 4.6
- c3c841f -Ajax has been split into
Ajax
andAjaxLocal
- #849 -Components has been split into
Components
andComponentsLocal
- #864 -<o:importConstants>: when importing an
enum
, you will now be able to useinstead of
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.FunctionalInterfaces
wherein the callback interfaces follow the same naming conventions as Java 8 ones - #867 -<o:socket> the close reason
GOING_AWAY
was previously suppressed in logging, but now it will be logged asFINE
Fixed in OmniFaces 4.6
- #862 - Fix
ClassNotFoundException
code> during startup when aweb.xml
entry representing a class contains a XML comment - #790 -FullAjaxExceptionHandler should not auto-register the FacesExceptionFilter when 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 FullAjaxExceptionHandler change in 4.5
What's new in OmniFaces 4.5?
Release date: 31 August, 2024
Added in OmniFaces 4.5
- #798 - Added Components#setAttribute() and Components#disableInput() utility methods
- #790 -FacesConfigXml#getExceptionHandlerFactories() helper method has been added to collect all so far declared exception handler factories
- #799 -PWAResourceHandler: added new
WebAppManifest#getScreenshots()
andWebAppManifest#getShortcuts()
properties as per changes in w3 spec - #633 - Added tags for all OmniFaces converters and validators; so e.g. omnifaces.SelectItemsConverter is 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 -@Param can 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 returnsnull
as default value instead ofANY
- #790 -FullAjaxExceptionHandler will now auto-register the FacesExceptionFilter so there's no need anymore to explicitly register it in
web.xml
- #821 -
GzipResponseFilter
has been renamed to CompressedResponseFilter and got additional support for Brotli and Deflate compression algorithms next to Gzip - #663 -Faces#hasSessionTimedOut() has been deprecated because the in 3.13 added
Faces#isRequestedSessionExpired()
does basically exactly the same
Fixed in OmniFaces 4.5
- #823 -@ViewScoped corner 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 @ViewScoped and <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 @ViewScoped and <o:cache> has been replaced by simpler LRU map implementation, theorg.omnifaces.util.cache.LruCache
, which should reduce the amount of unnecessaryAtomicReference
instances 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 new
loader
attribute where you can specify an object whose class loader will be used to load the class specified in thetype
attribute - #769 - New <o:loadBundle> tag which basically extends the
<f:loadBundle>
with a newloader
attribute where you can specify an object whose class loader will be used to load the bundle, and whoseLocale
will 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 threw
Unknown channel: undefined
because 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 -PWAResourceHandler can now also be triggered via
manifest.webmanifest
which will eventually become the default overmanifest.json
- #740 - Added Components#getRenderedValue() so that you can easily grab the to-be-rendered value of any
ValueHolder
component, particularly taking into account the internal state of anyUIInput
component, 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() and Components#invalidateInput() so that you can explicitly invalidate specific
UIInput
components by a relative client ID, e.g. when a specific DB constraint violation exception was thrown during a bean action - #761 - Added MessagesLocal so that you can reuse any existing
FacesContext
instance without the need to get it from theThreadLocal
again and again
Changed in OmniFaces 4.2
- #745 -
Utils#encodeURI()
, which is internally used by among others #{of:encodeURI()}, FacesViews, and FileServlet, 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 in
OmniFaces.ts
during 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 new
readonly
attribute, 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.js requests unnecessarily triggered creation, building and rendering of a second
UIViewRoot
of the associated view, including any view scoped beans - #728 -CombinedResourceHandler failed to resolve resources when
jakarta.faces.AUTOMATIC_EXTENSIONLESS_MAPPING
was enabled - #729 -@ViewScoped unload 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 with of: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
@Deprecated
have been physically removed, such as<o:form includeViewParams="true">
(has become the default behavior),WebXml.INSTANCE
andFacesConfigXML.INSTANCE
(replaced byWebXml.instance()
andFacesConfigXml.instance()
) and omnifaces:fixviewstate.js (replaced by JSF 2.3 native fix) - #{now} and #{startup} will now return an instance of
java.time.temporal.Temporal
instead ofjava.util.Date
; it still supports thetime
property as in#{now.time}
and#{startup.time}
; additionally, it's got two new convenience properties:instant
andzonedDateTime
as in#{now.instant}
,#{now.zonedDateTime}
,#{startup.instant}
and#{startup.zonedDateTime}
Callback
interfaces which dated from Java 1.7 and have replacements available in Java 1.8 are now@Deprecated
.Callback.Void
is replaced byRunnable
,Callback.Returning
is replaced bySupplier
,Callback.WithArgument
is replaced byConsumer
andCallback.ReturningWithArgument
is replaced byFunction
. Utility methods in Components and Events are 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-specific
faces.js
or the JSF 2.3-specificjsf.js
depending 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 as
SameSite:None
(NOTE: works currently only when using minimally Mojarra 4.0.0-M2 on top of minimally Servlet 6.0.0-M1)