Skip to content
generated from dqualizer/template

Library: The dqlang is a collection of languages and standardized data formats utilized by dqualizer.

License

Notifications You must be signed in to change notification settings

dqualizer/dqlang

Repository files navigation

dqlang

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.

Usage

This package is published via Github Packages.

Maven

To set up your maven for using this package, have a look the "Authenticating to GitHub Packages" guide.

In short:

  1. Copy the template from the guide to your ~/.m2/settings.xml or %userprofile%\.m2\settings.xml.
  2. Replace the repository url with https://maven.pkg.github.com/dqualizer/dqlang. Do not use uppercase letters here!
  3. Create a (classic) personal access token (PAT) with read:packages permissions.
  4. 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>

Gradle

The gradle setup is very similar to the maven setup:

  1. Create a gradle.properties file in %userprofile%\.gradle\.
  2. Create a (classic) personal access token (PAT) with read:packages permissions.
  3. Paste the following content into your gradle.properties:
    gprUsername=YOUR_GITHUB_USERNAME
    gprPassword=YOUR_GITHUB_ACCESS_TOKEN
    
  4. 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}")
}

How to build

Locally

  • Set your credentials gprUsername=YOUR_GITHUB_USERNAME and gprPassword=YOUR_GITHUB_ACCESS_TOKEN in either $GRADLE_USER_HOME/gradle.properties or gradle.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

Deploy to Packages

  • There is a GitHub action set up, that automatically pushes the dqlang-package to Github Packages

Contribution

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.

License

See LICENSE.

About

Library: The dqlang is a collection of languages and standardized data formats utilized by dqualizer.

Resources

License

Stars

Watchers

Forks

Packages