{"id":24402137,"url":"https://github.com/nergal-perm/java-decita","last_synced_at":"2026-04-24T11:09:22.918Z","repository":{"id":214383183,"uuid":"736383224","full_name":"nergal-perm/java-decita","owner":"nergal-perm","description":"Java library to make decisions based on decision tables","archived":false,"fork":false,"pushed_at":"2025-07-10T14:15:56.000Z","size":2389,"stargazers_count":6,"open_issues_count":9,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-01T08:23:43.337Z","etag":null,"topics":["decision-tables","java"],"latest_commit_sha":null,"homepage":"https://nergal-perm.github.io/java-decita/","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/nergal-perm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-27T18:46:18.000Z","updated_at":"2025-08-13T11:25:14.000Z","dependencies_parsed_at":"2023-12-30T05:25:05.450Z","dependency_job_id":"c9bf7e0a-aec3-4ef3-b3d0-8d5227e78bc0","html_url":"https://github.com/nergal-perm/java-decita","commit_stats":null,"previous_names":["ewc-tabletop/java-decita","nergal-perm/java-decita"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/nergal-perm/java-decita","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nergal-perm%2Fjava-decita","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nergal-perm%2Fjava-decita/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nergal-perm%2Fjava-decita/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nergal-perm%2Fjava-decita/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nergal-perm","download_url":"https://codeload.github.com/nergal-perm/java-decita/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nergal-perm%2Fjava-decita/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32220386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["decision-tables","java"],"created_at":"2025-01-20T00:59:02.428Z","updated_at":"2026-04-24T11:09:17.890Z","avatar_url":"https://github.com/nergal-perm.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# java-decita\n\n[![PDD status](https://www.0pdd.com/svg?name=nergal-perm/java-decita)](https://www.0pdd.com/p?name=nergal-perm/java-decita)\n[![Hits-of-Code](https://hitsofcode.com/github/nergal-perm/java-decita)](https://hitsofcode.com/github/nergal-perm/java-decita/view)\n\n## Instructions\n\n### Publishing a site\n\nFirst of all, the site should be built with the following Maven command:\n\n```shell\nmvn clean verify site -Pjacoco \u0026\u0026 mvn site:site site:stage -Psite\n```\n\nThen I `rsync` the newly created `target/staging` folder to another copy of the repository (which has\nthe `gh-pages` branch checked out) with the following command (run from the project root):\n\n```shell\nrsync -avz --delete target/staging/* ../java-decita-gh-pages/\n```\n\nAfter that, I 'cd' to the repository's copy, commit and push the changes to the `gh-pages` branch.\nDone!\n\n### Releasing\n\nTo create a new commit with a new version, run the following `npx` command (you need to have Node.js installed): \n\n```shell\nnpx @dwmkerr/standard-version --package-files pom.xml --bumpFiles pom.xml\n```\n\nAfter that run the following Maven command to push the new version to the Maven Central:\n\n```shell\nmvn clean deploy -Pjcabi-gpg -PnewSonatype\n```\n\nThe publishing process is still very manual, so it's needed to check out the \n[Sonatype Nexus](https://central.sonatype.com/publishing/deployments) page for the deployed \nartifacts and to release them manually.\n\n### Adding as a dependency\n\nTo add this library as a dependency to your project, add the following to your `pom.xml`:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.nergal-perm\u003c/groupId\u003e\n    \u003cartifactId\u003ejava-decita\u003c/artifactId\u003e\n    \u003cversion\u003eLATEST\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Decision table DSL (CSV format)\n\nFor the decision table to be processed, it should be in CSV format with semicolon (`;`) as a separator.\nThe columns of the table represent rules, except for the first one, which contains the \"base\" of each\ncondition. The rows in the first section (before `---`) represent the conditions, and the rows in the second\nsection (after `---`) represent the outcomes.\n\nEvery value in the conditions section should refer to a specific data fragment, which can be located\nby its description, called `Coordinate`. Coordinates consist of two parts: `Locator` - that is the\nname of the data domain, and `Identifier` - that is the name of the data fragment. Those parts are separated\nby `::`. For example, value `ui_button_create::enabled` refers to the `enabled` fragment of the\n`ui_button_create` locator.\n\nFor the constant values, the `Locator` part can be omitted, so the value `5` refers to a constant value `5`.\nFor the sake of completeness, the `Locator` part for constant values is `constant`, so it is possible to\nwrite `constant::5` instead of just `5` (but it is not necessary).\n\nThe table cells in the conditions section should contain the condition description, consisting of \nthe logical operator (if any), followed by the comparison operator (if any), followed by the value.\n\nIf the comparison operator is omitted, it is assumed to be `==`, which means that the \"base\" value of \nthe condition should be equal to the cell value for the condition to be true. Other comparison operators\nare `\u003e` and `\u003c`.\n\nThe logical operators are used to modify the condition itself. The operator `~` means \"any\", so it is\neffectively means that the condition is always true. The operator `!` means \"not\", so it negates the\nspecified condition.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnergal-perm%2Fjava-decita","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnergal-perm%2Fjava-decita","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnergal-perm%2Fjava-decita/lists"}