Skip to content

dgroup/laconic-velocity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maven Javadocs License: MIT Commit activity Hits-of-Code

Build Status 0pdd Dependency Status Known Vulnerabilities

DevOps By Rultor.com EO badge We recommend IntelliJ IDEA

Qulice SQ passed Codebeat Codacy Badge Codecov

ATTENTION: We're still in a very early alpha version, the API may and will change frequently. Please, use it at your own risk, until we release version 1.0.

Maven:

<dependency>
    <groupId>com.github.dgroup</groupId>
    <artifactId>laconic-velocity</artifactId>
</dependency>

Gradle:

dependencies {
    compile 'com.github.dgroup:laconic-velocity:<version>'
}

Get started

Generate the text/sql/xml/markdown/json/etc based on Apache Velocity template.

  1. Define velocity template query.sql
    select 1 from dual
    #if ($flag)
    union
    select 2 from dual
    #end
    in
    velocity $ tree
    ...
    |-- src
    |   |-- main
    |   |   |-- ...
    |   |
    |   `-- test
    |       |-- java
    |       |   `-- ...
    |       `-- resources
    |           `-- velocity
    |               |-- ...
    |               |-- query.sql
    |               |-- ...
    ...
    
    
  2. Define instance of velocity template using
    • full path to template
      @Test
      public void transformSql() throws TemplateException {
          MatcherAssert.assertThat(
              new Text("query.sql", "src/test/resources/velocity").compose(
                  new ArgOf("flag", true)
              ),
              Matchers.equalTo(
                  "select 1 from dual\nunion\nselect 2 from dual\n"
              )
          );
      }
      See more.
    • hierarchical search
      @Test
      public void hierarchical() throws TemplateException {
          MatcherAssert.assertThat(
              new Text("query.sql", "src/test/resources").compose(
                  new ArgOf("flag", true)
              ),
              Matchers.equalTo(
                  "select 1 from dual\nunion\nselect 2 from dual\n"
              )
          );
      }
      You can also specify the multiple roots (more).
    • classpath template
      @Test
      public void classpath() throws TemplateException {
          MatcherAssert.assertThat(
              new Text(new RelativePath("velocity/query.sql")).compose(
                  new ArgOf("flag", true)
              ),
              Matchers.equalTo(
                  "select 1 from dual\nunion\nselect 2 from dual\n"
              )
          );
      }
      See more.