{"id":20877451,"url":"https://github.com/t1/extended-annotation-processor","last_synced_at":"2025-08-09T19:50:10.530Z","repository":{"id":36217182,"uuid":"40521462","full_name":"t1/extended-annotation-processor","owner":"t1","description":"simplifies writing annotation processors","archived":false,"fork":false,"pushed_at":"2025-04-11T18:46:42.000Z","size":354,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-04-11T19:49:40.243Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/t1.png","metadata":{"files":{"readme":"README.adoc","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":"2015-08-11T04:32:24.000Z","updated_at":"2025-04-11T18:46:44.000Z","dependencies_parsed_at":"2024-01-09T00:30:27.722Z","dependency_job_id":"f05abb30-461c-4360-9ade-1c512c2d33b1","html_url":"https://github.com/t1/extended-annotation-processor","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t1%2Fextended-annotation-processor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t1%2Fextended-annotation-processor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t1%2Fextended-annotation-processor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t1%2Fextended-annotation-processor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/t1","download_url":"https://codeload.github.com/t1/extended-annotation-processor/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253776657,"owners_count":21962521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-18T06:57:04.591Z","updated_at":"2025-05-12T16:30:37.829Z","avatar_url":"https://github.com/t1.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= ExAP - Extended Annotation Processor image:https://github.com/t1/extended-annotation-processor/actions/workflows/maven.yml/badge.svg[link=https://github.com/t1/extended-annotation-processor/actions/workflows/maven.yml]\n\nThe https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html[Java Annotation Processor API] is a powerful tool to execute custom code when `javac` runs. But the API is ... quite implementation oriented. This project tries to provide an alternative API that is more for the writers of annotation processors.\n\nFor example, to mark an element with an error, in the standard API you'd have to:\n\n[source,java]\n----\nprocessingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, \"this is wrong\", element);\n----\n\nThe extended annotation processor offers this functionality directly at the element:\n\n[source,java]\n----\nelement.error(\"this is wrong\");\n----\n\nSee the test module for a working example.\n\n== Unit Testing\n\nThe second big feature is that you can unit-test most of your annotation processor. While this can not cover 100% (e.g. there is no way to access the javadoc comments at runtime), it's very helpful to have short feedback cycles for the parts that you work most at. See the https://github.com/t1/extended-annotation-processor/blob/master/extended-annotation-processor/src/test/java/com/github/t1/exap/reflection/ReflectionTest.java[`ReflectionTest`] class for an example.\n\n== Status\n\nThis project still has some way to go to be considered feature complete. But it may already prove useful to most annotation processor projects you have at hand.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft1%2Fextended-annotation-processor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft1%2Fextended-annotation-processor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft1%2Fextended-annotation-processor/lists"}