{"id":18817467,"url":"https://github.com/exoad/meta_javac","last_synced_at":"2026-01-15T08:30:18.956Z","repository":{"id":90113739,"uuid":"598424051","full_name":"exoad/meta_javac","owner":"exoad","description":"A generalized plugin library for the Javac compiler","archived":false,"fork":false,"pushed_at":"2023-06-18T18:15:43.000Z","size":39,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-17T09:29:25.480Z","etag":null,"topics":["java","java-compiler","javac"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-4-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exoad.png","metadata":{"files":{"readme":"README","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":"2023-02-07T04:26:51.000Z","updated_at":"2023-09-13T12:16:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"fa6db698-ba34-449b-b1cc-51fc72817683","html_url":"https://github.com/exoad/meta_javac","commit_stats":null,"previous_names":["exoad/meta_javac","exoad/javac_extensions.java"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2Fmeta_javac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2Fmeta_javac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2Fmeta_javac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2Fmeta_javac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exoad","download_url":"https://codeload.github.com/exoad/meta_javac/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239753731,"owners_count":19691162,"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":["java","java-compiler","javac"],"created_at":"2024-11-08T00:11:32.073Z","updated_at":"2026-01-15T08:30:18.841Z","avatar_url":"https://github.com/exoad.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"JMCC - JackMeng Configurable Compiler (4j)\n\nDORMANT REPO: I am not currently working on this project due to other projects conflicting with my workload\n\n[WARNING]\nIt is highly recommended to not use anything from the \"com.sun\" packages due to them being\nvery vendor specific and thus this standalone plugin will try its best to avoid doing\nso through the usage via \"javax.lang\" and the ToolsAPI. However, for older and less\nspecific plugins, \"com.sun\" will be utilized.\n\nFurthermore, due the prevalence of different versions under the \"javax.lang\" module,\nall specified versions \u0026 utility class  will be written and included:\n      1. 14        -\u003e Files prefixed with \"se14_\"\n      2. 9         -\u003e Files prefixed with \"se09_\"\n      3. 8         -\u003e Files prefixed with \"se08_\"\nNote: 6,7 are not supported due to them being slightly obsolete and the dire preference\nto stay up to date.\nThus different SDK versions will require different build versions and so force.\n\nThe reason being that many compiler related libraries were removed from the unreliable \"com.sun.*\" packages.\nOne such JAR that is crucial to make a functional plugin is required from \"tools.jar\" under\n\"$JAVA_HOME/lib/\" which has been unfortunately removed since Java 9 (messed up everything).\n\nIf you would like to tag along with my development environment, you may follow with the\nbelow specifications:\n\n            JDK Base : OpenJDK Build 2022-07-19\n            JDK Vendor : Adoptium (Eclipse) Temurin [https://adoptium.net/about/]\n            JDK Version : 17.0.4 (build 17.0.4+8)\n\n\nThis repository contains a set of plugins that I have created for the Javac compiler. Much of these\nplugins aim to increase functionality and the ability for the user to define certain functionalities\nbased on certain compilation params. However, there are certain limitations within the compiler\nitself that can also influence how things can work and how certain pragmas can be called be\nbetween source and compiler. For example, you cannot simply leech a macro find and replace tool\nonto Javac's annotation parsing phase, instead you most definitely need to either:\n      1. Write a parser that handles the macros beforehand and then invokes the Javac compiler\n      2. Write a precheck for Javac that is ran in the first cycle of the Javac compilation life\n         cycle. [This however, heavily depends on Javac implementation]\n\nIn general, you should not depend on these plugins to make Java much more friendlier, instead, it\nis probably far less problematic to use a different language. Additionally, plugins here can\nbreak at any time due to inconsistent source file versions and other different stuffs between\nJDK providers and Javac implementations.\n\n\n== File prefixing legend ==\nThis legend adds some prefixes that are native to this project and does\n\n\"se14\"\n      For files relating to the specific SE Release Version 14\n      - Highly environment specific\n\n\"se08\"\n      For files relating to the specific SE Release Version 8 (1.8)\n      - Highly environment specific\n\n\"se09\"\n      For files relating to the specific SE Release Version 9\n      - Highly environment specific\n\n\"csun\"\n      For files relating to the specific module \"com.sun\" and utilizes its defunct routines\n      - EXTREMELY ENVIRONMENT \u0026 COMPILER SPECIFIC\n\n\"_\"\n      Standard annotation that is checked and validated by this plugin\n\n\"__\"\n      Internal to external interfaces that are exposed so certain functionalities like being\n      able to be recognized as a Javac compiler etc..\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexoad%2Fmeta_javac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexoad%2Fmeta_javac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexoad%2Fmeta_javac/lists"}