Hi, Find my comments inline below.
On Tue, Dec 17, 2019 at 10:46 PM Siegfried Goeschl < [email protected]> wrote: > Hi Daniel, > > Thanks for spending your time - feed back is always appreciated when doing > things in isolation .... > > Please see my comments below > > Thanks in advance, > > Siegfried Goeschl > > > > > On 17.12.2019, at 19:19, Daniel Dekany <[email protected]> wrote: > > > > Hi Siegfried, > > > > Looks good! > > > > Some random things I happened to notice: > > > > - The ability generating multiple output files from the same template > > would be worthy addition. Like you load a CSV file that has employees > in > > it, and based on that you generate one output file per department. Or > even > > one per employee. (There could directives for that, like > changeOutputFile, > > nestOutputFile, etc. on http://fmpp.sourceforge.net/pphash.html#sect17 > <http://fmpp.sourceforge.net/pphash.html#sect17>) > > Well, I simply don't need it and it complicates things - in simple cases > one could just re-run the freemarker-cli with a different template and/or > parameters > My feeling is that if there's a tool that's about transforming some files to other files, but the idea that a single invocation can yield multiple output files is not part of it, one way or another (i.e., not necessarily in the way it was in FMPP), it might turns out to be a limiting design decision later as feature request start to pour in. And then it can be hard to add as an afterthought. Well, maybe I'm wrong, as I have no statics about how often it's needed. FMPP users did use it (myself included), some of them at least. > > - When I load an XLSX, I get back values as string, not as numbers, or > > dates. I'm not sure how hard it is to solve though (I don't remember > POI > > much). > > That should not be too hard - I actually use > org.apache.poi.ss.usermodel.DataFormatter to create the strings If templates get numbers etc., or have a such choice at least, then they can compare numbers, filter based on their values, control the formatting, etc. My idea here is that an Excel file, CSV file, whatever, is just a pure data, and rendering/formatting is the duty of the templates. > > BTW, the strings I get back are formatted with the locale of the OS, > > which is a problem. I guess there should be an config option to set the > JVM > > locale. (The ExcelToolTest fails on my computer with locale hu_HU for > > somewhat similar reason, as it gets "100,00" instead of "100.00".) > > On the command line you can use > > -l, --locale=<locale> Locale being used for output file, e.g. 'en_US' > > but I guess I should provide a fixed locale for the unit tests > The problem is not how FreeMarker renders the numbers. It already gets strings like that from POI, and --locale doesn't influence POI. As of the default locale, for these kind of tools, I believe that using system defaults is usually evil. So having a fixed default is maybe not just for unit tests. The locale of my computer, or wherever I run a job on (often some backend linux box) should be usually irrelevant, and not influence the output. Not to mention when team mates share the project, in an international team. > - Querying from relation databases (JDBC) would be probably an useful > > addition (it doesn't fit the Document paradigm though). > > I integrated commons-exec and triggered AWS CLI - basically you capture > the output of any command-line invocation and process it. Just need to make > sure that every tool supports processing raw strings ... > I'm note sure what do you mean. The result of a query is a structured data, with column names and non-string types, so I guess command-line invocation can't solve that too well. > > It would be good if there's some de-facto tool for these kind of things > > than what freemarker-cli does. I guess there's a few such tools in > company > > repos, but of course those have no potential to become more generic and > > being published. (freemarker-generator was a such toll though, but it > > didn't go anywhere after donation. Actually, FMPP was a such tool too, > that > > I used for some sysadmin/webadmin tasks some 15+ years ago.) But of > course, > > long term care is the tricky issue with any project that has no company > > truly behind it (i.e., no payed developers). Do you have you have any > > thoughts/plans regarding the longer term life of freemarker-cli? > > I worked on a couple of not soo successful Open Source projects - yes, it > might become another Open Source GitHub project nobody knows / cares :-) > > Having said that > > * I'm maintaining it already for a few of years and I will always find > some things I can do with it > * It is useful for some common tasks when you have a Java background > * I think it is a great way to re-use or build up FreeMarker knowledge > And, I would add, templates aren't used much for Web UI-s anymore, so these alternate use cases become the main ones. > * And it should become part of the Apache Freemarker project - much better > visibility & broader user base > Yeah, the last point is what I'm going for really. But that's also why I hope that you feel like making it more general. Or at least has no negative feelings about it. > > > Also, some things that you miss for FreeMarker itself for it to be more > > fitting for the task? > > Support for Java 8 Date/Time API - last time I looked at it it was not > supported by FreeMarker and it's a bummer since nobody is using Date any > longer ... > Yeah... it still isn't. It's probably among the new few things to add at this point, as it's long due. > > > > > On Sun, Nov 17, 2019 at 7:02 PM Siegfried Goeschl < > > [email protected] <mailto:[email protected]>> wrote: > > > >> Hi folks, > >> > >> since I'm currently mostly busy with non-coding tasks I spent some time > >> honing my coding skills - probably to no avail as my colleagues would > say > >> ;-) > >> > >> 1) I migrated my pet project "freemarker-cli" from Groovy to JDK 8 (see > >> https://github.com/sgoeschl/freemarker-cli < > https://github.com/sgoeschl/freemarker-cli> < > >> https://github.com/sgoeschl/freemarker-cli < > https://github.com/sgoeschl/freemarker-cli>>) > >> > >> 2) At > >> > https://github.com/sgoeschl/presentations/blob/master/javameetup/freemarker/slides/src/docs/asciidoc/index.adoc > < > https://github.com/sgoeschl/presentations/blob/master/javameetup/freemarker/slides/src/docs/asciidoc/index.adoc > > > >> < > >> > https://github.com/sgoeschl/presentations/blob/master/javameetup/freemarker/slides/src/docs/asciidoc/index.adoc > < > https://github.com/sgoeschl/presentations/blob/master/javameetup/freemarker/slides/src/docs/asciidoc/index.adoc > >> > >> you find a presentation I gave some while ago > >> > >> 3) I also wrote a Spring Boot FreeMarker sample project as part of the > >> presentation (see > >> > https://github.com/sgoeschl/presentations/tree/master/javameetup/freemarker/demo > < > https://github.com/sgoeschl/presentations/tree/master/javameetup/freemarker/demo > > > >> < > >> > https://github.com/sgoeschl/presentations/tree/master/javameetup/freemarker/demo > < > https://github.com/sgoeschl/presentations/tree/master/javameetup/freemarker/demo > > > >>> ) > >> > >> My plans / questions > >> > >> I would be awesome if I could get some feedback about "freemarker-cli" > in > >> its current JDK incarnation :-) Later on I will release 2.0.0 and push > it > >> to Maven Central. > >> > >> In the mean time I wrote three applications (micro services in new > speak) > >> using Apache FreeMarker and found it hard to find a starting point for a > >> Spring Boot applications - therefore I wrote the sample project (see > >> above). One way or the other a Spring Boot (and Micronaut) blue print > >> should find its way into Apache FreeMarker officially. I think Apache > >> FreeMarker is awesome for adding a developer UI to some micro service > but > >> developers don't care about the template engine but only about a quick > and > >> painless way to get the job done ... > >> > >> Anyone volunteering to give a presentation about Apache Freemarker at > >> ApacheCon? I could do but I'm not really qualified :-) > >> > >> Thanks in advance, > >> > >> Siegfried Goeschl > >> > >> > >> > > > > -- > > Best regards, > > Daniel Dekany > -- Best regards, Daniel Dekany
