[ 
https://issues.apache.org/jira/browse/FREEMARKER-135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Siegfried Goeschl resolved FREEMARKER-135.
------------------------------------------
    Resolution: Fixed

> freemarker-generator-cli: Support user-supplied names for datasources
> ---------------------------------------------------------------------
>
>                 Key: FREEMARKER-135
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-135
>             Project: Apache Freemarker
>          Issue Type: Task
>            Reporter: Siegfried Goeschl
>            Assignee: Siegfried Goeschl
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The current implementation of `freemarker-cli` provides all datasources as 
> list to be rendered with the template. Individual datasources can be accessed 
> via index or wildcard search based on the underlying file name. This forces 
> the user to pass the datasources in the correct order when the template 
> process more than on datasource or rely on file naming conventions.
> So we want to allow the naming of the datasources on the command line.
> A few thoughts along the line
>  * A user might also want to provide additional metadata, e.g. `charset` or 
> `mimetype`
>  * We want to support positional parameters with `Picocli` so all that 
> information should go into a single string
> The following usage should be supported
> {noformat}
> # Single positional parameter 
> > freemarker-cli -t templates/info.ftl users.csv
> > freemarker-cli -t templates/info.ftl file:///users.csv
> # Multiple positional parameters
> > freemarker-cli -t templates/info.ftl users.csv transactions.csv
> > freemarker-cli -t templates/info.ftl users.csv file:///transactions.csv
> > freemarker-cli -t templates/info.ftl file:///users.csv 
> > file:///transactions.csv
> # Short option
> > freemarker-cli -t templates/info.ftl -d users.csv
> > freemarker-cli -t templates/info.ftl -d file:///users.csv
> > freemarker-cli -t templates/info.ftl -d file:///users.csv -d 
> > file:///transactions.csv
> # Long option
> > freemarker-cli -t templates/info.ftl --datasource users.csv
> > freemarker-cli -t templates/info.ftl --datasource file:///users.csv
> > freemarker-cli -t templates/info.ftl --datasource file:///users.csv 
> > --datasource file:///transactions.csv
> # Named datasource using file name
> > freemarker-cli -t templates/info.ftl users=users.csv
> > freemarker-cli -t templates/info.ftl -d users=users.csv
> > freemarker-cli -t templates/info.ftl --datasource users=users.csv
> # Named datasource using URI
> > freemarker-cli -t templates/info.ftl -d users=file:///users.csv
> > freemarker-cli -t templates/info.ftl --datasource users=users.csv
> # Named datasource using URI and fragments
> > freemarker-cli -t templates/info.ftl -d 
> > users=file:///users.csv#charset=UTF-16
> > freemarker-cli -t templates/info.ftl --datasource 
> > users=file:///users.csv#charset=UTF-16
> # Named datasource using URI and fragments with multiple parameters
> > freemarker-cli -t templates/info.ftl --datasource 
> > users=file:///users.csv#charset=UTF-16&mimetype=text/csv
> # Mix and match the various options
> > freemarker-cli -t templates/info.ftl --datasource users=file:///users.csv 
> > transactions=transactions.csv 
> {noformat}
> As discusses on the mailing list some sort of grouping mechanism of 
> `Datasource`s would be useful - the following usage should be supported
> {noformat}
> # Define a group "admin"
> > freemarker-cli -t templates/info.ftl 
> > users-xxx:admin=site/sample/csv/some-user-file.csv
> > freemarker-cli -t templates/info.ftl -d 
> > users-xxx:admin=site/sample/csv/some-user-file.csv
> > freemarker-cli -t templates/info.ftl --datasource 
> > users-xxx:admin=site/sample/csv/some-user-file.csv
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to