The dqlang is a collection of languages utilized by dqualizer e.g., the DST extension for domain-level RQA specification or the language for defining mappings in dqedit. This repository contains the domain specific language (DSL) in the from of json-schema files, which describe the exchange objects' structure used by the components of dqualizer.
A more detailed description of this component's architecture is provided in the arc42 document.
Feel free to have a look at the documentation which includes examples.
This package is published via Github Packages.
To set up your maven for using this package, have a look the "Authenticating to GitHub Packages" guide.
In short:
- Copy the template from the guide to your
~/.m2/settings.xml
or%userprofile%\.m2\settings.xml
. - Replace the repository url with
https://maven.pkg.github.com/dqualizer/dqlang
. Do not use uppercase letters here! - Create a (classic) personal access token (PAT) with
read:packages
permissions. - Enter your GitHub username and PAT (as password) for the 'GitHub' server.
Then you can use:
<dependency>
<groupId>dqualizer</groupId>
<artifactId>dqlang</artifactId>
<version>${dqlang.version}</version>
</dependency>
The gradle setup is very similar to the maven setup:
- Create a
gradle.properties
file in%userprofile%\.gradle\
. - Create a (classic) personal access token (PAT) with
read:packages
permissions. - Paste the following content into your gradle.properties:
gprUsername=YOUR_GITHUB_USERNAME gprPassword=YOUR_GITHUB_ACCESS_TOKEN
- Paste the following code into your projects build.gradle or build.gradle.kts file:
Groovy:
repositories {
maven {
name = 'gpr'
credentials(PasswordCredentials)
url = uri("https://maven.pkg.github.com/dqualizer/dqlang")
}
}
Kotlin:
repositories {
maven {
name="gpr"
url = uri("https://maven.pkg.github.com/dqualizer/dqlang")
credentials(PasswordCredentials::class)
}
}
Then you can use dqlang in your gradle dependency declaration:
Groovy:
dependencies {
implementation("io.github.dqualizer:dqlang:{version}")
}
Kotlin:
dependencies {
implementation("io.github.dqualizer:dqlang:{version}")
}
- Set your credentials
gprUsername=YOUR_GITHUB_USERNAME
andgprPassword=YOUR_GITHUB_ACCESS_TOKEN
in either$GRADLE_USER_HOME/gradle.properties
orgradle.properties
(be careful not to publish your GitHub Token to Git) - If you set the credentials build with
./gradlew build -x test
- If you didn't set your credentials build with
./gradlew build -x test -PgprUsername=YOUR_GITHUB_USERNAME -PgprPassword=YOUR_GITHUB_ACCESS_TOKEN
- There is a GitHub action set up, that automatically pushes the dqlang-package to Github Packages
Feel free to fork this repository and create pull requests towards the main branch. When working on this project, as a developer, ensure that you work on a feature branch and create a pull request to the main branch.
Python packages used to check and generate the documentation are:
- human-friendly-json-schema
- jsonschema
- requests (for loading json-schema files)
And for Java code generation:
- jsonschema2pojo (as maven plugin)
If you plan on implementing additional generators, you can find inspiration on the official json-schema website.
See LICENSE.