Hi Daniel,

try to write a top-level post to keep the discussion readable


Ad Multi-file Output
===============================================================

Currently no plans to implement it - I personally don’t have a need for it and 
it is a hypothetical requirement for now


Ad POI Integration
===============================================================

No problem in exposing the non-String data - it is a good idea and will be 
implemented


Ad Default Locale
===============================================================

* I need to define a locale for the unit tests 
* I guess it is a good idea to pin it to “en_US” to avoid suprises


Ad JDBC Access
===============================================================

It is part of a wider problem - when leaving the document-centric approach into 
scripting there is a lot of useful functionality, e.g. JDBC and HTTP clients. 

The problems

* JDBC: You need to add JDBC drivers, where to store the credentials, database 
schema, ...
* HTTP: More libraries, certificates, proxy support,...

It is possible to implement something but it will never work properly so I 
decided to tackle the problem differently b using commons-exec

* REST calls can be easily made by invoking cURL
* Database command line clients can export the result of a SELECT query to a 
CSV file


Ad Templates aren't used much for Web UI-s anymore
===============================================================

Yes and no - IMHO it is quite useful to embed a UI into certain "micro 
services”. Therefore I think that a ready-to-use Spring Boot (& Micronaut, 
etc..) integration is important and should not be an afterthought.


Thanks in advance, 

Siegfried Goeschl


> On 18 Dec 2019, at 01:32, Daniel Dekany <[email protected]> wrote:
> 
> Hi,
> 
> Find my comments inline below.
> 
> On Tue, Dec 17, 2019 at 10:46 PM Siegfried Goeschl <
> [email protected] <mailto:[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 
>> <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]> 
>>> <mailto:[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>> <
>>>> 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>
>>> 
>>>> <
>>>> 
>> 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>
>>> 
>>>> <
>>>> 
>> 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

Reply via email to