Recently I was asked to solve a WCM dynamic Template problem which involved listing articles using the business logic of the template.
One of the first problems I encountered was of course doing a search for the Articles via the
JournalArticleLocalService which, in the case of the searchs which return
List<JournalArticle>, require an
OrderByComparator. Since there is no way to directly instantiate classes in Velocity I wondered how I was going to handle this issue.
Luckily my colleague Thiago was working with a community member (Sabrina Schürhaus Locks) who had already solved the problem in a rather interesting and simple way:
#set ($obc = $portal.getClass().forName("com.liferay.portlet.journal.util.comparator.ArticleDisplayDateComparator").newInstance())
It's so simple I feel silly that I never thought of this myself.