The implementation of Functions has checks for null parameters that are redundant given coercion required by the Engine. As discussed on the mailing list, these checks can be removed. Functions should have JavaDoc. Some function implementations, such as replace, are now available in the JRE allowing this class to be simplified. Also usage of StringBuffer can be replaced with StringBuilder avoiding unneeded synchronization.
Created attachment 25711 [details] Patch to clean up Functions pom.xml also includes changes from attachment 25694 [details] for SetSupport
I was a bit concerned about substring's: - if (beginIndex >= input.length()) return ""; and substringAfter's: - if (substring.length() == 0) return input; However you have unit tests for both and they pass before the Functions.java change is applied and afterwards. Committed as r960814.