You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Edmon Begoli <eb...@gmail.com> on 2015/09/07 05:19:53 UTC

Use of FreeMarker

I noticed that some of the components (e.g. StringOutputRecordWriter) are
implemented using FreeMarker.

Is this a design principle that we should follow, and if so why and how?

Re: Use of FreeMarker

Posted by Ted Dunning <te...@gmail.com>.
much of the use is for a slightly ghetto implementation of something like
C++ templates for Java.  It allows all combinations of important types to
be supported directly with primitives.



On Mon, Sep 7, 2015 at 6:29 PM, Jacques Nadeau <ja...@dremio.com> wrote:

> Drill uses Freemarker for two purposes:
>
> Compile time code generation
> Used to generate codebase where we want code specialized for each data type
> Drill works with. For example, generating the code for "add" for each data
> type.
>
> HTML page templating
> Used in the web ui. Traditional MVC.
>
>
>
>
> --
> Jacques Nadeau
> CTO and Co-Founder, Dremio
>
> On Sun, Sep 6, 2015 at 8:19 PM, Edmon Begoli <eb...@gmail.com> wrote:
>
> > I noticed that some of the components (e.g. StringOutputRecordWriter) are
> > implemented using FreeMarker.
> >
> > Is this a design principle that we should follow, and if so why and how?
> >
>

Re: Use of FreeMarker

Posted by Jacques Nadeau <ja...@dremio.com>.
Drill uses Freemarker for two purposes:

Compile time code generation
Used to generate codebase where we want code specialized for each data type
Drill works with. For example, generating the code for "add" for each data
type.

HTML page templating
Used in the web ui. Traditional MVC.




--
Jacques Nadeau
CTO and Co-Founder, Dremio

On Sun, Sep 6, 2015 at 8:19 PM, Edmon Begoli <eb...@gmail.com> wrote:

> I noticed that some of the components (e.g. StringOutputRecordWriter) are
> implemented using FreeMarker.
>
> Is this a design principle that we should follow, and if so why and how?
>