The CookieBuilder maxAge is based on seconds as int, but the contributed default value is using the intermediate type org.apache.tapestry5.ioc.util.TimeInterval which allows for defining an interval as a String.
This makes setting the default quite readable, but CookieBuilder#setMaxAge itself accepts an int and doesn't mention that it's supposed to be seconds.
I propose the following changes:
- Clarify documentation of CookieBuilder#setMaxAge so it's obvious that it requires seconds
- Add #setMaxAge(java.time.Duration)
- Add TypeCoercion Duration -> TimeInterval, so the default value could be contributed as String or Duration, to ensure backward-compatibility.
- Fix the use of the symbol key in the CookieBuilder constructor to use SymbolConstants.COOKIE_MAX_AGE instead of the value