ao-servlet-util-5.4.0-SNAPSHOT
Snapshot Notes
- Minimum Java version changed from 1.8 to 11.
ao-servlet-util-5.3.0
Release Notes
- Log FINE-level notice when Includer does not send redirect or send error due to the response already being committed.
- Functional
identity()now declare throwsRuntimeExceptioninstead ofThrowable. - Moved
resolveValuefrom AO Taglib to AO Servlet Util.
ao-servlet-util-5.2.1
Release Notes
- Includer will not send redirect or send error when the response has already been committed. Page processing is still stopped by SkipPageException.
ao-servlet-util-5.2.0
Release Notes
- Updated dependencies.
- New interface
NoClosealong with staticwrap(…)methods to avoid duplicate wrapping. - Removed dependency on
org.apache.commons:commons-lang3.
ao-servlet-util-5.1.0
Release Notes
-
New functional interfaces that may throw
ServletException,IOException, and (optionally) an arbitrary tertiary exception:ServletBiConsumerServletBiConsumerEServletConsumerServletConsumerEServletFunctionServletFunctionEServletPredicateServletPredicateEServletRunnableServletRunnableEServletSupplierServletSupplierE
-
New functional interfaces that may throw
JspException,IOException, and (optionally) an arbitrary tertiary exception:JspBiConsumerJspBiConsumerEJspConsumerJspConsumerEJspFunctionJspFunctionEJspPredicateJspPredicateEJspRunnableJspRunnableEJspSupplierJspSupplierE
ao-servlet-util-5.0.1
Release Notes
- Cleaning-up ThreadLocal variables when no longer used, see https://rules.sonarsource.com/java/RSPEC-5164.
ao-servlet-util-5.0.0
Release Notes
-
New classes
AttributeEE,ContextEE, andScopeEEfor accessing servlet APIs attributes by scope, context, and name.- Breaking change:
Dispatcher.ARG_REQUEST_ATTRIBUTEis now an instance ofScopeEE.Request.Attributeinstead ofString. -
API supports arriving at an attribute in any order, such as
scope → context → nameorname → context. - API provides generic type safety (assumes casts will be OK behind the scenes, which is acceptable when all access to attributes is through this API).
-
Also provides additional functional-friendly methods similar to those in
Map, such ascomputeIfAbsent. - There is also a set of static utility methods, to which the rest of the API ends up calling. For one-off attribute access, these static methods may be more succinct.
- Breaking change:
ao-servlet-util-4.0.0
Release Notes
- Updated to Java™ EE 7 Web Profile (Servlet 3.1, JSP 2.3, EL 3.0, and JSTL 1.2).
-
Now supports Java 9+ modules. Due to still having filename-based automatic module dependencies,
*-SNAPSHOT versions include
module-info.classwhile releases include theAutomatic-Module-Namemanifest entry. To minimize the difference between these modes,module-info.javadoes not perform any transitive requires. - Maven artifact relocated from
com.aoindustries:ao-servlet-utiltocom.aoapps:ao-servlet-util. - Packages renamed from
com.aoindustries.servlet.*tocom.aoapps.servlet.*.
ao-servlet-util-3.5.1
Release Notes
- Updated dependencies.
ao-servlet-util-3.5.0
Release Notes
Coercionmoved out of AO Encoding:- Non-localized parts moved to AO Lang.
-
Localized parts moved to AO Hodgepodge and
renamed to
MarkupCoercion. - New pluggable
CoercionOptimizerto allow this decoupling. - Servlet-specific optimizations moved to this project.
ao-servlet-util-3.4.0
Release Notes
JspTagUtilsnow supports throwing any localized exceptions types using the newLocalizedSupplier.
ao-servlet-util-3.3.1
Release Notes
-
Now implementing
ServletUtil.SKIP_PAGE_EXCEPTIONas a private inner class with a detailed message. Previously, an uncaught instance ofSKIP_PAGE_EXCEPTIONwould produce the rather short, cryptic error message:com.aoindustries.servlet.ServletUtil$1 at com.aoindustries.servlet.ServletUtil.<clinit>(ServletUtil.java:49)
ao-servlet-util-3.3.0
Release Notes
-
New method
HttpServletUtil.getSubmittedFileName(Part), which fills in the gap in Java EE 6. Applications that are Java EE 7 should usePart.getSubmittedFileName()directly.
ao-servlet-util-3.2.0
Release Notes
- Updated dependencies.
ao-servlet-util-3.1.0
Release Notes
-
Split development-only classes into a new sub-project in
devel/. This sub-project is used only for development and is never deployed to artifact repositories.
ao-servlet-util-3.0.0
Release Notes
JspTagUtils.findAncestor(…)now returnsOptional<T>, allowing for parent to not be found.-
New methods
JspTagUtils.requireAncestor(…)that throw an exception when the parent is not found. -
Changed parameter order in
HttpServletUtil.getAbsoluteURL(…)to better match the order they are used in the generated URL.
ao-servlet-util-2.2.1
Release Notes
- Renamed
JavaeeWebSetStackTraceInitializertoJavaeeWebSurrogateFactoryInitializer.
ao-servlet-util-2.2.0
Release Notes
- Updated dependencies.
Now registering exception types for use with
Throwables.newSurrogate(…)that supports creating new instances of throwables in order to have caller stack trace. When wrapped, the original throwable is the cause of the new throwable. When not wrapped, the original throwable is used directly and caller stack trace is lost.This is used to maintain exception types and states across thread boundaries, such as when an exception cause is obtained from an
ExecutionException.
ao-servlet-util-2.1.0
Release Notes
- Improved platform compatibility by falling back to RequestDispatcher.FORWARD_SERVLET_PATH and RequestDispatcher.INCLUDE_SERVLET_PATH where appropriate.
ao-servlet-util-2.0.0
Release Notes
- Minimum Java version changed from 1.7 to 1.8.
-
Reduced use of property substitutions in
pom.xml. This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions. -
Consolidated
writeWithMarkup(…)methods intoCoercionclass directly. - Optimized ServletContext attribute initialization and concurrency.
ao-servlet-util-1.1.0
Release Notes
-
Added Cache-Control
header to LastModifiedServlet.
Defaults to a short-term setting of public, five-minute, and allowing stale.
This will help performance when
*.cssfiles are accessed directly (URLs not rewritten withlastModified=…parameter).
ao-servlet-util-1.0.0
Release Notes
- Pulled Servlet and JSP related utilities out of AO Hodgepodge.
- Split HTTP-specific parts of ServletUtil into HttpServletUtil.
- Added variants of
HttpServletUtil.getAbsoluteURL(…)that allow not adding context path. - Cookie names, values, comments, and paths are now URI-encoded.
HttpServletUtil.getContextRequestUri()now percent-encodes result ofHttpServletRequest.getContextPath()because it sometimes comes back percent encoded, but is usually decoded.- Absolute URLs are now generated in RFC 3986 URI US-ASCII format, even when the context path has Unicode characters.
- Absolute URLs are generated first, then passed to response URL encoding.
HttpServletUtil.sendRedirect(…)now converts location to RFC 3986 URI US-ASCII format.- Added Canonical URL support:
- New class Canonical that coordinates when canonical URLs should be generated during response URL rewriting (such as not adding per-user information when cookies are disabled). These canonical URLs, without per-user settings, are used for things like Canonical URLs, BreadcrumbList, and Sitemaps.
- HttpServletUtil
updated with new
canonicalparameters. - When in auto mode, last modified stamping is not performed on Canonical URLs.
- Now adding last modified parameter to
*.jnlp,*.tld, and*.xsdfiles, too. - HttpServletUtil cleaned-up significantly, with more consistent method names and more uniform method overloads.
- Improved LastModifiedServlet
Unicode support:
- Parser supports both US-ASCII-encoded and Unicode URLs (or any mixture)
- Parser supports fragments on URLs
- Now properly decodes path components