Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Scope

user generated templates

...

User generated documents should use a template engine. Candidates to choose from include:

Server Side Engine

NameReflectionLastReleaseVersionLicenseComment 
StringTemplateyesJan 4, 20134.0.7Apache License 2.0  
FreemarkeryesFeb 29, 20122.3.19BSD-style license  
VelocityyesNov 29, 20101.7Apache License 2.0  
moustache.javayesMay 06, 20130.8.12Apache License 2.0Mustache.java is a Java 6 implementation of the mustache language used by Netflix and Twitter 
Thymeleafyes     
Jamon Dec 20, 20112.4.1Mozilla Public License  
Tea      
Xtend Jun 26, 20132.4.2Eclipse Public License  
Cambridge "upcoming"0.9 Mailinglist not active since Aug 01 2012 
MVEL Sep 18, 20122.1.3Apache License 2.0  

 

 

  • Velocity
    • the most well known one, but there is probably better / more up-to-date meanwhile
  • FreeMarker
    • may be the 2nd most well known one?
  • StringTemplate
  • Xtend Template Expressions 
    • I know it looks static / compile-time, but Michael should be able to put together an example using this in "interpreted" mode, if interested
    • very very strong static typing Eclipse tooling - but that's not our use case
  • Jamon
    • ?
  • Google Closure Templates (Soy)
    • could run client-side (JS) - although not sure it make sense to exploit this in Mifos
    • Eclipse Editor available - not our use case, just sayin'
  • Cambridge
    • HTML specific? It "supports Servlets, JAX-RS, Play (Spring later)" - unclear - what does that have to do with templating?
  • duel
    • could run client-side (JS) - although not sure it make sense to exploit this in Mifos
    • probably (question) similar to Closure? Better pick a more well known one? It is interesting, double check project background/activity
  • jsilver
    • dead?
  • Other ones? List above is just compiled from stuff Michael bookmarked on delicious over the years.. may be I missed the one best for us.

TODO Read up.. learn about features.. compare them (blog?)... pick one! (wink)

Services (internal)

TemplateDomainService

CRUD and persistance specific functions

TemplateMergeService

Merge data representation into template and return 

...