{"id":20340425,"url":"https://github.com/toolisticon/byoct","last_synced_at":"2026-03-19T15:22:46.958Z","repository":{"id":79555228,"uuid":"116404421","full_name":"toolisticon/byoct","owner":"toolisticon","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-15T02:22:32.000Z","size":50,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-04T14:49:17.806Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smarty","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/toolisticon.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2018-01-05T16:24:30.000Z","updated_at":"2019-05-27T00:18:05.000Z","dependencies_parsed_at":"2024-11-14T21:24:41.800Z","dependency_job_id":"884b480c-b941-4556-9c0d-1711993b276d","html_url":"https://github.com/toolisticon/byoct","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/toolisticon/byoct","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fbyoct","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fbyoct/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fbyoct/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fbyoct/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toolisticon","download_url":"https://codeload.github.com/toolisticon/byoct/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fbyoct/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30247356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T05:41:50.788Z","status":"ssl_error","status_checked_at":"2026-03-08T05:41:39.075Z","response_time":56,"last_error":"SSL_read: 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":[],"created_at":"2024-11-14T21:21:49.346Z","updated_at":"2026-03-08T06:32:13.819Z","avatar_url":"https://github.com/toolisticon.png","language":"Smarty","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BYOCT - Bring Your Own Compliance Test\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.toolisticon.byoct/byoct-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.toolisticon.byoct/byoct-parent)\n[![Build Status](https://travis-ci.org/toolisticon/byoct.svg?branch=master)](https://travis-ci.org/toolisticon/byoct)\n[![codecov](https://codecov.io/gh/toolisticon/byoct/branch/master/graph/badge.svg)](https://codecov.io/gh/toolisticon/byoct)\n\n# Why you should use this project?\nNowadays most Java frameworks and standards make heavily use of annotations.\nOne drawback of annotations is that java offers only little support to apply constraints regarding how to use annotations.\nUsually constraints about how to use annotations are just described in their Java docs.\n\nAnnotation processors can help to provide compliance tests to check the correct usage of annotation based apis in most cases.\n\nThis project helps you to generate a working maven compliance test annotation processor project for any kind of annotation based api.\n\n# Features\nGenerates Maven project for annotation processor based compliance tests to validate if an annotation based api is used correctly.\n\nThis includes\n- annotation processors for all runtime annotations\n- unit tests classes for all annotation processors\n- example unit testcases for all annotation processors\n\n# How does it work?\n\nIt's quite simple. Create a package-info.java file.\nAnnotate that package with the _GenerateProjectStructure_ annotation.\n\nFor example for JPA:\n\n    @GenerateProjectStructure(\n            mvnGroupId = \"io.toolisticon.byoct.jpa\",\n            mvnArtifactId = \"byoct-jpa\",\n            sourcePackageRoot = \"javax.persistence\",\n            relocationBasePackage = \"javax.persistence\",\n            targetPackageName = \"io.toolisticon.byoct.jpa\")\n\nMake sure that both byoct jar and the annotation api jar are on classpath during compilation.\nYou can just use the example project to do that.\n\nThe Project will be located in the target/classes folder.\n\nCopy the generated pom.xml and src folder.\n\n# Contributing\n\nWe welcome any kind of suggestions and pull requests.\n\n## Building and developing the BYOCT\n\nThe BYOCT is built using Maven (at least version 3.0.0).\nA simple import of the pom in your IDE should get you up and running. To build the byoct on the commandline, just run `mvn` or `mvn clean install`\n\n## Requirements\n\nThe likelihood of a pull request being used rises with the following properties:\n\n- You have used a feature branch.\n- You have included a test that demonstrates the functionality added or fixed.\n- You adhered to the [code conventions](http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html).\n\n## Contributions\n\n- (2018) Tobias Stamann (Holisticon AG)\n\n# License\n\nThis project is released under the revised [MIT License](LICENSE).\n\nThis project includes and repackages the [Annotation-Processor-Toolkit](https://github.com/holisticon/annotation-processor-toolkit) released under the  [MIT License](/3rdPartyLicenses/annotation-processor-toolkit/LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolisticon%2Fbyoct","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoolisticon%2Fbyoct","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolisticon%2Fbyoct/lists"}