Giter Club home page Giter Club logo

dqlang's Introduction

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.

dqlang's People

Contributors

litschiw avatar levinkerschberger avatar franksn90 avatar eddeccc avatar jensereal avatar heiko-holz avatar

Watchers

Lucian avatar Andre van Hoorn avatar Dominik Marquardt avatar Matthias Haeussler avatar Tobias Angerstein avatar  avatar  avatar Kostas Georgiou avatar  avatar  avatar  avatar

dqlang's Issues

[User-Story] - Load testing schema

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[EPIC] - Create schemas

Rationale

Owner

Stakeholder Point of Contact

Dependencies

Description

Context

Issues

Acceptance criteria

Proof

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - RQA-Definition schema (Load testing)

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[EPIC] - Create Draft for DSL

Rationale

Owner

Stakeholder Point of Contact

Dependencies

  • Blocked by Issue one
  • Blocked by Issue two
  • Blocked by Issue three

Description

Context

Issues

Acceptance criteria

Proof

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - Resilience testing schema

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - Monitoring schema

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - DSL for Monitoring Mapping

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - DSL for Load Mapping

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

[User-Story] - API-schema schema

Story

As a USER who PRECONDITIONS, I want to DO_THING so I can ACCOMPLISH_GOAL.

Acceptance Criteria

  • Criteria 1
  • Criteria 2
  • Criteria 3

Dependencies

  • Blocked by issue one
  • Blocked by issue two
  • Blocked by issue three

Additional context

Add any other context or screenshots about the research request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.