{"id":15683621,"url":"https://github.com/dgroup/laconic-velocity","last_synced_at":"2025-09-07T02:09:12.121Z","repository":{"id":43274705,"uuid":"150766049","full_name":"dgroup/laconic-velocity","owner":"dgroup","description":"Laconic API for Apache Velocity","archived":false,"fork":false,"pushed_at":"2022-03-10T16:40:30.000Z","size":89,"stargazers_count":10,"open_issues_count":9,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-13T15:03:26.356Z","etag":null,"topics":["apache-velocity","elegantobjects","java","java-library","oop","oop-library","oop-principles","velocity-template"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgroup.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-28T16:17:42.000Z","updated_at":"2022-01-08T09:00:50.000Z","dependencies_parsed_at":"2022-09-04T18:22:30.146Z","dependency_job_id":null,"html_url":"https://github.com/dgroup/laconic-velocity","commit_stats":null,"previous_names":["dgroup/velocity"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/dgroup/laconic-velocity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgroup%2Flaconic-velocity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgroup%2Flaconic-velocity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgroup%2Flaconic-velocity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgroup%2Flaconic-velocity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgroup","download_url":"https://codeload.github.com/dgroup/laconic-velocity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgroup%2Flaconic-velocity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273986629,"owners_count":25202708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-velocity","elegantobjects","java","java-library","oop","oop-library","oop-principles","velocity-template"],"created_at":"2024-10-03T17:07:47.681Z","updated_at":"2025-09-07T02:09:12.086Z","avatar_url":"https://github.com/dgroup.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Maven](https://img.shields.io/maven-central/v/com.github.dgroup/laconic-velocity.svg)](https://mvnrepository.com/artifact/com.github.dgroup/laconic-velocity)\n[![Javadocs](http://www.javadoc.io/badge/com.github.dgroup/laconic-velocity.svg)](http://www.javadoc.io/doc/com.github.dgroup/laconic-velocity)\n[![License: MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](./license.txt) \n[![Commit activity](https://img.shields.io/github/commit-activity/y/dgroup/laconic-velocity.svg?style=flat-square)](https://github.com/dgroup/laconic-velocity/graphs/commit-activity)\n[![Hits-of-Code](https://hitsofcode.com/github/dgroup/laconic-velocity)](https://hitsofcode.com/view/github/dgroup/laconic-velocity)\n\n[![Build Status](https://travis-ci.org/dgroup/laconic-velocity.svg?branch=master\u0026style=for-the-badge)](https://travis-ci.org/dgroup/laconic-velocity)\n[![0pdd](http://www.0pdd.com/svg?name=dgroup/laconic-velocity)](http://www.0pdd.com/p?name=dgroup/laconic-velocity)\n[![Dependency Status](https://requires.io/github/dgroup/laconic-velocity/requirements.svg?branch=dev)](https://requires.io/github/dgroup/laconic-velocity/requirements/?branch=dev)\n[![Known Vulnerabilities](https://snyk.io/test/github/dgroup/laconic-velocity/badge.svg)](https://snyk.io/org/dgroup/project/58b731a9-6b07-4ccf-9044-ad305ad243e6/?tab=dependencies\u0026vulns=vulnerable)\n\n[![DevOps By Rultor.com](http://www.rultor.com/b/dgroup/laconic-velocity)](http://www.rultor.com/p/dgroup/laconic-velocity)\n[![EO badge](http://www.elegantobjects.org/badge.svg)](http://www.elegantobjects.org/#principles)\n[![We recommend IntelliJ IDEA](http://www.elegantobjects.org/intellij-idea.svg)](https://www.jetbrains.com/idea/)\n\n[![Qulice](https://img.shields.io/badge/qulice-passed-blue.svg)](http://www.qulice.com/)\n[![SQ passed](https://sonarcloud.io/api/project_badges/measure?project=com.github.dgroup%3Alaconic-velocity\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=com.github.dgroup%3Alaconic-velocity)\n[![Codebeat](https://codebeat.co/badges/7bf04e42-06e8-461f-aea8-ea1e196f22de)](https://codebeat.co/projects/github-com-dgroup-laconic-velocity-master)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/011685357fc44898a8538d3e51d8da70)](https://www.codacy.com/app/dgroup/laconic-velocity?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=dgroup/laconic-velocity\u0026amp;utm_campaign=Badge_Grade)\n[![Codecov](https://codecov.io/gh/dgroup/laconic-velocity/branch/master/graph/badge.svg?token=Pqdeao3teI)](https://codecov.io/gh/dgroup/laconic-velocity)\n\n**ATTENTION**: We're still in a very early alpha version, the API\nmay and _will_ change frequently. Please, use it at your own risk,\nuntil we release version 1.0.\n\nMaven:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.dgroup\u003c/groupId\u003e\n    \u003cartifactId\u003elaconic-velocity\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\nGradle:\n```groovy\ndependencies {\n    compile 'com.github.dgroup:laconic-velocity:\u003cversion\u003e'\n}\n```\n## Get started\n**Generate the text/sql/xml/markdown/json/etc based on Apache Velocity [template](/src/main/java/com/github/dgroup/velocity/Template.java).**\n 1. Define velocity template `query.sql`\n    ```sql\n    select 1 from dual\n    #if ($flag)\n    union\n    select 2 from dual\n    #end\n    ```\n    in\n    ```\n    velocity $ tree\n    ...\n    |-- src\n    |   |-- main\n    |   |   |-- ...\n    |   |\n    |   `-- test\n    |       |-- java\n    |       |   `-- ...\n    |       `-- resources\n    |           `-- velocity\n    |               |-- ...\n    |               |-- query.sql\n    |               |-- ...\n    ...\n\n    ```\n 2. Define instance of velocity template using\n    - full path to template\n      ```java\n      @Test\n      public void transformSql() throws TemplateException {\n          MatcherAssert.assertThat(\n              new Text(\"query.sql\", \"src/test/resources/velocity\").compose(\n                  new ArgOf(\"flag\", true)\n              ),\n              Matchers.equalTo(\n                  \"select 1 from dual\\nunion\\nselect 2 from dual\\n\"\n              )\n          );\n      }\n      ```\n      See [more](/src/test/java/com/github/dgroup/velocity/template/TextTest.java).\n    - hierarchical search\n      ```java\n      @Test\n      public void hierarchical() throws TemplateException {\n          MatcherAssert.assertThat(\n              new Text(\"query.sql\", \"src/test/resources\").compose(\n                  new ArgOf(\"flag\", true)\n              ),\n              Matchers.equalTo(\n                  \"select 1 from dual\\nunion\\nselect 2 from dual\\n\"\n              )\n          );\n      }\n      ```\n      You can also specify the multiple roots ([more](/src/main/java/com/github/dgroup/velocity/template/Text.java#L64)).\n    - classpath template\n      ```java\n      @Test\n      public void classpath() throws TemplateException {\n          MatcherAssert.assertThat(\n              new Text(new RelativePath(\"velocity/query.sql\")).compose(\n                  new ArgOf(\"flag\", true)\n              ),\n              Matchers.equalTo(\n                  \"select 1 from dual\\nunion\\nselect 2 from dual\\n\"\n              )\n          );\n      }\n      ```\n      See [more](/src/test/java/com/github/dgroup/velocity/template/ClasspathTest.java#L124).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgroup%2Flaconic-velocity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgroup%2Flaconic-velocity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgroup%2Flaconic-velocity/lists"}