In a 2.6.* release we will standardize Grouper utility classes
- Example classes: GrouperUtil, SubjectUtils, GrouperUtilElSafe, etc
- Make sure this assumption is valid: only Grouper admins are writing JEXLs and scripts which use utility classes
- Consolidate logic so that
- Any utility method which can live in GrouperClientUtils has logic moved there
- Any utility method which cannot live in GrouperClientUtils (due to class dependencies) has logic moved to GrouperUtil
- No method signatures change (so compiled code still works). i.e. if a method exists, deprecate and delegate to GrouperUtil or GrouperClientUtils
- Deprecate methods not in GrouperClientUtils and GrouperUtil. Deprecate utility classes not GrouperClientUtils and GrouperUtil
- GrouperUtil will inherit from GrouperClientUtils
- "grouperUtil" will be in any Grouper (non-client) jexl as GrouperUtil and "grouperClientUtils" will be in any client jexl by default
- All GrouperClientUtils methods will have wrapper methods in GrouperUtil so there is one easy Javadoc to refer to
- The first part of a util method name should organize the namespace, e.g. "batch" in "batchNumberOfBatches()" is for batching methods, "ldap" in "ldapEscapeRdn()" is for ldap methods, etc