LPS-45041 Creates a new taglib for compare versions
LPS-45041 Apply taglib to wiki
LPS-45041 Adds support for compare versions in articles
LPS-45041 SF
LPS-45041 SF
LPS-45041 SF - move logic to Java class
LPS-45041 SF - move logic to Java class
LPS-45041 SF
LPS-45041 Match WikiUtil#getWikiPageVersionsInfo
LPS-45041 Uses a new object instead of a Tuple for diffVersions
LPS-45041 SF
LPS-45041 Rename version-comparator to diff-version-comparator
 LPS-45041 Uses a new object instead of an Object[]
LPS-45041 SF
LPS-45041 Auto SF
LPS-45041 Forgot to update this
LPS-45041 SF
LPS-45353 Possible socket leaking in cache bootstrap
LPS-45262 Optimize LanguageImpl, don't use ResourceBundle to fetch values, unless it is a real user input one. Faking LanguageResources as resourceBundle is just adding unnecessary complexity and overhead.
LPS-45262 AggregateResourceBundle breaks jdk apis. 1) Enumeration is an one time only object, it can be not cached for reuse. 2) handleGetObject() requires to not throw exception on missing value, it is its invoker getObject()'s job to throw the exceptionLPS-45262 AggregateResourceBundle breaks jdk apis. 1) Enumeration is an one time only object, it can be not cached for reuse. 2) handleGetObject() requires to not throw exception on missing value, it is its invoker getObject()'s job to throw the exception..